@@ -8,8 +8,10 @@ import { LuaPrinter } from "./LuaPrinter";
88import { LuaTransformer } from "./LuaTransformer" ;
99import { TranspileError } from "./TranspileError" ;
1010
11- function loadTransformersFromOptions ( program : ts . Program ) : ts . CustomTransformers {
12- const diagnostics : ts . Diagnostic [ ] = [ ] ;
11+ function loadTransformersFromOptions (
12+ program : ts . Program ,
13+ diagnostics : ts . Diagnostic [ ]
14+ ) : ts . CustomTransformers {
1315 const customTransformers : Required < ts . CustomTransformers > = {
1416 before : [ ] ,
1517 after : [ ] ,
@@ -25,7 +27,17 @@ function loadTransformersFromOptions(program: ts.Program): ts.CustomTransformers
2527 const extensions = [ ".ts" , ".tsx" , ".js" ] ;
2628 for ( const transformer of options . tsTransformers ) {
2729 const { transform, when = "before" , ...transformerOptions } = transformer ;
28- const resolved = resolve . sync ( transform , { extensions, basedir } ) ;
30+ let resolved : string ;
31+ try {
32+ resolved = resolve . sync ( transform , { extensions, basedir } ) ;
33+ } catch ( err ) {
34+ if ( err . code !== "MODULE_NOT_FOUND" ) throw err ;
35+ diagnostics . push (
36+ diagnosticFactories . couldNotResolveTransformerFrom ( transform , basedir )
37+ ) ;
38+
39+ continue ;
40+ }
2941
3042 // tslint:disable-next-line: deprecation
3143 const hasNoTsRequireHook = require . extensions [ ".ts" ] === undefined ;
@@ -35,11 +47,10 @@ function loadTransformersFromOptions(program: ts.Program): ts.CustomTransformers
3547 const tsNode : typeof import ( "ts-node" ) = require ( tsNodePath ) ;
3648 tsNode . register ( { transpileOnly : true } ) ;
3749 } catch ( err ) {
38- if ( err . code === "MODULE_NOT_FOUND" ) {
39- diagnostics . push (
40- diagnosticFactories . toLoadTransformerItShouldBeTranspiled ( transform )
41- ) ;
42- }
50+ if ( err . code !== "MODULE_NOT_FOUND" ) throw err ;
51+ diagnostics . push (
52+ diagnosticFactories . toLoadTransformerItShouldBeTranspiled ( transform )
53+ ) ;
4354
4455 continue ;
4556 }
@@ -58,6 +69,7 @@ function loadTransformersFromOptions(program: ts.Program): ts.CustomTransformers
5869
5970function getCustomTransformers (
6071 program : ts . Program ,
72+ diagnostics : ts . Diagnostic [ ] ,
6173 customTransformers : ts . CustomTransformers ,
6274 onSourceFile : ( sourceFile : ts . SourceFile ) => void
6375) : ts . CustomTransformers {
@@ -76,7 +88,7 @@ function getCustomTransformers(
7688 return ts . createSourceFile ( sourceFile . fileName , "" , ts . ScriptTarget . ESNext ) ;
7789 } ) ;
7890
79- const transformersFromConfig = loadTransformersFromOptions ( program ) ;
91+ const transformersFromConfig = loadTransformersFromOptions ( program , diagnostics ) ;
8092 return {
8193 afterDeclarations : [
8294 ...( transformersFromConfig . afterDeclarations || [ ] ) ,
@@ -181,7 +193,12 @@ export function transpile({
181193 }
182194 } ;
183195
184- const transformers = getCustomTransformers ( program , customTransformers , processSourceFile ) ;
196+ const transformers = getCustomTransformers (
197+ program ,
198+ diagnostics ,
199+ customTransformers ,
200+ processSourceFile
201+ ) ;
185202
186203 const writeFile : ts . WriteFileCallback = ( fileName , data , _bom , _onError , sourceFiles = [ ] ) => {
187204 for ( const sourceFile of sourceFiles ) {
0 commit comments