UNPKG

@jfconley/di-compiler

Version:

A Custom Transformer for Typescript that enables compile-time Dependency Injection

28 lines (27 loc) 1.37 kB
import { DiProgramOptions, DiIsolatedModulesOptions } from "./di-options.js"; import { TS } from "./type.js"; import { EvaluateResult } from "ts-evaluator"; import { SourceFileToImportedSymbolSet } from "./imported-symbol.js"; interface BaseVisitorContextShared { compilerOptions: TS.CompilerOptions; evaluate(node: TS.Declaration | TS.Expression | TS.Statement): EvaluateResult; needsImportPreservationLogic: boolean; sourceFileToAddTslibDefinition: Map<string, boolean>; sourceFileToRequiredImportedSymbolSet: SourceFileToImportedSymbolSet; } interface BaseVisitorContextProgram extends BaseVisitorContextShared, Required<DiProgramOptions> { typeChecker: TS.TypeChecker; } interface BaseVisitorContextIsolatedModules extends BaseVisitorContextShared, Required<DiIsolatedModulesOptions> { } type BaseVisitorContext = BaseVisitorContextProgram | BaseVisitorContextIsolatedModules; interface VisitorContextShared { factory: TS.NodeFactory; transformationContext: TS.TransformationContext; } interface VisitorContextProgram extends BaseVisitorContextProgram, VisitorContextShared { } interface VisitorContextIsolatedModules extends BaseVisitorContextIsolatedModules, VisitorContextShared { } type VisitorContext = VisitorContextProgram | VisitorContextIsolatedModules; export { BaseVisitorContextShared, BaseVisitorContext, VisitorContext };