JSPM

  • Created
  • Published
  • Downloads 102
  • Score
    100M100P100Q87347F
  • License MIT

Fuse-Box type checker plugin for fusebox 4.0.0 ++

Package Exports

  • fuse-box-typechecker

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fuse-box-typechecker) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

NB! This is readme for 3.0.0 - vNext version

See here for v2 docs

fuse-box-typechecker 3.0.0

Simple helper to do typechecking You need to install newest typescript to use this.

npm install fuse-box-typechecker

Output sample with all options enabled

Output sample


How to load and configure

As plugin for fusebox v4

import {pluginTypeChecker} from 'fuse-box-typechecker';


//under plugins
    plugins:[pluginTypeChecker({
        tsConfig: './src/tsconfig', // optional, uses fusebox tsconfig if else
        name: 'Superman' // optional, uses "no-name" if missing
    })]

As Standalone

// get typechecker, se under options for more info
const typeChecker = require('fuse-box-typechecker').TypeChecker({
    tsConfig: './tsconfig.json',
    basePath: './',
    name: 'checkerSync'
});


// to run it right away
typeChecker.printSettings();
typeChecker.inspectAndPrint();

// or just run watch, it will now run in own tread and wait for changes
typeChecker.worker_watch('./src');


// see public functions for more ways to use it


Emiting code

const checker = require('fuse-box-type-checker').TypeChecker({
    tsConfig: './tsconfig.json',
    tsConfigOverride:{
        "compilerOptions": {
            "outDir": "testme/"
        }
    },
    basePath: './',
    name: 'checkerEmit'
});
checker.printSettings(); // optional
let result = checker.inspectOnly();
checker.printOnly(result); // optional...
result.oldProgram.emit();

Public functions

printSettings(): void;
inspectAndPrint(): number;
inspectOnly(oldProgram: ts.EmitAndSemanticDiagnosticsBuilderProgram): IResults;
printOnly(errors: IResults): number;
worker_watch(pathToWatch: string): void;
worker_kill(): void;
worker_inspect(): void;
worker_PrintSettings(): void;
worker_print(): void;
worker_inspectAndPrint(): void;

Options/interface info


// options
interface ITypeCheckerOptionsInterface {
    //config file (compared to basepath './tsconfig.json')
    tsConfig: string; 

    
    // override tsconfig settings, does not override entire compilerOptions object, only parts you set
    tsConfigOverride: Object 
       
    
    // base path to use
    basePath: string; 
    
    
    // name, will be displayed when it runs, useful when you have more then 1 checker
    name?: string; 

    // throw options
    throwOnSyntactic?: boolean;
    throwOnSemantic?: boolean;
    throwOnGlobal?: boolean;
    throwOnOptions?: boolean;  
    
    // use shortened filenames in order to make output less noisy
    shortenFilenames?: boolean; 
    
    // skip ts errors
    skipTsErrors?: number[];

    // print settings
    print_summary?: boolean; //default false
    print_runtime?: boolean //default false
    printFirstRun?: boolean //default false  /plugin only
    
}

// result from inspect code, u need this to run print
export interface IResults {
    oldProgram: ts.EmitAndSemanticDiagnosticsBuilderProgram;
    optionsErrors: ts.Diagnostic[];
    globalErrors: ts.Diagnostic[];
    syntacticErrors: ts.Diagnostic[];
    semanticErrors: ts.Diagnostic[];
    elapsedInspectionTime: number;
}