UNPKG

@nestia/core

Version:

Super-fast validation decorators of NestJS

36 lines (33 loc) 1.13 kB
import ts from "typescript"; import { ITypiaContext } from "typia/lib/transformers/ITypiaContext"; import { INestiaTransformOptions } from "./options/INestiaTransformOptions"; import { FileTransformer } from "./transformers/FileTransformer"; export const transform = ( program: ts.Program, options: INestiaTransformOptions | undefined, extras: ITypiaContext["extras"], ): ts.TransformerFactory<ts.SourceFile> => { const compilerOptions: ts.CompilerOptions = program.getCompilerOptions(); const strict: boolean = compilerOptions.strictNullChecks !== undefined ? !!compilerOptions.strictNullChecks : !!compilerOptions.strict; if (strict === false) extras.addDiagnostic({ category: ts.DiagnosticCategory.Error, code: "(@nestia/core)" as any, file: undefined, start: undefined, length: undefined, messageText: "strict mode is required.", }); return FileTransformer.transform({ program, compilerOptions, checker: program.getTypeChecker(), printer: ts.createPrinter(), options: options ?? {}, extras, }); }; export default transform;