5
5
chainBundle ,
6
6
CompilerOptions ,
7
7
createEmitHelperFactory ,
8
- createNodeFactory ,
9
8
CustomTransformer ,
10
9
CustomTransformerFactory ,
11
10
CustomTransformers ,
@@ -73,7 +72,7 @@ import {
73
72
transformNodeModule ,
74
73
transformSystemModule ,
75
74
transformTypeScript ,
76
- VariableDeclaration ,
75
+ VariableDeclaration
77
76
} from "./_namespaces/ts" ;
78
77
import * as performance from "./_namespaces/ts.performance" ;
79
78
@@ -244,7 +243,7 @@ export function noEmitNotification(hint: EmitHint, node: Node, callback: (hint:
244
243
*
245
244
* @internal
246
245
*/
247
- export function transformNodes < T extends Node > ( resolver : EmitResolver | undefined , host : EmitHost | undefined , factoryIn : NodeFactory | undefined , options : CompilerOptions , nodes : readonly T [ ] , transformers : readonly TransformerFactory < T > [ ] , allowDtsFiles : boolean ) : TransformationResult < T > {
246
+ export function transformNodes < T extends Node > ( resolver : EmitResolver | undefined , host : EmitHost | undefined , factory : NodeFactory , options : CompilerOptions , nodes : readonly T [ ] , transformers : readonly TransformerFactory < T > [ ] , allowDtsFiles : boolean ) : TransformationResult < T > {
248
247
const enabledSyntaxKindFeatures = new Array < SyntaxKindFeatureFlags > ( SyntaxKind . Count ) ;
249
248
let lexicalEnvironmentVariableDeclarations : VariableDeclaration [ ] ;
250
249
let lexicalEnvironmentFunctionDeclarations : FunctionDeclaration [ ] ;
@@ -268,7 +267,7 @@ export function transformNodes<T extends Node>(resolver: EmitResolver | undefine
268
267
// The transformation context is provided to each transformer as part of transformer
269
268
// initialization.
270
269
const context : TransformationContext = {
271
- factory : factoryIn ?? factory ,
270
+ factory,
272
271
getCompilerOptions : ( ) => options ,
273
272
getEmitResolver : ( ) => resolver ! , // TODO: GH#18217
274
273
getEmitHost : ( ) => host ! , // TODO: GH#18217
@@ -316,7 +315,7 @@ export function transformNodes<T extends Node>(resolver: EmitResolver | undefine
316
315
performance . mark ( "beforeTransform" ) ;
317
316
318
317
// Chain together and initialize each transformer.
319
- const transformersWithContext = transformers . map ( t => t ( factoryIn ? context : createPerTransformerContext ( t ) ) ) ;
318
+ const transformersWithContext = transformers . map ( t => t ( context ) ) ;
320
319
const transformation = ( node : T ) : T => {
321
320
for ( const transform of transformersWithContext ) {
322
321
node = transform ( node ) ;
@@ -354,14 +353,6 @@ export function transformNodes<T extends Node>(resolver: EmitResolver | undefine
354
353
return node && ( ! isSourceFile ( node ) || ! node . isDeclarationFile ) ? transformation ( node ) : node ;
355
354
}
356
355
357
- function createPerTransformerContext ( t : TransformerFactory < T > ) {
358
- const perTransformerContext : TransformationContext = Object . create ( context , {
359
- factory : { value : createNodeFactory ( context . factory . flags , context . factory . baseFactory , /*source*/ t ) } ,
360
- getEmitHelperFactory : { value : memoize ( ( ) => createEmitHelperFactory ( perTransformerContext ) ) } ,
361
- } ) ;
362
- return perTransformerContext ;
363
- }
364
-
365
356
/**
366
357
* Enables expression substitutions in the pretty printer for the provided SyntaxKind.
367
358
*/
0 commit comments