Teamlinker/code/common/transform/compile.ts
sx1989827 d5c8e1e6e5 init
2021-02-25 20:57:34 +08:00

23 lines
681 B
TypeScript

import * as ts from 'typescript';
import transformer from './transformer';
export default function compile(filePaths: string[], writeFileCallback?: ts.WriteFileCallback) {
const program = ts.createProgram(filePaths, {
strict: true,
noEmitOnError: true,
suppressImplicitAnyIndexErrors: true,
target: ts.ScriptTarget.ES5,
});
const transformers: ts.CustomTransformers = {
before: [transformer(program)],
after: [],
};
const { emitSkipped, diagnostics } = program.emit(undefined, writeFileCallback, undefined, false, transformers);
if (emitSkipped) {
throw new Error(diagnostics.map(diagnostic => diagnostic.messageText).join('\n'));
}
}