UNPKG

@ibyar/cli

Version:

The Ibyar/Aurora CLI tool

26 lines 1.22 kB
import ts from 'typescript/lib/tsserverlibrary.js'; import { updateModuleTypeWithDirectives } from './factory.js'; import { moduleManger } from './modules.js'; /** * search for `@Directive({})` and update definition files * @param program a ts program * @returns a transformer factory of source file */ export function afterDeclarationsCompileDirectiveOptions(program) { return (context) => { return sourceFile => { const moduleInfo = moduleManger.get(sourceFile.fileName); if (!moduleInfo?.classes?.length) { return sourceFile; } const classes = moduleInfo.classes.filter(c => c.type === 'directive'); if (!(classes.length > 0)) { return sourceFile; } const statements = sourceFile.statements?.slice() ?? []; statements.push(...updateModuleTypeWithDirectives(classes)); return ts.factory.updateSourceFile(sourceFile, statements, sourceFile.isDeclarationFile, sourceFile.typeReferenceDirectives, sourceFile.referencedFiles, sourceFile.hasNoDefaultLib, sourceFile.libReferenceDirectives); }; }; } //# sourceMappingURL=after-declarations-directive.js.map