Skip to content

fuse-box/fuse-box-typechecker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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