1 | import { EventEmitter } from 'node:events';
|
2 | import type { default as TypedEmitter } from 'typed-emitter';
|
3 | import type ts from 'typescript';
|
4 | import type { SourceTemplate } from './source-template';
|
5 | import type { TsWriterArgument, TsWriterVariables } from './types';
|
6 |
|
7 | export 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 |
|
21 | parameters: TsWriterArgument<any>[],
|
22 | mode: 'header' | 'normal'
|
23 | ) => void;
|
24 | };
|
25 |
|
26 | export class TsWriterEmitter extends (EventEmitter as {
|
27 | new (): TypedEmitter<TsWriterEvents>;
|
28 | }) {}
|