@jfconley/di-compiler
Version:
A Custom Transformer for Typescript that enables compile-time Dependency Injection
28 lines (27 loc) • 1.37 kB
text/typescript
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 };