diff --git a/src/checker/runtime.ts b/src/checker/runtime.ts index 8bb3c10..543d600 100644 --- a/src/checker/runtime.ts +++ b/src/checker/runtime.ts @@ -267,13 +267,13 @@ function createChecker(receive: (cb: (msg: Req) => void) => void, send: (msg: Re directoryExists(path: string) { return compiler.sys.directoryExists(path); } - } function processInit({ seq, payload }: Init.Request) { compiler = require(payload.compilerInfo.compilerPath); compilerInfo = payload.compilerInfo; loaderConfig = payload.loaderConfig; + compilerConfig = payload.compilerConfig; compilerOptions = compilerConfig.options; webpackOptions = payload.webpackOptions; @@ -300,6 +300,12 @@ function createChecker(receive: (cb: (msg: Req) => void) => void, send: (msg: Re }); const program = service.getProgram(); + if (loaderConfig.getCustomTransformers !== undefined) { + host.getCustomTransformers = loaderConfig.getCustomTransformers(program); + } else if (loaderConfig.customTranformersPath !== undefined) { + host.getCustomTransformers = require(loaderConfig.customTranformersPath)(program); + } + program.getSourceFiles().forEach(file => { files.set(file.fileName, { fileName: file.fileName, diff --git a/src/interfaces.ts b/src/interfaces.ts index 511db6d..75ef8ea 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -24,9 +24,10 @@ export interface LoaderConfig { cacheDirectory?: string; entryFileIsJs?: boolean; debug?: boolean; + customTranformersPath?: string; + getCustomTransformers?: (program: ts.Program) => ts.CustomTransformers | undefined; reportFiles?: string[]; context?: string; - getCustomTransformers?(): ts.CustomTransformers | undefined; } export interface OutputFile {