@atcute/lex-cli 1.1.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.mjs +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +77 -0
- package/dist/cli.js.map +1 -0
- package/dist/codegen.d.ts +23 -0
- package/dist/codegen.js +552 -0
- package/dist/codegen.js.map +1 -0
- package/dist/index.d.ts +7 -1
- package/dist/index.js +3 -125
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +816 -1944
- package/dist/schema.js +152 -93
- package/dist/schema.js.map +1 -1
- package/package.json +9 -5
- package/src/cli.ts +100 -0
- package/src/codegen.ts +726 -0
- package/src/index.ts +9 -150
- package/src/schema.ts +391 -150
- package/dist/generator.d.ts +0 -7
- package/dist/generator.js +0 -579
- package/dist/generator.js.map +0 -1
- package/src/generator.ts +0 -664
package/src/index.ts
CHANGED
|
@@ -1,152 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { basename } from 'node:path';
|
|
1
|
+
import type { ImportMapping } from './codegen.js';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
export interface LexiconConfig {
|
|
4
|
+
outdir: string;
|
|
5
|
+
files: string[];
|
|
6
|
+
mappings?: ImportMapping[];
|
|
7
|
+
}
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
program.register(Builtins.HelpCommand);
|
|
14
|
-
|
|
15
|
-
program.register(
|
|
16
|
-
class GenerateMainLexicons extends Command {
|
|
17
|
-
static override paths = [['generate-main']];
|
|
18
|
-
|
|
19
|
-
static override usage = Command.Usage({
|
|
20
|
-
description: `Generates the main type definition file`,
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
output = Option.String(['-o', '--output'], {
|
|
24
|
-
required: false,
|
|
25
|
-
description: 'Where to save the resulting type definition file, defaults to stdout if not passed',
|
|
26
|
-
validator: v
|
|
27
|
-
.string()
|
|
28
|
-
.assert((v) => basename(v).endsWith('.ts'), `expected output file to end with .ts extension`),
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
desc = Option.String(['--description'], {
|
|
32
|
-
required: false,
|
|
33
|
-
description: 'Module description',
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
banner = Option.String(['--banner'], {
|
|
37
|
-
required: false,
|
|
38
|
-
description: 'Insert an arbitrary string at the beginning of the module',
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
files = Option.Rest({
|
|
42
|
-
required: 1,
|
|
43
|
-
name: 'files',
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
async execute(): Promise<number | void> {
|
|
47
|
-
let code: string;
|
|
48
|
-
|
|
49
|
-
try {
|
|
50
|
-
code = await generateDefinitions({
|
|
51
|
-
files: this.files,
|
|
52
|
-
main: true,
|
|
53
|
-
banner: this.banner,
|
|
54
|
-
description: this.desc,
|
|
55
|
-
});
|
|
56
|
-
} catch (err) {
|
|
57
|
-
if (err instanceof Error) {
|
|
58
|
-
console.error(pc.bold(`${pc.red(`error:`)} ${err.message}`));
|
|
59
|
-
|
|
60
|
-
if (err.cause instanceof Error) {
|
|
61
|
-
console.error(` ${pc.gray(`caused by:`)} ${err.cause.message}`);
|
|
62
|
-
}
|
|
63
|
-
} else {
|
|
64
|
-
console.error(pc.bold(pc.red(`unknown error occured:`)));
|
|
65
|
-
console.error(err);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return 1;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const config = await prettier.resolveConfig(this.output || process.cwd(), { editorconfig: true });
|
|
72
|
-
const formatted = await prettier.format(code, { ...config, parser: 'typescript' });
|
|
73
|
-
|
|
74
|
-
if (this.output) {
|
|
75
|
-
await writeFile(this.output, formatted);
|
|
76
|
-
} else {
|
|
77
|
-
console.log(formatted);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
program.register(
|
|
84
|
-
class GenerateLexicons extends Command {
|
|
85
|
-
static override paths = [['generate']];
|
|
86
|
-
|
|
87
|
-
static override usage = Command.Usage({
|
|
88
|
-
description: `Generates a type definition file`,
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
output = Option.String(['-o', '--output'], {
|
|
92
|
-
required: false,
|
|
93
|
-
description: 'Where to save the resulting type definition file, defaults to stdout if not passed',
|
|
94
|
-
validator: v
|
|
95
|
-
.string()
|
|
96
|
-
.assert((v) => basename(v).endsWith('.ts'), `expected output file to end with .ts extension`),
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
desc = Option.String(['--description'], {
|
|
100
|
-
required: false,
|
|
101
|
-
description: 'Module description',
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
banner = Option.String(['--banner'], {
|
|
105
|
-
required: false,
|
|
106
|
-
description: 'Insert an arbitrary string at the beginning of the module',
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
files = Option.Rest({
|
|
110
|
-
required: 1,
|
|
111
|
-
name: 'files',
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
async execute(): Promise<number | void> {
|
|
115
|
-
let code: string;
|
|
116
|
-
|
|
117
|
-
try {
|
|
118
|
-
code = await generateDefinitions({
|
|
119
|
-
files: this.files,
|
|
120
|
-
main: false,
|
|
121
|
-
banner: this.banner,
|
|
122
|
-
description: this.desc,
|
|
123
|
-
});
|
|
124
|
-
} catch (err) {
|
|
125
|
-
if (err instanceof Error) {
|
|
126
|
-
console.error(pc.bold(`${pc.red(`error: `)}: ${err.message}`));
|
|
127
|
-
|
|
128
|
-
if (err.cause instanceof Error) {
|
|
129
|
-
console.error(` ${pc.gray(`caused by:`)}: ${err.cause.message}`);
|
|
130
|
-
}
|
|
131
|
-
} else {
|
|
132
|
-
console.error(pc.bold(pc.red(`unknown error occured:`)));
|
|
133
|
-
console.error(err);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return 1;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const config = await prettier.resolveConfig(this.output || process.cwd(), { editorconfig: true });
|
|
140
|
-
const formatted = await prettier.format(code, { ...config, parser: 'typescript' });
|
|
141
|
-
|
|
142
|
-
if (this.output) {
|
|
143
|
-
await writeFile(this.output, formatted);
|
|
144
|
-
} else {
|
|
145
|
-
console.log(formatted);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
);
|
|
150
|
-
|
|
151
|
-
const exitCode = await program.run(process.argv.slice(2));
|
|
152
|
-
process.exitCode = exitCode;
|
|
9
|
+
export const defineLexiconConfig = (config: LexiconConfig): LexiconConfig => {
|
|
10
|
+
return config;
|
|
11
|
+
};
|