JSPM

  • Created
  • Published
  • Downloads 53
  • Score
    100M100P100Q87474F
  • License MIT

Fuse-Box type checker plugin

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-vNext

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

npm install fuse-box-typechecker@next

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;
}