skir 1.0.0 → 1.0.1
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/dist/compiler.js +2 -2
- package/dist/compiler.js.map +1 -1
- package/dist/config_parser.d.ts +4 -1
- package/dist/config_parser.d.ts.map +1 -1
- package/dist/config_parser.js +103 -45
- package/dist/config_parser.js.map +1 -1
- package/dist/config_parser.test.js +42 -42
- package/dist/config_parser.test.js.map +1 -1
- package/dist/project_initializer.js +3 -3
- package/package.json +1 -1
- package/src/compiler.ts +6 -2
- package/src/config_parser.ts +132 -48
- package/src/project_initializer.ts +3 -3
package/dist/compiler.js
CHANGED
|
@@ -4,7 +4,7 @@ import { glob } from "glob";
|
|
|
4
4
|
import * as Paths from "path";
|
|
5
5
|
import Watcher from "watcher";
|
|
6
6
|
import { parseCommandLine } from "./command_line_parser.js";
|
|
7
|
-
import { importCodeGenerator,
|
|
7
|
+
import { importCodeGenerator, parseSkirConfigWithDynamicImports, } from "./config_parser.js";
|
|
8
8
|
import { makeGray, makeGreen, makeRed, renderErrors, renderSkirConfigErrors, } from "./error_renderer.js";
|
|
9
9
|
import { ExitError } from "./exit_error.js";
|
|
10
10
|
import { formatModule } from "./formatter.js";
|
|
@@ -274,7 +274,7 @@ async function main() {
|
|
|
274
274
|
console.error(makeRed(`Cannot find ${skirConfigPath}`));
|
|
275
275
|
process.exit(1);
|
|
276
276
|
}
|
|
277
|
-
const skirConfigResult = await
|
|
277
|
+
const skirConfigResult = await parseSkirConfigWithDynamicImports(skirConfigCode);
|
|
278
278
|
if (skirConfigResult.errors.length > 0) {
|
|
279
279
|
console.error(makeRed("Invalid skir config"));
|
|
280
280
|
const { maybeForgotToEditAfterInit } = skirConfigResult;
|
package/dist/compiler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
|
package/dist/config_parser.d.ts
CHANGED
|
@@ -26,6 +26,9 @@ export interface SkirConfigErrorPos {
|
|
|
26
26
|
/** 2-based */
|
|
27
27
|
colNumber: number;
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
/** Synchronous version - doesn't import any module. */
|
|
30
|
+
export declare function parseSkirConfig(yamlCode: string): SkirConfigResult;
|
|
31
|
+
/** Async version - dynamically imports generator modules. */
|
|
32
|
+
export declare function parseSkirConfigWithDynamicImports(yamlCode: string): Promise<SkirConfigResult>;
|
|
30
33
|
export declare function importCodeGenerator(mod: string): Promise<CodeGenerator<unknown>>;
|
|
31
34
|
//# sourceMappingURL=config_parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_parser.d.ts","sourceRoot":"","sources":["../src/config_parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAM9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC;;;OAGG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,GAAG,EAAE,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,
|
|
1
|
+
{"version":3,"file":"config_parser.d.ts","sourceRoot":"","sources":["../src/config_parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAM9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC;;;OAGG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,GAAG,EAAE,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAElE;AAED,6DAA6D;AAC7D,wBAAsB,iCAAiC,CACrD,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAOjC"}
|
package/dist/config_parser.js
CHANGED
|
@@ -6,7 +6,23 @@ import * as PythonGen from "skir-python-gen";
|
|
|
6
6
|
import * as TypescriptGen from "skir-typescript-gen";
|
|
7
7
|
import { LineCounter, parseDocument } from "yaml";
|
|
8
8
|
import { SkirConfig } from "./config.js";
|
|
9
|
-
|
|
9
|
+
/** Synchronous version - doesn't import any module. */
|
|
10
|
+
export function parseSkirConfig(yamlCode) {
|
|
11
|
+
return parseSkirConfigInternal(yamlCode, (mod) => STATIC_GENERATORS[mod]);
|
|
12
|
+
}
|
|
13
|
+
/** Async version - dynamically imports generator modules. */
|
|
14
|
+
export async function parseSkirConfigWithDynamicImports(yamlCode) {
|
|
15
|
+
return parseSkirConfigInternalAsync(yamlCode, importCodeGenerator);
|
|
16
|
+
}
|
|
17
|
+
export async function importCodeGenerator(mod) {
|
|
18
|
+
const module = await import(mod);
|
|
19
|
+
const generator = module.GENERATOR;
|
|
20
|
+
if (typeof generator !== "object") {
|
|
21
|
+
throw new Error(`Cannot import GENERATOR from module ${mod}`);
|
|
22
|
+
}
|
|
23
|
+
return generator;
|
|
24
|
+
}
|
|
25
|
+
function parseYaml(yamlCode) {
|
|
10
26
|
const errors = [];
|
|
11
27
|
// 1. Parse YAML into a Document object
|
|
12
28
|
const lineCounter = new LineCounter();
|
|
@@ -69,54 +85,96 @@ export async function parseSkirConfig(yamlCode, importMods) {
|
|
|
69
85
|
});
|
|
70
86
|
}
|
|
71
87
|
return {
|
|
72
|
-
|
|
73
|
-
|
|
88
|
+
earlyReturn: {
|
|
89
|
+
skirConfig: undefined,
|
|
90
|
+
errors: errors,
|
|
91
|
+
},
|
|
92
|
+
zodResult: { success: false },
|
|
93
|
+
errors,
|
|
94
|
+
pushErrorAtPath,
|
|
74
95
|
};
|
|
75
96
|
}
|
|
76
97
|
// 2. Validate with Zod schema
|
|
77
98
|
const jsData = doc.toJS();
|
|
78
|
-
const
|
|
79
|
-
if (!
|
|
80
|
-
for (const issue of
|
|
99
|
+
const zodResult = SkirConfig.safeParse(jsData);
|
|
100
|
+
if (!zodResult.success) {
|
|
101
|
+
for (const issue of zodResult.error.issues) {
|
|
81
102
|
pushErrorAtPath(issue.path, issue.message);
|
|
82
103
|
}
|
|
83
|
-
const maybeForgotToEditAfterInit = jsData &&
|
|
104
|
+
const maybeForgotToEditAfterInit = jsData &&
|
|
105
|
+
typeof jsData === "object" &&
|
|
106
|
+
"generators" in jsData &&
|
|
107
|
+
jsData.generators === null
|
|
108
|
+
? true
|
|
109
|
+
: false;
|
|
84
110
|
return {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
111
|
+
earlyReturn: {
|
|
112
|
+
skirConfig: undefined,
|
|
113
|
+
errors: errors,
|
|
114
|
+
maybeForgotToEditAfterInit,
|
|
115
|
+
},
|
|
116
|
+
zodResult,
|
|
117
|
+
errors,
|
|
118
|
+
pushErrorAtPath,
|
|
88
119
|
};
|
|
89
120
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
121
|
+
return {
|
|
122
|
+
zodResult,
|
|
123
|
+
errors,
|
|
124
|
+
pushErrorAtPath,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function parseSkirConfigInternal(yamlCode, getGenerator) {
|
|
128
|
+
const { earlyReturn, errors, zodResult, pushErrorAtPath } = parseYaml(yamlCode);
|
|
129
|
+
if (earlyReturn) {
|
|
130
|
+
return earlyReturn;
|
|
131
|
+
}
|
|
132
|
+
// Validate each generator's config with Zod schema
|
|
133
|
+
for (let i = 0; i < zodResult.data.generators.length; i++) {
|
|
134
|
+
const generatorConfig = zodResult.data.generators[i];
|
|
93
135
|
const { mod } = generatorConfig;
|
|
94
|
-
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
136
|
+
const generator = getGenerator(mod);
|
|
137
|
+
if (generator) {
|
|
138
|
+
const parsedGeneratorConfig = generator.configType.safeParse(generatorConfig.config);
|
|
139
|
+
if (!parsedGeneratorConfig.success) {
|
|
140
|
+
for (const issue of parsedGeneratorConfig.error.issues) {
|
|
141
|
+
const path = [
|
|
142
|
+
"generators",
|
|
143
|
+
i,
|
|
144
|
+
"config",
|
|
145
|
+
...issue.path,
|
|
146
|
+
];
|
|
147
|
+
pushErrorAtPath(path, issue.message ?? "Error");
|
|
106
148
|
}
|
|
107
149
|
}
|
|
108
150
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
151
|
+
}
|
|
152
|
+
if (errors.length > 0) {
|
|
153
|
+
return { skirConfig: undefined, errors: errors };
|
|
154
|
+
}
|
|
155
|
+
return { skirConfig: zodResult.data, errors: [] };
|
|
156
|
+
}
|
|
157
|
+
async function parseSkirConfigInternalAsync(yamlCode, getGenerator) {
|
|
158
|
+
const { earlyReturn, errors, zodResult, pushErrorAtPath } = parseYaml(yamlCode);
|
|
159
|
+
if (earlyReturn) {
|
|
160
|
+
return earlyReturn;
|
|
161
|
+
}
|
|
162
|
+
// Validate each generator's config with Zod schema
|
|
163
|
+
for (let i = 0; i < zodResult.data.generators.length; i++) {
|
|
164
|
+
const generatorConfig = zodResult.data.generators[i];
|
|
165
|
+
const { mod } = generatorConfig;
|
|
166
|
+
let generator;
|
|
167
|
+
try {
|
|
168
|
+
generator = await getGenerator(mod);
|
|
169
|
+
}
|
|
170
|
+
catch (e) {
|
|
171
|
+
if (e instanceof Error) {
|
|
172
|
+
pushErrorAtPath(["generators", i, "mod"], e.message);
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
throw e;
|
|
177
|
+
}
|
|
120
178
|
}
|
|
121
179
|
if (generator) {
|
|
122
180
|
const parsedGeneratorConfig = generator.configType.safeParse(generatorConfig.config);
|
|
@@ -136,14 +194,14 @@ export async function parseSkirConfig(yamlCode, importMods) {
|
|
|
136
194
|
if (errors.length > 0) {
|
|
137
195
|
return { skirConfig: undefined, errors: errors };
|
|
138
196
|
}
|
|
139
|
-
return { skirConfig:
|
|
140
|
-
}
|
|
141
|
-
export async function importCodeGenerator(mod) {
|
|
142
|
-
const module = await import(mod);
|
|
143
|
-
const generator = module.GENERATOR;
|
|
144
|
-
if (typeof generator !== "object") {
|
|
145
|
-
throw new Error(`Cannot import GENERATOR from module ${mod}`);
|
|
146
|
-
}
|
|
147
|
-
return generator;
|
|
197
|
+
return { skirConfig: zodResult.data, errors: [] };
|
|
148
198
|
}
|
|
199
|
+
const STATIC_GENERATORS = {
|
|
200
|
+
"skir-cc-gen": CcGen.GENERATOR,
|
|
201
|
+
"skir-dart-gen": DartGen.GENERATOR,
|
|
202
|
+
"skir-java-gen": JavaGen.GENERATOR,
|
|
203
|
+
"skir-kotlin-gen": KotlinGen.GENERATOR,
|
|
204
|
+
"skir-python-gen": PythonGen.GENERATOR,
|
|
205
|
+
"skir-typescript-gen": TypescriptGen.GENERATOR,
|
|
206
|
+
};
|
|
149
207
|
//# sourceMappingURL=config_parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_parser.js","sourceRoot":"","sources":["../src/config_parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAmB,MAAM,MAAM,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAgCzC,MAAM,CAAC,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"config_parser.js","sourceRoot":"","sources":["../src/config_parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { describe, it } from "mocha";
|
|
|
3
3
|
import { parseSkirConfig } from "./config_parser.js";
|
|
4
4
|
describe("config_parser", () => {
|
|
5
5
|
describe("parseConfig", () => {
|
|
6
|
-
it("should parse valid config with single generator",
|
|
6
|
+
it("should parse valid config with single generator", () => {
|
|
7
7
|
const yamlCode = `
|
|
8
8
|
generators:
|
|
9
9
|
- mod: "@example/generator"
|
|
@@ -12,7 +12,7 @@ generators:
|
|
|
12
12
|
foo: bar
|
|
13
13
|
srcDir: src
|
|
14
14
|
`;
|
|
15
|
-
const result =
|
|
15
|
+
const result = parseSkirConfig(yamlCode);
|
|
16
16
|
expect(result).toMatch({
|
|
17
17
|
skirConfig: {
|
|
18
18
|
generators: [
|
|
@@ -27,7 +27,7 @@ srcDir: src
|
|
|
27
27
|
errors: [],
|
|
28
28
|
});
|
|
29
29
|
});
|
|
30
|
-
it("should parse valid config with multiple generators",
|
|
30
|
+
it("should parse valid config with multiple generators", () => {
|
|
31
31
|
const yamlCode = `
|
|
32
32
|
generators:
|
|
33
33
|
- mod: "@example/gen1"
|
|
@@ -38,7 +38,7 @@ generators:
|
|
|
38
38
|
setting: value
|
|
39
39
|
outDir: custom/skirout
|
|
40
40
|
`;
|
|
41
|
-
const result =
|
|
41
|
+
const result = parseSkirConfig(yamlCode);
|
|
42
42
|
expect(result).toMatch({
|
|
43
43
|
skirConfig: {
|
|
44
44
|
generators: [
|
|
@@ -53,7 +53,7 @@ generators:
|
|
|
53
53
|
errors: [],
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
|
-
it("should parse config with outDir array",
|
|
56
|
+
it("should parse config with outDir array", () => {
|
|
57
57
|
const yamlCode = `
|
|
58
58
|
generators:
|
|
59
59
|
- mod: "@example/generator"
|
|
@@ -62,7 +62,7 @@ generators:
|
|
|
62
62
|
- path/to/skirout
|
|
63
63
|
- another/skirout
|
|
64
64
|
`;
|
|
65
|
-
const result =
|
|
65
|
+
const result = parseSkirConfig(yamlCode);
|
|
66
66
|
expect(result).toMatch({
|
|
67
67
|
skirConfig: {
|
|
68
68
|
generators: [
|
|
@@ -76,14 +76,14 @@ generators:
|
|
|
76
76
|
errors: [],
|
|
77
77
|
});
|
|
78
78
|
});
|
|
79
|
-
it("should parse config without optional srcDir",
|
|
79
|
+
it("should parse config without optional srcDir", () => {
|
|
80
80
|
const yamlCode = `
|
|
81
81
|
generators:
|
|
82
82
|
- mod: "@example/generator"
|
|
83
83
|
outDir: ./skirout
|
|
84
84
|
config: {}
|
|
85
85
|
`;
|
|
86
|
-
const result =
|
|
86
|
+
const result = parseSkirConfig(yamlCode);
|
|
87
87
|
expect(result).toMatch({
|
|
88
88
|
skirConfig: {
|
|
89
89
|
generators: [
|
|
@@ -93,7 +93,7 @@ generators:
|
|
|
93
93
|
errors: [],
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
|
-
it("should return error for invalid YAML syntax",
|
|
96
|
+
it("should return error for invalid YAML syntax", () => {
|
|
97
97
|
const yamlCode = `
|
|
98
98
|
generators:
|
|
99
99
|
- mod: "@example/generator"
|
|
@@ -101,14 +101,14 @@ generators:
|
|
|
101
101
|
config:
|
|
102
102
|
invalid: [unclosed array
|
|
103
103
|
`;
|
|
104
|
-
const result =
|
|
104
|
+
const result = parseSkirConfig(yamlCode);
|
|
105
105
|
expect(result).toMatch({
|
|
106
106
|
skirConfig: undefined,
|
|
107
107
|
errors: [{}], // At least one error
|
|
108
108
|
maybeForgotToEditAfterInit: undefined,
|
|
109
109
|
});
|
|
110
110
|
});
|
|
111
|
-
it("should return error for invalid YAML syntax",
|
|
111
|
+
it("should return error for invalid YAML syntax", () => {
|
|
112
112
|
const yamlCode = `
|
|
113
113
|
generators:
|
|
114
114
|
- mod: "@example/generator"
|
|
@@ -116,18 +116,18 @@ generators:
|
|
|
116
116
|
config:
|
|
117
117
|
invalid: [unclosed array
|
|
118
118
|
`;
|
|
119
|
-
const result =
|
|
119
|
+
const result = parseSkirConfig(yamlCode);
|
|
120
120
|
expect(result).toMatch({
|
|
121
121
|
skirConfig: undefined,
|
|
122
122
|
errors: [{}], // At least one error
|
|
123
123
|
maybeForgotToEditAfterInit: undefined,
|
|
124
124
|
});
|
|
125
125
|
});
|
|
126
|
-
it("user maybe forgot to edit after init",
|
|
126
|
+
it("user maybe forgot to edit after init", () => {
|
|
127
127
|
const yamlCode = `generators:
|
|
128
128
|
|
|
129
129
|
`;
|
|
130
|
-
const result =
|
|
130
|
+
const result = parseSkirConfig(yamlCode);
|
|
131
131
|
expect(result).toMatch({
|
|
132
132
|
skirConfig: undefined,
|
|
133
133
|
errors: [
|
|
@@ -142,12 +142,12 @@ generators:
|
|
|
142
142
|
maybeForgotToEditAfterInit: true,
|
|
143
143
|
});
|
|
144
144
|
});
|
|
145
|
-
it("should return error for missing required field",
|
|
145
|
+
it("should return error for missing required field", () => {
|
|
146
146
|
const yamlCode = `
|
|
147
147
|
generators:
|
|
148
148
|
- config: {}
|
|
149
149
|
`;
|
|
150
|
-
const result =
|
|
150
|
+
const result = parseSkirConfig(yamlCode);
|
|
151
151
|
expect(result).toMatch({
|
|
152
152
|
skirConfig: undefined,
|
|
153
153
|
errors: [
|
|
@@ -171,24 +171,24 @@ generators:
|
|
|
171
171
|
maybeForgotToEditAfterInit: false,
|
|
172
172
|
});
|
|
173
173
|
});
|
|
174
|
-
it("should return error for wrong type",
|
|
174
|
+
it("should return error for wrong type", () => {
|
|
175
175
|
const yamlCode = `
|
|
176
176
|
generators: "not an array"
|
|
177
177
|
`;
|
|
178
|
-
const result =
|
|
178
|
+
const result = parseSkirConfig(yamlCode);
|
|
179
179
|
expect(result).toMatch({
|
|
180
180
|
skirConfig: undefined,
|
|
181
181
|
errors: [{}], // At least one error
|
|
182
182
|
});
|
|
183
183
|
});
|
|
184
|
-
it("should return error with line/column for schema validation error",
|
|
184
|
+
it("should return error with line/column for schema validation error", () => {
|
|
185
185
|
const yamlCode = `
|
|
186
186
|
generators:
|
|
187
187
|
- mod: "@example/generator"
|
|
188
188
|
config: {}
|
|
189
189
|
outDir: invalid/path
|
|
190
190
|
`;
|
|
191
|
-
const result =
|
|
191
|
+
const result = parseSkirConfig(yamlCode);
|
|
192
192
|
expect(result).toMatch({
|
|
193
193
|
skirConfig: undefined,
|
|
194
194
|
errors: [
|
|
@@ -210,7 +210,7 @@ generators:
|
|
|
210
210
|
],
|
|
211
211
|
});
|
|
212
212
|
});
|
|
213
|
-
it("should return error for extra fields in strict schema",
|
|
213
|
+
it("should return error for extra fields in strict schema", () => {
|
|
214
214
|
const yamlCode = `
|
|
215
215
|
generators:
|
|
216
216
|
- mod: "@example/generator"
|
|
@@ -218,7 +218,7 @@ generators:
|
|
|
218
218
|
config: {}
|
|
219
219
|
extraField: value
|
|
220
220
|
`;
|
|
221
|
-
const result =
|
|
221
|
+
const result = parseSkirConfig(yamlCode);
|
|
222
222
|
expect(result).toMatch({
|
|
223
223
|
skirConfig: undefined,
|
|
224
224
|
errors: [
|
|
@@ -228,20 +228,20 @@ generators:
|
|
|
228
228
|
],
|
|
229
229
|
});
|
|
230
230
|
});
|
|
231
|
-
it("should return error for invalid outDir pattern",
|
|
231
|
+
it("should return error for invalid outDir pattern", () => {
|
|
232
232
|
const yamlCode = `
|
|
233
233
|
generators:
|
|
234
234
|
- mod: "@example/generator"
|
|
235
235
|
config: {}
|
|
236
236
|
outDir: does/not/end/properly
|
|
237
237
|
`;
|
|
238
|
-
const result =
|
|
238
|
+
const result = parseSkirConfig(yamlCode);
|
|
239
239
|
expect(result).toMatch({
|
|
240
240
|
skirConfig: undefined,
|
|
241
241
|
errors: [{}], // At least one error
|
|
242
242
|
});
|
|
243
243
|
});
|
|
244
|
-
it("should return error for invalid outDir array element",
|
|
244
|
+
it("should return error for invalid outDir array element", () => {
|
|
245
245
|
const yamlCode = `
|
|
246
246
|
generators:
|
|
247
247
|
- mod: "@example/generator"
|
|
@@ -250,17 +250,17 @@ generators:
|
|
|
250
250
|
- valid/skirout
|
|
251
251
|
- invalid/path
|
|
252
252
|
`;
|
|
253
|
-
const result =
|
|
253
|
+
const result = parseSkirConfig(yamlCode);
|
|
254
254
|
expect(result).toMatch({
|
|
255
255
|
skirConfig: undefined,
|
|
256
256
|
errors: [{}], // At least one error
|
|
257
257
|
});
|
|
258
258
|
});
|
|
259
|
-
it("should parse config with empty generators array",
|
|
259
|
+
it("should parse config with empty generators array", () => {
|
|
260
260
|
const yamlCode = `
|
|
261
261
|
generators: []
|
|
262
262
|
`;
|
|
263
|
-
const result =
|
|
263
|
+
const result = parseSkirConfig(yamlCode);
|
|
264
264
|
expect(result).toMatch({
|
|
265
265
|
skirConfig: {
|
|
266
266
|
generators: [],
|
|
@@ -268,16 +268,16 @@ generators: []
|
|
|
268
268
|
errors: [],
|
|
269
269
|
});
|
|
270
270
|
});
|
|
271
|
-
it("should handle empty YAML document",
|
|
271
|
+
it("should handle empty YAML document", () => {
|
|
272
272
|
const yamlCode = "";
|
|
273
|
-
const result =
|
|
273
|
+
const result = parseSkirConfig(yamlCode);
|
|
274
274
|
// Empty YAML parses as null/undefined, which fails schema validation
|
|
275
275
|
expect(result).toMatch({
|
|
276
276
|
skirConfig: undefined,
|
|
277
277
|
errors: [{}], // At least one error
|
|
278
278
|
});
|
|
279
279
|
});
|
|
280
|
-
it("should handle YAML with comments",
|
|
280
|
+
it("should handle YAML with comments", () => {
|
|
281
281
|
const yamlCode = `
|
|
282
282
|
# This is a comment
|
|
283
283
|
generators:
|
|
@@ -288,7 +288,7 @@ generators:
|
|
|
288
288
|
# Source directory
|
|
289
289
|
srcDir: src
|
|
290
290
|
`;
|
|
291
|
-
const result =
|
|
291
|
+
const result = parseSkirConfig(yamlCode);
|
|
292
292
|
expect(result).toMatch({
|
|
293
293
|
skirConfig: {
|
|
294
294
|
generators: [
|
|
@@ -303,20 +303,20 @@ srcDir: src
|
|
|
303
303
|
errors: [],
|
|
304
304
|
});
|
|
305
305
|
});
|
|
306
|
-
it("should return multiple errors for multiple validation issues",
|
|
306
|
+
it("should return multiple errors for multiple validation issues", () => {
|
|
307
307
|
const yamlCode = `
|
|
308
308
|
generators:
|
|
309
309
|
- config: {}
|
|
310
310
|
- mod: "@example/gen"
|
|
311
311
|
extraField: invalid
|
|
312
312
|
`;
|
|
313
|
-
const result =
|
|
313
|
+
const result = parseSkirConfig(yamlCode);
|
|
314
314
|
expect(result).toMatch({
|
|
315
315
|
skirConfig: undefined,
|
|
316
316
|
errors: [{}, {}, {}, {}], // At least four errors
|
|
317
317
|
});
|
|
318
318
|
});
|
|
319
|
-
it("should handle complex nested config objects",
|
|
319
|
+
it("should handle complex nested config objects", () => {
|
|
320
320
|
const yamlCode = `
|
|
321
321
|
generators:
|
|
322
322
|
- mod: "@example/generator"
|
|
@@ -330,7 +330,7 @@ generators:
|
|
|
330
330
|
- item2
|
|
331
331
|
boolean: true
|
|
332
332
|
`;
|
|
333
|
-
const result =
|
|
333
|
+
const result = parseSkirConfig(yamlCode);
|
|
334
334
|
expect(result).toMatch({
|
|
335
335
|
skirConfig: {
|
|
336
336
|
generators: [
|
|
@@ -352,14 +352,14 @@ generators:
|
|
|
352
352
|
errors: [],
|
|
353
353
|
});
|
|
354
354
|
});
|
|
355
|
-
it("should validate outDir ends with skirout",
|
|
355
|
+
it("should validate outDir ends with skirout", () => {
|
|
356
356
|
const yamlCode = `
|
|
357
357
|
generators:
|
|
358
358
|
- mod: "@example/generator"
|
|
359
359
|
config: {}
|
|
360
360
|
outDir: path/to/skirout
|
|
361
361
|
`;
|
|
362
|
-
const result =
|
|
362
|
+
const result = parseSkirConfig(yamlCode);
|
|
363
363
|
expect(result).toMatch({
|
|
364
364
|
skirConfig: {
|
|
365
365
|
generators: [
|
|
@@ -373,7 +373,7 @@ generators:
|
|
|
373
373
|
errors: [],
|
|
374
374
|
});
|
|
375
375
|
});
|
|
376
|
-
it("should handle YAML with duplicate keys as warning/error",
|
|
376
|
+
it("should handle YAML with duplicate keys as warning/error", () => {
|
|
377
377
|
const yamlCode = `
|
|
378
378
|
generators:
|
|
379
379
|
- mod: "@example/generator"
|
|
@@ -381,14 +381,14 @@ generators:
|
|
|
381
381
|
config: {}
|
|
382
382
|
mod: "@another/generator"
|
|
383
383
|
`;
|
|
384
|
-
const result =
|
|
384
|
+
const result = parseSkirConfig(yamlCode);
|
|
385
385
|
// YAML library should detect duplicate keys
|
|
386
386
|
// The exact behavior depends on yaml library settings
|
|
387
387
|
if (result.errors.length > 0) {
|
|
388
388
|
expect(result.skirConfig).toMatch(undefined);
|
|
389
389
|
}
|
|
390
390
|
});
|
|
391
|
-
it("should do validation on generator's config if known",
|
|
391
|
+
it("should do validation on generator's config if known", () => {
|
|
392
392
|
const yamlCode = `
|
|
393
393
|
generators:
|
|
394
394
|
- mod: skir-typescript-gen
|
|
@@ -396,7 +396,7 @@ generators:
|
|
|
396
396
|
config:
|
|
397
397
|
importPathExtension: .jss
|
|
398
398
|
`;
|
|
399
|
-
const result =
|
|
399
|
+
const result = parseSkirConfig(yamlCode);
|
|
400
400
|
expect(result).toMatch({
|
|
401
401
|
errors: [
|
|
402
402
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_parser.test.js","sourceRoot":"","sources":["../src/config_parser.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,iDAAiD,EAAE,
|
|
1
|
+
{"version":3,"file":"config_parser.test.js","sourceRoot":"","sources":["../src/config_parser.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,7 +69,7 @@ generators:
|
|
|
69
69
|
# # Alternatively:
|
|
70
70
|
# # outDir: ./src/main/java/my/project/skirout
|
|
71
71
|
# # config:
|
|
72
|
-
# # packagePrefix:
|
|
72
|
+
# # packagePrefix: my.project.
|
|
73
73
|
|
|
74
74
|
# # --------------------------------------------------------------------------
|
|
75
75
|
# # Kotlin code generator
|
|
@@ -83,7 +83,7 @@ generators:
|
|
|
83
83
|
# # Alternatively:
|
|
84
84
|
# # outDir: ./src/main/kotlin/my/project/skirout
|
|
85
85
|
# # config:
|
|
86
|
-
# # packagePrefix:
|
|
86
|
+
# # packagePrefix: my.project.
|
|
87
87
|
|
|
88
88
|
# # --------------------------------------------------------------------------
|
|
89
89
|
# # Python code generator
|
|
@@ -96,7 +96,7 @@ generators:
|
|
|
96
96
|
# # Alternatively:
|
|
97
97
|
# # outDir: ./my/project/skirout
|
|
98
98
|
# # config:
|
|
99
|
-
# # packagePrefix:
|
|
99
|
+
# # packagePrefix: my.project.
|
|
100
100
|
|
|
101
101
|
# # --------------------------------------------------------------------------
|
|
102
102
|
# # TypeScript/JavaScript code generator
|
package/package.json
CHANGED
package/src/compiler.ts
CHANGED
|
@@ -6,7 +6,10 @@ import type { CodeGenerator } from "skir-internal";
|
|
|
6
6
|
import Watcher from "watcher";
|
|
7
7
|
import { parseCommandLine } from "./command_line_parser.js";
|
|
8
8
|
import { GeneratorConfig } from "./config.js";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
importCodeGenerator,
|
|
11
|
+
parseSkirConfigWithDynamicImports,
|
|
12
|
+
} from "./config_parser.js";
|
|
10
13
|
import {
|
|
11
14
|
makeGray,
|
|
12
15
|
makeGreen,
|
|
@@ -357,7 +360,8 @@ async function main(): Promise<void> {
|
|
|
357
360
|
process.exit(1);
|
|
358
361
|
}
|
|
359
362
|
|
|
360
|
-
const skirConfigResult =
|
|
363
|
+
const skirConfigResult =
|
|
364
|
+
await parseSkirConfigWithDynamicImports(skirConfigCode);
|
|
361
365
|
if (skirConfigResult.errors.length > 0) {
|
|
362
366
|
console.error(makeRed("Invalid skir config"));
|
|
363
367
|
const { maybeForgotToEditAfterInit } = skirConfigResult;
|
package/src/config_parser.ts
CHANGED
|
@@ -38,10 +38,37 @@ export interface SkirConfigErrorPos {
|
|
|
38
38
|
colNumber: number;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
/** Synchronous version - doesn't import any module. */
|
|
42
|
+
export function parseSkirConfig(yamlCode: string): SkirConfigResult {
|
|
43
|
+
return parseSkirConfigInternal(yamlCode, (mod) => STATIC_GENERATORS[mod]);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Async version - dynamically imports generator modules. */
|
|
47
|
+
export async function parseSkirConfigWithDynamicImports(
|
|
42
48
|
yamlCode: string,
|
|
43
|
-
importMods?: "import-mods",
|
|
44
49
|
): Promise<SkirConfigResult> {
|
|
50
|
+
return parseSkirConfigInternalAsync(yamlCode, importCodeGenerator);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export async function importCodeGenerator(
|
|
54
|
+
mod: string,
|
|
55
|
+
): Promise<CodeGenerator<unknown>> {
|
|
56
|
+
const module = await import(mod);
|
|
57
|
+
const generator = module.GENERATOR;
|
|
58
|
+
if (typeof generator !== "object") {
|
|
59
|
+
throw new Error(`Cannot import GENERATOR from module ${mod}`);
|
|
60
|
+
}
|
|
61
|
+
return generator as CodeGenerator<unknown>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface ParsedYamlResult {
|
|
65
|
+
earlyReturn?: SkirConfigResult;
|
|
66
|
+
zodResult: ReturnType<typeof SkirConfig.safeParse>;
|
|
67
|
+
errors: SkirConfigError[];
|
|
68
|
+
pushErrorAtPath: (path: readonly PropertyKey[], message: string) => void;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function parseYaml(yamlCode: string): ParsedYamlResult {
|
|
45
72
|
const errors: SkirConfigError[] = [];
|
|
46
73
|
|
|
47
74
|
// 1. Parse YAML into a Document object
|
|
@@ -116,56 +143,115 @@ export async function parseSkirConfig(
|
|
|
116
143
|
});
|
|
117
144
|
}
|
|
118
145
|
return {
|
|
119
|
-
|
|
120
|
-
|
|
146
|
+
earlyReturn: {
|
|
147
|
+
skirConfig: undefined,
|
|
148
|
+
errors: errors,
|
|
149
|
+
},
|
|
150
|
+
zodResult: { success: false } as any,
|
|
151
|
+
errors,
|
|
152
|
+
pushErrorAtPath,
|
|
121
153
|
};
|
|
122
154
|
}
|
|
123
155
|
|
|
124
156
|
// 2. Validate with Zod schema
|
|
125
157
|
const jsData = doc.toJS();
|
|
126
|
-
const
|
|
158
|
+
const zodResult = SkirConfig.safeParse(jsData);
|
|
127
159
|
|
|
128
|
-
if (!
|
|
129
|
-
for (const issue of
|
|
160
|
+
if (!zodResult.success) {
|
|
161
|
+
for (const issue of zodResult.error.issues) {
|
|
130
162
|
pushErrorAtPath(issue.path, issue.message);
|
|
131
163
|
}
|
|
132
|
-
const maybeForgotToEditAfterInit =
|
|
133
|
-
jsData &&
|
|
164
|
+
const maybeForgotToEditAfterInit: boolean | undefined =
|
|
165
|
+
jsData &&
|
|
166
|
+
typeof jsData === "object" &&
|
|
167
|
+
"generators" in jsData &&
|
|
168
|
+
jsData.generators === null
|
|
169
|
+
? true
|
|
170
|
+
: false;
|
|
134
171
|
return {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
172
|
+
earlyReturn: {
|
|
173
|
+
skirConfig: undefined,
|
|
174
|
+
errors: errors,
|
|
175
|
+
maybeForgotToEditAfterInit,
|
|
176
|
+
},
|
|
177
|
+
zodResult,
|
|
178
|
+
errors,
|
|
179
|
+
pushErrorAtPath,
|
|
138
180
|
};
|
|
139
181
|
}
|
|
140
182
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
183
|
+
return {
|
|
184
|
+
zodResult,
|
|
185
|
+
errors,
|
|
186
|
+
pushErrorAtPath,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function parseSkirConfigInternal(
|
|
191
|
+
yamlCode: string,
|
|
192
|
+
getGenerator: (mod: string) => CodeGenerator<unknown> | undefined,
|
|
193
|
+
): SkirConfigResult {
|
|
194
|
+
const { earlyReturn, errors, zodResult, pushErrorAtPath } =
|
|
195
|
+
parseYaml(yamlCode);
|
|
196
|
+
|
|
197
|
+
if (earlyReturn) {
|
|
198
|
+
return earlyReturn;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// Validate each generator's config with Zod schema
|
|
202
|
+
for (let i = 0; i < zodResult.data!.generators.length; i++) {
|
|
203
|
+
const generatorConfig = zodResult.data!.generators[i]!;
|
|
144
204
|
const { mod } = generatorConfig;
|
|
145
|
-
|
|
146
|
-
if (
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
205
|
+
const generator = getGenerator(mod);
|
|
206
|
+
if (generator) {
|
|
207
|
+
const parsedGeneratorConfig = generator.configType.safeParse(
|
|
208
|
+
generatorConfig.config,
|
|
209
|
+
);
|
|
210
|
+
if (!parsedGeneratorConfig.success) {
|
|
211
|
+
for (const issue of parsedGeneratorConfig.error.issues) {
|
|
212
|
+
const path: readonly PropertyKey[] = [
|
|
213
|
+
"generators",
|
|
214
|
+
i,
|
|
215
|
+
"config",
|
|
216
|
+
...issue.path,
|
|
217
|
+
];
|
|
218
|
+
pushErrorAtPath(path, issue.message ?? "Error");
|
|
155
219
|
}
|
|
156
220
|
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (errors.length > 0) {
|
|
224
|
+
return { skirConfig: undefined, errors: errors };
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
return { skirConfig: zodResult.data!, errors: [] };
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
async function parseSkirConfigInternalAsync(
|
|
231
|
+
yamlCode: string,
|
|
232
|
+
getGenerator: (mod: string) => Promise<CodeGenerator<unknown>>,
|
|
233
|
+
): Promise<SkirConfigResult> {
|
|
234
|
+
const { earlyReturn, errors, zodResult, pushErrorAtPath } =
|
|
235
|
+
parseYaml(yamlCode);
|
|
236
|
+
|
|
237
|
+
if (earlyReturn) {
|
|
238
|
+
return earlyReturn;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// Validate each generator's config with Zod schema
|
|
242
|
+
for (let i = 0; i < zodResult.data!.generators.length; i++) {
|
|
243
|
+
const generatorConfig = zodResult.data!.generators[i]!;
|
|
244
|
+
const { mod } = generatorConfig;
|
|
245
|
+
let generator: CodeGenerator<unknown> | undefined;
|
|
246
|
+
try {
|
|
247
|
+
generator = await getGenerator(mod);
|
|
248
|
+
} catch (e) {
|
|
249
|
+
if (e instanceof Error) {
|
|
250
|
+
pushErrorAtPath(["generators", i, "mod"], e.message);
|
|
251
|
+
continue;
|
|
252
|
+
} else {
|
|
253
|
+
throw e;
|
|
254
|
+
}
|
|
169
255
|
}
|
|
170
256
|
if (generator) {
|
|
171
257
|
const parsedGeneratorConfig = generator.configType.safeParse(
|
|
@@ -188,16 +274,14 @@ export async function parseSkirConfig(
|
|
|
188
274
|
return { skirConfig: undefined, errors: errors };
|
|
189
275
|
}
|
|
190
276
|
|
|
191
|
-
return { skirConfig:
|
|
277
|
+
return { skirConfig: zodResult.data!, errors: [] };
|
|
192
278
|
}
|
|
193
279
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
return generator as CodeGenerator<unknown>;
|
|
203
|
-
}
|
|
280
|
+
const STATIC_GENERATORS: Record<string, CodeGenerator<unknown>> = {
|
|
281
|
+
"skir-cc-gen": CcGen.GENERATOR,
|
|
282
|
+
"skir-dart-gen": DartGen.GENERATOR,
|
|
283
|
+
"skir-java-gen": JavaGen.GENERATOR,
|
|
284
|
+
"skir-kotlin-gen": KotlinGen.GENERATOR,
|
|
285
|
+
"skir-python-gen": PythonGen.GENERATOR,
|
|
286
|
+
"skir-typescript-gen": TypescriptGen.GENERATOR,
|
|
287
|
+
};
|
|
@@ -78,7 +78,7 @@ generators:
|
|
|
78
78
|
# # Alternatively:
|
|
79
79
|
# # outDir: ./src/main/java/my/project/skirout
|
|
80
80
|
# # config:
|
|
81
|
-
# # packagePrefix:
|
|
81
|
+
# # packagePrefix: my.project.
|
|
82
82
|
|
|
83
83
|
# # --------------------------------------------------------------------------
|
|
84
84
|
# # Kotlin code generator
|
|
@@ -92,7 +92,7 @@ generators:
|
|
|
92
92
|
# # Alternatively:
|
|
93
93
|
# # outDir: ./src/main/kotlin/my/project/skirout
|
|
94
94
|
# # config:
|
|
95
|
-
# # packagePrefix:
|
|
95
|
+
# # packagePrefix: my.project.
|
|
96
96
|
|
|
97
97
|
# # --------------------------------------------------------------------------
|
|
98
98
|
# # Python code generator
|
|
@@ -105,7 +105,7 @@ generators:
|
|
|
105
105
|
# # Alternatively:
|
|
106
106
|
# # outDir: ./my/project/skirout
|
|
107
107
|
# # config:
|
|
108
|
-
# # packagePrefix:
|
|
108
|
+
# # packagePrefix: my.project.
|
|
109
109
|
|
|
110
110
|
# # --------------------------------------------------------------------------
|
|
111
111
|
# # TypeScript/JavaScript code generator
|