UNPKG

871 BPlain TextView Raw
1import { EventEmitter } from 'node:events';
2import type { default as TypedEmitter } from 'typed-emitter';
3import type ts from 'typescript';
4import type { SourceTemplate } from './source-template';
5import type { TsWriterArgument, TsWriterVariables } from './types';
6
7export type TsWriterEvents = {
8 readFile: (filename: string) => void;
9
10 writeFile: (filename: string, content: string) => void;
11
12 createProgram: (program: ts.Program) => void;
13
14 programEmit: (result: ts.EmitResult) => void;
15
16 generate: (
17 generatedCode: SourceTemplate,
18 template: TemplateStringsArray,
19 variables: TsWriterVariables,
20 // eslint-disable-next-line @typescript-eslint/no-explicit-any
21 parameters: TsWriterArgument<any>[],
22 mode: 'header' | 'normal'
23 ) => void;
24};
25
26export class TsWriterEmitter extends (EventEmitter as {
27 new (): TypedEmitter<TsWriterEvents>;
28}) {}