langium-zod 0.6.0 → 0.7.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/dist/api.d.ts.map +1 -1
- package/dist/api.js +3 -1
- package/dist/api.js.map +1 -1
- package/dist/cli.d.ts +5 -71
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +22 -172
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/emitters/domain.d.ts +17 -0
- package/dist/emitters/domain.d.ts.map +1 -1
- package/dist/emitters/domain.js +108 -7
- package/dist/emitters/domain.js.map +1 -1
- package/dist/generate.d.ts +70 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +183 -0
- package/dist/generate.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/projection.d.ts +5 -0
- package/dist/projection.d.ts.map +1 -1
- package/dist/projection.js +17 -1
- package/dist/projection.js.map +1 -1
- package/package.json +1 -1
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAUtD,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AAS1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmHG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAkGrE;AAcD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAUtD,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AAS1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmHG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAkGrE;AAcD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CA8BxE"}
|
package/dist/api.js
CHANGED
|
@@ -247,7 +247,9 @@ export function generateDomainSchemas(config) {
|
|
|
247
247
|
const source = generateDomainCode(descriptors, {
|
|
248
248
|
projection: config.projection,
|
|
249
249
|
stripInternals: config.stripInternals,
|
|
250
|
-
overlays: config.domainOverlays
|
|
250
|
+
overlays: config.domainOverlays,
|
|
251
|
+
// Forward config-file normalizations to the emitter (additive extends/members aliases).
|
|
252
|
+
normalizations: config.projection?.normalizations
|
|
251
253
|
});
|
|
252
254
|
if (config.domainOutputPath) {
|
|
253
255
|
mkdirSync(dirname(config.domainOutputPath), { recursive: true });
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
/**
|
|
6
|
-
* Path to `langium-config.json`. Defaults to `langium-config.json` in cwd.
|
|
7
|
-
* Only used when picked up via the CLI; programmatic API ignores it.
|
|
8
|
-
*/
|
|
9
|
-
langiumConfig?: string;
|
|
10
|
-
/** Explicit output path. Overrides derived path from langium-config.json `out` field. */
|
|
11
|
-
outputPath?: string;
|
|
12
|
-
}
|
|
2
|
+
import type { LangiumZodConfig } from './generate.js';
|
|
3
|
+
export { generate, getUnknownFilterNames } from './generate.js';
|
|
4
|
+
export type { GenerateOptions, LangiumZodConfig } from './generate.js';
|
|
13
5
|
/**
|
|
14
6
|
* Merges CLI `--include` / `--exclude` flag values with the base filter from a
|
|
15
7
|
* user config file, producing a deduplicated, conflict-free filter pair.
|
|
@@ -28,72 +20,14 @@ export interface LangiumZodConfig extends Omit<ZodGeneratorConfig, 'grammar' | '
|
|
|
28
20
|
* generator config.
|
|
29
21
|
*/
|
|
30
22
|
export declare function resolveFilterOverrides(base: Pick<LangiumZodConfig, 'include' | 'exclude'>, includeArg?: string, excludeArg?: string): Pick<LangiumZodConfig, 'include' | 'exclude'>;
|
|
31
|
-
/**
|
|
32
|
-
* Returns the subset of `requested` names that are not present in
|
|
33
|
-
* `availableTypeNames`.
|
|
34
|
-
*
|
|
35
|
-
* Used to surface warnings when the user's `--include` or `--exclude` list
|
|
36
|
-
* references type names that do not exist in the parsed grammar, helping catch
|
|
37
|
-
* typos before generation runs.
|
|
38
|
-
*
|
|
39
|
-
* @param requested - The type names requested by the user (include or exclude
|
|
40
|
-
* list). Returns an empty array immediately when this is `undefined` or empty.
|
|
41
|
-
* @param availableTypeNames - All type names present in the parsed Langium grammar
|
|
42
|
-
* (both interface types and union/datatype rule types).
|
|
43
|
-
* @returns An array of names from `requested` that are absent from
|
|
44
|
-
* `availableTypeNames`.
|
|
45
|
-
*/
|
|
46
|
-
export declare function getUnknownFilterNames(requested: string[] | undefined, availableTypeNames: string[]): string[];
|
|
47
|
-
/**
|
|
48
|
-
* Options accepted by the programmatic {@link generate} function.
|
|
49
|
-
*
|
|
50
|
-
* Allows the core generation logic to be invoked directly from other tools or
|
|
51
|
-
* scripts without going through the CLI argument parser.
|
|
52
|
-
*/
|
|
53
|
-
export interface GenerateOptions {
|
|
54
|
-
/** Absolute path to langium-config.json */
|
|
55
|
-
langiumConfigPath: string;
|
|
56
|
-
/** Merged generator config (from user's langium-zod.config.js + CLI flags) */
|
|
57
|
-
config?: LangiumZodConfig;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Programmatic entry point for the `langium-zod generate` command.
|
|
61
|
-
*
|
|
62
|
-
* Loads `langium-config.json` from `opts.langiumConfigPath`, resolves the grammar
|
|
63
|
-
* file path, parses the grammar with Langium services (including eager import
|
|
64
|
-
* loading so cross-file references link correctly), then calls
|
|
65
|
-
* {@link generateZodSchemas} with the merged configuration. Prints a success
|
|
66
|
-
* message to stdout when generation completes.
|
|
67
|
-
*
|
|
68
|
-
* @param opts - {@link GenerateOptions} specifying the langium config path and
|
|
69
|
-
* optional pre-merged generator config.
|
|
70
|
-
* @throws `Error` when the langium-config.json or grammar file cannot be found, or
|
|
71
|
-
* when the config defines no languages.
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```ts
|
|
75
|
-
* import { generate } from 'langium-zod';
|
|
76
|
-
* import { resolve } from 'node:path';
|
|
77
|
-
*
|
|
78
|
-
* await generate({
|
|
79
|
-
* langiumConfigPath: resolve(process.cwd(), 'langium-config.json'),
|
|
80
|
-
* config: {
|
|
81
|
-
* outputPath: 'src/generated/zod-schemas.ts',
|
|
82
|
-
* stripInternals: true,
|
|
83
|
-
* },
|
|
84
|
-
* });
|
|
85
|
-
* // Prints: ✓ Generated Zod schemas → src/generated/zod-schemas.ts
|
|
86
|
-
* ```
|
|
87
|
-
*/
|
|
88
|
-
export declare function generate(opts: GenerateOptions): Promise<void>;
|
|
89
23
|
/**
|
|
90
24
|
* CLI entry point executed when the `langium-zod` binary is invoked directly.
|
|
91
25
|
*
|
|
92
26
|
* Parses `process.argv`, resolves `langium-config.json`, loads an optional
|
|
93
27
|
* `langium-zod.config.js` from the same directory, merges all CLI flag overrides
|
|
94
28
|
* (--out, --include, --exclude, --projection, --strip-internals, --conformance,
|
|
95
|
-
* --cross-ref-validation), then delegates to
|
|
96
|
-
* with code 1 on error.
|
|
29
|
+
* --cross-ref-validation, --domain, --domain-only), then delegates to
|
|
30
|
+
* {@link generate}. Exits the process with code 1 on error.
|
|
97
31
|
*/
|
|
98
32
|
export declare function main(): Promise<void>;
|
|
99
33
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAkBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAItD,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAoCvE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAAC,EACnD,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAAC,CAc/C;AAiDD;;;;;;;;GAQG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAkH1C"}
|
package/dist/cli.js
CHANGED
|
@@ -5,16 +5,23 @@
|
|
|
5
5
|
* Usage:
|
|
6
6
|
* langium-zod generate [--config langium-config.json] [--out src/generated/zod-schemas.ts]
|
|
7
7
|
* langium-zod --help
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* This module carries the `#!` shebang and `process.argv` parsing. The programmatic
|
|
11
|
+
* generation core lives in `./generate.ts` (shebang-free) so the package's main
|
|
12
|
+
* entry can re-export `generate` without dragging the shebang into consumer bundle
|
|
13
|
+
* graphs. The moved symbols are re-exported below for backward compatibility.
|
|
8
14
|
*/
|
|
9
|
-
import { existsSync
|
|
15
|
+
import { existsSync } from 'node:fs';
|
|
10
16
|
import { dirname, join, resolve } from 'node:path';
|
|
11
17
|
import { pathToFileURL } from 'node:url';
|
|
12
|
-
import {
|
|
13
|
-
import { createLangiumGrammarServices, resolveImportUri } from 'langium/grammar';
|
|
14
|
-
import { NodeFileSystem } from 'langium/node';
|
|
15
|
-
import { generateZodSchemas, generateDomainSchemas } from './api.js';
|
|
16
|
-
import { resolveAstTypesPath } from './conformance.js';
|
|
18
|
+
import { generate } from './generate.js';
|
|
17
19
|
import { loadProjectionConfig } from './projection.js';
|
|
20
|
+
// Re-export the programmatic core for callers that import from the CLI entry.
|
|
21
|
+
export { generate, getUnknownFilterNames } from './generate.js';
|
|
22
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
23
|
+
// Argument parsing helpers
|
|
24
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
18
25
|
function parseCsvList(value) {
|
|
19
26
|
const seen = new Set();
|
|
20
27
|
const parsed = [];
|
|
@@ -68,36 +75,6 @@ export function resolveFilterOverrides(base, includeArg, excludeArg) {
|
|
|
68
75
|
exclude: excludeSource
|
|
69
76
|
};
|
|
70
77
|
}
|
|
71
|
-
function warnUnknownFilterNames(filterName, requested, availableTypeNames) {
|
|
72
|
-
const unknown = getUnknownFilterNames(requested, availableTypeNames);
|
|
73
|
-
if (unknown.length === 0) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
const availableList = availableTypeNames.length > 0 ? availableTypeNames.join(', ') : '(none)';
|
|
77
|
-
console.warn(`Warning: Unknown ${filterName} type name(s): ${unknown.join(', ')}. Available types: ${availableList}`);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Returns the subset of `requested` names that are not present in
|
|
81
|
-
* `availableTypeNames`.
|
|
82
|
-
*
|
|
83
|
-
* Used to surface warnings when the user's `--include` or `--exclude` list
|
|
84
|
-
* references type names that do not exist in the parsed grammar, helping catch
|
|
85
|
-
* typos before generation runs.
|
|
86
|
-
*
|
|
87
|
-
* @param requested - The type names requested by the user (include or exclude
|
|
88
|
-
* list). Returns an empty array immediately when this is `undefined` or empty.
|
|
89
|
-
* @param availableTypeNames - All type names present in the parsed Langium grammar
|
|
90
|
-
* (both interface types and union/datatype rule types).
|
|
91
|
-
* @returns An array of names from `requested` that are absent from
|
|
92
|
-
* `availableTypeNames`.
|
|
93
|
-
*/
|
|
94
|
-
export function getUnknownFilterNames(requested, availableTypeNames) {
|
|
95
|
-
if (!requested || requested.length === 0) {
|
|
96
|
-
return [];
|
|
97
|
-
}
|
|
98
|
-
const available = new Set(availableTypeNames);
|
|
99
|
-
return requested.filter((name) => !available.has(name));
|
|
100
|
-
}
|
|
101
78
|
// ────────────────────────────────────────────────────────────────────────────
|
|
102
79
|
// Helpers
|
|
103
80
|
// ────────────────────────────────────────────────────────────────────────────
|
|
@@ -120,6 +97,7 @@ OPTIONS
|
|
|
120
97
|
--conformance-out <path> Output path for conformance artifact
|
|
121
98
|
--cross-ref-validation Emit runtime cross-reference schema factories
|
|
122
99
|
--domain Also emit the domain surface (domain.ts)
|
|
100
|
+
--domain-only Emit ONLY the domain surface (implies --domain, skips Zod schemas)
|
|
123
101
|
--domain-out <path> Output path for the domain surface
|
|
124
102
|
--help Show this help message
|
|
125
103
|
|
|
@@ -138,139 +116,6 @@ CONFIGURATION
|
|
|
138
116
|
};
|
|
139
117
|
`);
|
|
140
118
|
}
|
|
141
|
-
/**
|
|
142
|
-
* Recursively load imported grammar files so that DocumentBuilder can link
|
|
143
|
-
* cross-file references correctly (mirrors langium-cli's eagerLoad strategy).
|
|
144
|
-
*/
|
|
145
|
-
async function eagerLoad(document, documents, visited = new Set()) {
|
|
146
|
-
const key = document.uri.toString();
|
|
147
|
-
if (visited.has(key))
|
|
148
|
-
return;
|
|
149
|
-
visited.add(key);
|
|
150
|
-
const grammar = document.parseResult?.value;
|
|
151
|
-
if (!grammar)
|
|
152
|
-
return;
|
|
153
|
-
// Grammar.imports is an array of GrammarImport nodes; resolveImportUri handles the URI
|
|
154
|
-
const imports = grammar.imports ?? [];
|
|
155
|
-
for (const imp of imports) {
|
|
156
|
-
const importUri = resolveImportUri(imp);
|
|
157
|
-
if (importUri) {
|
|
158
|
-
const importedDoc = await documents.getOrCreateDocument(importUri);
|
|
159
|
-
await eagerLoad(importedDoc, documents, visited);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Programmatic entry point for the `langium-zod generate` command.
|
|
165
|
-
*
|
|
166
|
-
* Loads `langium-config.json` from `opts.langiumConfigPath`, resolves the grammar
|
|
167
|
-
* file path, parses the grammar with Langium services (including eager import
|
|
168
|
-
* loading so cross-file references link correctly), then calls
|
|
169
|
-
* {@link generateZodSchemas} with the merged configuration. Prints a success
|
|
170
|
-
* message to stdout when generation completes.
|
|
171
|
-
*
|
|
172
|
-
* @param opts - {@link GenerateOptions} specifying the langium config path and
|
|
173
|
-
* optional pre-merged generator config.
|
|
174
|
-
* @throws `Error` when the langium-config.json or grammar file cannot be found, or
|
|
175
|
-
* when the config defines no languages.
|
|
176
|
-
*
|
|
177
|
-
* @example
|
|
178
|
-
* ```ts
|
|
179
|
-
* import { generate } from 'langium-zod';
|
|
180
|
-
* import { resolve } from 'node:path';
|
|
181
|
-
*
|
|
182
|
-
* await generate({
|
|
183
|
-
* langiumConfigPath: resolve(process.cwd(), 'langium-config.json'),
|
|
184
|
-
* config: {
|
|
185
|
-
* outputPath: 'src/generated/zod-schemas.ts',
|
|
186
|
-
* stripInternals: true,
|
|
187
|
-
* },
|
|
188
|
-
* });
|
|
189
|
-
* // Prints: ✓ Generated Zod schemas → src/generated/zod-schemas.ts
|
|
190
|
-
* ```
|
|
191
|
-
*/
|
|
192
|
-
export async function generate(opts) {
|
|
193
|
-
const { langiumConfigPath } = opts;
|
|
194
|
-
const userConfig = opts.config ?? {};
|
|
195
|
-
// ── 1. Load langium-config.json ─────────────────────────────────────────
|
|
196
|
-
if (!existsSync(langiumConfigPath)) {
|
|
197
|
-
throw new Error(`langium-config.json not found: ${langiumConfigPath}`);
|
|
198
|
-
}
|
|
199
|
-
const langiumConfig = JSON.parse(readFileSync(langiumConfigPath, 'utf8'));
|
|
200
|
-
const configDir = dirname(langiumConfigPath);
|
|
201
|
-
const languages = langiumConfig.languages;
|
|
202
|
-
if (!languages || languages.length === 0) {
|
|
203
|
-
throw new Error('No languages defined in langium-config.json');
|
|
204
|
-
}
|
|
205
|
-
const grammarRelPath = languages[0].grammar;
|
|
206
|
-
const grammarAbsPath = resolve(configDir, grammarRelPath);
|
|
207
|
-
if (!existsSync(grammarAbsPath)) {
|
|
208
|
-
throw new Error(`Grammar file not found: ${grammarAbsPath}`);
|
|
209
|
-
}
|
|
210
|
-
// ── 2. Resolve output path ───────────────────────────────────────────────
|
|
211
|
-
const outDir = langiumConfig.out
|
|
212
|
-
? resolve(configDir, langiumConfig.out)
|
|
213
|
-
: resolve(configDir, 'src/generated');
|
|
214
|
-
const outputPath = userConfig.outputPath ?? join(outDir, 'zod-schemas.ts');
|
|
215
|
-
const conformanceConfig = userConfig.conformance;
|
|
216
|
-
if (conformanceConfig) {
|
|
217
|
-
const resolvedAstTypesPath = conformanceConfig.astTypesPath
|
|
218
|
-
? resolve(configDir, conformanceConfig.astTypesPath)
|
|
219
|
-
: langiumConfig.astTypes
|
|
220
|
-
? resolve(configDir, langiumConfig.astTypes)
|
|
221
|
-
: resolveAstTypesPath(configDir, outDir);
|
|
222
|
-
if (!existsSync(resolvedAstTypesPath)) {
|
|
223
|
-
throw new Error(`Unable to resolve ast types path for conformance: ${resolvedAstTypesPath}`);
|
|
224
|
-
}
|
|
225
|
-
userConfig.conformance = {
|
|
226
|
-
astTypesPath: resolvedAstTypesPath,
|
|
227
|
-
outputPath: conformanceConfig.outputPath
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
// ── 3. Parse grammar using Langium services ──────────────────────────────
|
|
231
|
-
const { shared, grammar: grammarServices } = createLangiumGrammarServices(NodeFileSystem);
|
|
232
|
-
void grammarServices; // used only for type-checking if needed later
|
|
233
|
-
const langiumDocuments = shared.workspace.LangiumDocuments;
|
|
234
|
-
const documentBuilder = shared.workspace.DocumentBuilder;
|
|
235
|
-
const grammarUri = URI.file(grammarAbsPath);
|
|
236
|
-
const entryDocument = await langiumDocuments.getOrCreateDocument(grammarUri);
|
|
237
|
-
// Recursively load imported files so references resolve correctly
|
|
238
|
-
await eagerLoad(entryDocument, langiumDocuments);
|
|
239
|
-
// Build (parse + link) all loaded documents
|
|
240
|
-
await documentBuilder.build(langiumDocuments.all.toArray(), {
|
|
241
|
-
validation: false
|
|
242
|
-
});
|
|
243
|
-
const grammar = entryDocument.parseResult.value;
|
|
244
|
-
const availableTypeNames = [
|
|
245
|
-
...(grammar.interfaces ?? []).map((entry) => entry.name),
|
|
246
|
-
...(grammar.types ?? []).map((entry) => entry.name)
|
|
247
|
-
]
|
|
248
|
-
.filter((name) => typeof name === 'string')
|
|
249
|
-
.sort((left, right) => left.localeCompare(right));
|
|
250
|
-
warnUnknownFilterNames('include', userConfig.include, availableTypeNames);
|
|
251
|
-
warnUnknownFilterNames('exclude', userConfig.exclude, availableTypeNames);
|
|
252
|
-
// ── 4. Generate schemas ──────────────────────────────────────────────────
|
|
253
|
-
const { langiumConfig: _ignored, outputPath: _op, emitDomain: _emitDomain, domainOutputPath: _domainOutputPath, ...restConfig } = userConfig;
|
|
254
|
-
generateZodSchemas({
|
|
255
|
-
grammar,
|
|
256
|
-
outputPath,
|
|
257
|
-
...restConfig
|
|
258
|
-
});
|
|
259
|
-
console.log(`✓ Generated Zod schemas → ${outputPath}`);
|
|
260
|
-
if (userConfig.emitDomain) {
|
|
261
|
-
const domainOutputPath = userConfig.domainOutputPath ?? join(outDir, 'domain.ts');
|
|
262
|
-
generateDomainSchemas({
|
|
263
|
-
grammar,
|
|
264
|
-
domainOutputPath,
|
|
265
|
-
stripInternals: restConfig.stripInternals,
|
|
266
|
-
projection: restConfig.projection,
|
|
267
|
-
domainOverlays: restConfig.domainOverlays,
|
|
268
|
-
include: restConfig.include,
|
|
269
|
-
exclude: restConfig.exclude
|
|
270
|
-
});
|
|
271
|
-
console.log(`✓ Generated domain surface → ${domainOutputPath}`);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
119
|
// ────────────────────────────────────────────────────────────────────────────
|
|
275
120
|
// CLI entry point
|
|
276
121
|
// ────────────────────────────────────────────────────────────────────────────
|
|
@@ -280,8 +125,8 @@ export async function generate(opts) {
|
|
|
280
125
|
* Parses `process.argv`, resolves `langium-config.json`, loads an optional
|
|
281
126
|
* `langium-zod.config.js` from the same directory, merges all CLI flag overrides
|
|
282
127
|
* (--out, --include, --exclude, --projection, --strip-internals, --conformance,
|
|
283
|
-
* --cross-ref-validation), then delegates to
|
|
284
|
-
* with code 1 on error.
|
|
128
|
+
* --cross-ref-validation, --domain, --domain-only), then delegates to
|
|
129
|
+
* {@link generate}. Exits the process with code 1 on error.
|
|
285
130
|
*/
|
|
286
131
|
export async function main() {
|
|
287
132
|
const args = process.argv.slice(2);
|
|
@@ -308,7 +153,8 @@ export async function main() {
|
|
|
308
153
|
const stripInternalsEnabled = args.includes('--strip-internals');
|
|
309
154
|
const conformanceEnabled = args.includes('--conformance');
|
|
310
155
|
const crossRefValidationEnabled = args.includes('--cross-ref-validation');
|
|
311
|
-
const
|
|
156
|
+
const domainOnlyEnabled = args.includes('--domain-only');
|
|
157
|
+
const domainEnabled = args.includes('--domain') || domainOnlyEnabled;
|
|
312
158
|
const domainOutFlagValue = getArgValue(args, '--domain-out');
|
|
313
159
|
// ── Locate langium-config.json ───────────────────────────────────────────
|
|
314
160
|
const configFileName = configFlagValue ?? 'langium-config.json';
|
|
@@ -367,6 +213,10 @@ export async function main() {
|
|
|
367
213
|
userConfig = {
|
|
368
214
|
...userConfig,
|
|
369
215
|
emitDomain: true,
|
|
216
|
+
// --domain-only emits the domain surface WITHOUT regenerating Zod schemas,
|
|
217
|
+
// so a domain generate can use its own (full) projection without clobbering
|
|
218
|
+
// a separately-projected zod-schemas.ts.
|
|
219
|
+
domainOnly: domainOnlyEnabled,
|
|
370
220
|
domainOutputPath: domainOutFlagValue
|
|
371
221
|
? resolve(process.cwd(), domainOutFlagValue)
|
|
372
222
|
: userConfig.domainOutputPath
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -166,6 +166,8 @@ export interface ZodGeneratorConfig extends FilterConfig {
|
|
|
166
166
|
objectStyle?: 'loose' | 'strict';
|
|
167
167
|
/** When true, the CLI also emits the domain surface to `domainOutputPath`. */
|
|
168
168
|
emitDomain?: boolean;
|
|
169
|
+
/** When true (CLI `--domain-only`), emit ONLY the domain surface and skip Zod-schema generation. */
|
|
170
|
+
domainOnly?: boolean;
|
|
169
171
|
/** Output path for the generated domain surface (`domain.ts`). */
|
|
170
172
|
domainOutputPath?: string;
|
|
171
173
|
/** Project-specific semantic overlays (renames + read-only merges) supplied by the consumer for the domain target. */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE;QACZ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACjC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sHAAsH;IACtH,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAKnF"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE;QACZ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACjC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oGAAoG;IACpG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sHAAsH;IACtH,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAKnF"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAkLA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAElE,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IACzD,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE;QAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -12,12 +12,29 @@ export interface DomainOverlayTypeConfig {
|
|
|
12
12
|
export interface DomainOverlayConfig {
|
|
13
13
|
types?: Record<string, DomainOverlayTypeConfig>;
|
|
14
14
|
}
|
|
15
|
+
export interface NormalizationConfig {
|
|
16
|
+
/** Canonical field name to add (e.g. `'extends'` or `'members'`). */
|
|
17
|
+
as: string;
|
|
18
|
+
/**
|
|
19
|
+
* Per-kind source field: `{ TypeName: 'sourceFieldName' }`.
|
|
20
|
+
* The alias reuses the source field's already-projected `tsType` and `readExpr` verbatim.
|
|
21
|
+
* Values match the post-rename domain field name. If the source field is absent on a
|
|
22
|
+
* kind's planned fields, the alias is silently skipped for that kind.
|
|
23
|
+
*/
|
|
24
|
+
from: Record<string, string>;
|
|
25
|
+
}
|
|
15
26
|
export interface DomainGenerationOptions {
|
|
16
27
|
/** Reuses the Zod projection for `defaults.strip` + per-type `fields`. */
|
|
17
28
|
projection?: ProjectionConfig;
|
|
18
29
|
/** Drop `$`-internal metadata fields (`$container`, `$cstNode`, …). */
|
|
19
30
|
stripInternals?: boolean;
|
|
20
31
|
overlays?: DomainOverlayConfig;
|
|
32
|
+
/**
|
|
33
|
+
* Additive read-only normalizations: each entry appends a canonical alias field to
|
|
34
|
+
* every kind that maps to a source field via `from`, reusing the source field's
|
|
35
|
+
* projected `tsType` and `readExpr`. No setter is emitted for alias fields.
|
|
36
|
+
*/
|
|
37
|
+
normalizations?: Record<string, NormalizationConfig>;
|
|
21
38
|
}
|
|
22
39
|
export declare function generateDomainCode(descriptors: ZodTypeDescriptor[], options?: DomainGenerationOptions): string;
|
|
23
40
|
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/emitters/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EAGlB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAgC,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAcvF,MAAM,WAAW,uBAAuB;IACtC,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oFAAoF;IACpF,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/emitters/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EAGlB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAgC,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAcvF,MAAM,WAAW,uBAAuB;IACtC,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oFAAoF;IACpF,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACtD;AA2XD,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,GAAE,uBAA4B,GACpC,MAAM,CA2DR"}
|
package/dist/emitters/domain.js
CHANGED
|
@@ -2,7 +2,7 @@ import { applyProjectionToDescriptors } from '../projection.js';
|
|
|
2
2
|
function capitalize(name) {
|
|
3
3
|
return name.length === 0 ? name : `${name[0].toUpperCase()}${name.slice(1)}`;
|
|
4
4
|
}
|
|
5
|
-
/** TS surface type for a property's read shape.
|
|
5
|
+
/** TS surface type for a property's read shape. Cross-refs surface as editable `DomainRef` objects. */
|
|
6
6
|
function domainTsType(expression, ctx) {
|
|
7
7
|
switch (expression.kind) {
|
|
8
8
|
case 'primitive':
|
|
@@ -15,7 +15,7 @@ function domainTsType(expression, ctx) {
|
|
|
15
15
|
? `${expression.typeName}Domain`
|
|
16
16
|
: ctx.datatypePrimitive(expression.typeName);
|
|
17
17
|
case 'crossReference':
|
|
18
|
-
return '
|
|
18
|
+
return 'DomainRef';
|
|
19
19
|
case 'array':
|
|
20
20
|
return `${domainTsType(expression.element, ctx)}[]`;
|
|
21
21
|
case 'union': {
|
|
@@ -33,7 +33,12 @@ function domainReadExpr(expression, access, ctx) {
|
|
|
33
33
|
case 'literal':
|
|
34
34
|
return access;
|
|
35
35
|
case 'crossReference':
|
|
36
|
-
|
|
36
|
+
// Normalise to a plain DomainRef: strip the Langium-runtime `ref` / `$error` properties
|
|
37
|
+
// that a live Reference object carries (they hold circular AstNode pointers and must NOT
|
|
38
|
+
// reach the domain surface or JSON.stringify will throw "Converting circular structure").
|
|
39
|
+
// A pre-normalised DomainRef ({$refText}) passes through unchanged because accessing
|
|
40
|
+
// .$refText on it is safe and the result is the same plain object shape.
|
|
41
|
+
return `${access} ? { $refText: ${access}.$refText } : undefined`;
|
|
37
42
|
case 'reference':
|
|
38
43
|
// Datatype-rule / keyword-enum references are primitives on the AST — read directly.
|
|
39
44
|
return ctx.richTypeNames.has(expression.typeName)
|
|
@@ -49,6 +54,28 @@ function domainReadExpr(expression, access, ctx) {
|
|
|
49
54
|
return domainReadExpr(expression.inner, access, ctx);
|
|
50
55
|
}
|
|
51
56
|
}
|
|
57
|
+
/** Inverse-projection expression: domain value at `access` back to an AST-shaped value. */
|
|
58
|
+
function domainToAstExpr(expression, access, ctx) {
|
|
59
|
+
switch (expression.kind) {
|
|
60
|
+
case 'primitive':
|
|
61
|
+
case 'literal':
|
|
62
|
+
return access;
|
|
63
|
+
case 'crossReference':
|
|
64
|
+
// Extract only $refText — strips circular Langium runtime pointers;
|
|
65
|
+
// live Reference objects carry ref/$container cycles unsafe for JSON.
|
|
66
|
+
return `(${access} != null ? { $refText: ${access}.$refText } : ${access})`;
|
|
67
|
+
case 'reference':
|
|
68
|
+
return ctx.richTypeNames.has(expression.typeName)
|
|
69
|
+
? `${access} ? toAst${expression.typeName}(${access}) : undefined`
|
|
70
|
+
: access;
|
|
71
|
+
case 'array':
|
|
72
|
+
return `(${access} ?? []).map((item) => ${domainToAstExpr(expression.element, 'item', ctx)})`;
|
|
73
|
+
case 'union':
|
|
74
|
+
return access;
|
|
75
|
+
case 'lazy':
|
|
76
|
+
return domainToAstExpr(expression.inner, access, ctx);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
52
79
|
/** Param type for a scalar/primitive setter or an array element add. */
|
|
53
80
|
function domainWriteType(expression, ctx) {
|
|
54
81
|
switch (expression.kind) {
|
|
@@ -66,12 +93,15 @@ function domainWriteType(expression, ctx) {
|
|
|
66
93
|
return 'unknown';
|
|
67
94
|
}
|
|
68
95
|
}
|
|
69
|
-
function planObject(descriptor, overlay, ctx) {
|
|
96
|
+
function planObject(descriptor, overlay, ctx, normalizations) {
|
|
70
97
|
const renames = overlay?.renames ?? {};
|
|
71
98
|
const merges = overlay?.merges ?? [];
|
|
72
99
|
const mergedSources = new Set(merges.flatMap((merge) => merge.from));
|
|
73
100
|
const properties = descriptor.properties.filter((property) => property.name !== '$type');
|
|
74
|
-
const fields = [
|
|
101
|
+
const fields = [
|
|
102
|
+
// $type is always first — the literal discriminant for the union; no write accessor.
|
|
103
|
+
{ name: '$type', tsType: `'${descriptor.name}'`, optional: false, readExpr: 'node.$type' }
|
|
104
|
+
];
|
|
75
105
|
const accessors = [];
|
|
76
106
|
for (const property of properties) {
|
|
77
107
|
const isMergeSource = mergedSources.has(property.name);
|
|
@@ -81,7 +111,9 @@ function planObject(descriptor, overlay, ctx) {
|
|
|
81
111
|
name: domainName,
|
|
82
112
|
tsType: domainTsType(property.zodType, ctx),
|
|
83
113
|
optional: property.optional,
|
|
84
|
-
readExpr: domainReadExpr(property.zodType, `node.${property.name}`, ctx)
|
|
114
|
+
readExpr: domainReadExpr(property.zodType, `node.${property.name}`, ctx),
|
|
115
|
+
sourceName: property.name,
|
|
116
|
+
sourceExpr: property.zodType
|
|
85
117
|
});
|
|
86
118
|
}
|
|
87
119
|
// Accessors always target the SOURCE field; merge sources keep distinct accessors.
|
|
@@ -120,6 +152,31 @@ function planObject(descriptor, overlay, ctx) {
|
|
|
120
152
|
readExpr: `[${spreadExprs.join(', ')}]`
|
|
121
153
|
});
|
|
122
154
|
}
|
|
155
|
+
// Additive normalization pass: for each normalization whose `from` maps this kind,
|
|
156
|
+
// find the already-planned source field and append a read-only alias using its
|
|
157
|
+
// projected `tsType` and `readExpr` verbatim. If the source field is not present
|
|
158
|
+
// in the plan (e.g. stripped), skip silently. A name collision THROWS — never
|
|
159
|
+
// silently skip — so a config typo can't drop the canonical field.
|
|
160
|
+
if (normalizations) {
|
|
161
|
+
for (const norm of Object.values(normalizations)) {
|
|
162
|
+
const sourceFieldName = norm.from[descriptor.name];
|
|
163
|
+
if (!sourceFieldName)
|
|
164
|
+
continue;
|
|
165
|
+
const sourcePlan = fields.find((f) => f.name === sourceFieldName);
|
|
166
|
+
if (!sourcePlan)
|
|
167
|
+
continue;
|
|
168
|
+
if (fields.some((f) => f.name === norm.as)) {
|
|
169
|
+
throw new Error(`domain normalization "${norm.as}" for ${descriptor.name}: target collides with an existing field`);
|
|
170
|
+
}
|
|
171
|
+
fields.push({
|
|
172
|
+
name: norm.as,
|
|
173
|
+
tsType: sourcePlan.tsType,
|
|
174
|
+
optional: sourcePlan.optional,
|
|
175
|
+
readExpr: sourcePlan.readExpr,
|
|
176
|
+
readOnly: true
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
123
180
|
return { name: descriptor.name, fields, accessors };
|
|
124
181
|
}
|
|
125
182
|
function emitAccessors(label, sourceName, expression, ctx) {
|
|
@@ -182,6 +239,44 @@ function emitMasterDispatch(objects) {
|
|
|
182
239
|
out.push(' }', ' throw new Error(`Unknown node type: ${node.$type}`);', '}', '');
|
|
183
240
|
return out;
|
|
184
241
|
}
|
|
242
|
+
function emitToAstFn(plan, ctx) {
|
|
243
|
+
const out = [`export function toAst${plan.name}(node: any): any {`, ' return {', ` $type: '${plan.name}',`];
|
|
244
|
+
for (const field of plan.fields) {
|
|
245
|
+
if (field.name === '$type')
|
|
246
|
+
continue; // emitted as the literal head
|
|
247
|
+
if (field.readOnly)
|
|
248
|
+
continue; // additive normalization alias — intentionally not written back
|
|
249
|
+
// No AST source: either the $type seed or a MERGE-TARGET field. Merge targets are a
|
|
250
|
+
// read-only aggregation that cannot be faithfully inverted (the split point between the
|
|
251
|
+
// merged source arrays is lost), so toAst cannot restore them — a `merges` overlay is
|
|
252
|
+
// therefore incompatible with the round-trippable editable model (use `normalizations`,
|
|
253
|
+
// which are additive + reversible, instead). Read-only projection consumers may still use
|
|
254
|
+
// merges; they just don't round-trip through toAst.
|
|
255
|
+
if (!field.sourceExpr || !field.sourceName)
|
|
256
|
+
continue;
|
|
257
|
+
out.push(` ${field.sourceName}: ${domainToAstExpr(field.sourceExpr, `node.${field.name}`, ctx)},`);
|
|
258
|
+
}
|
|
259
|
+
out.push(' };', '}', '');
|
|
260
|
+
return out;
|
|
261
|
+
}
|
|
262
|
+
function emitToAstUnion(descriptor) {
|
|
263
|
+
const out = [`export function toAst${descriptor.name}(node: any): any {`, ' switch (node.$type) {'];
|
|
264
|
+
for (const member of descriptor.members) {
|
|
265
|
+
out.push(` case ${JSON.stringify(member)}: return toAst${member}(node);`);
|
|
266
|
+
}
|
|
267
|
+
out.push(' }', ` throw new Error(\`Unknown ${descriptor.name} member: \${node.$type}\`);`, '}', '');
|
|
268
|
+
return out;
|
|
269
|
+
}
|
|
270
|
+
function emitToAstMaster(objects) {
|
|
271
|
+
if (objects.length === 0)
|
|
272
|
+
return [];
|
|
273
|
+
const out = ['export function toAst(node: any): any {', ' switch (node.$type) {'];
|
|
274
|
+
for (const object of objects) {
|
|
275
|
+
out.push(` case ${JSON.stringify(object.name)}: return toAst${object.name}(node);`);
|
|
276
|
+
}
|
|
277
|
+
out.push(' }', ' throw new Error(`Unknown node type: ${node.$type}`);', '}', '');
|
|
278
|
+
return out;
|
|
279
|
+
}
|
|
185
280
|
function emitUnion(descriptor) {
|
|
186
281
|
const alias = `export type ${descriptor.name}Domain = ${descriptor.members
|
|
187
282
|
.map((member) => `${member}Domain`)
|
|
@@ -251,19 +346,25 @@ export function generateDomainCode(descriptors, options = {}) {
|
|
|
251
346
|
};
|
|
252
347
|
const lines = [
|
|
253
348
|
'// @ts-nocheck — generated domain surface; edit the grammar / domain-surfaces.json to regenerate',
|
|
349
|
+
'',
|
|
350
|
+
'/** Editable cross-reference: the runtime ref shape. Resolution stays derived/external. */',
|
|
351
|
+
'export interface DomainRef { $refText: string }',
|
|
254
352
|
''
|
|
255
353
|
];
|
|
256
354
|
const overlayTypes = options.overlays?.types ?? {};
|
|
257
355
|
for (const object of objects) {
|
|
258
|
-
const plan = planObject(object, overlayTypes[object.name], ctx);
|
|
356
|
+
const plan = planObject(object, overlayTypes[object.name], ctx, options.normalizations);
|
|
259
357
|
lines.push(...emitInterface(plan));
|
|
260
358
|
lines.push(...emitReadFn(plan));
|
|
359
|
+
lines.push(...emitToAstFn(plan, ctx));
|
|
261
360
|
lines.push(...emitWriteAccessors(plan, ctx));
|
|
262
361
|
}
|
|
263
362
|
for (const union of unions) {
|
|
264
363
|
lines.push(...emitUnion(union));
|
|
364
|
+
lines.push(...emitToAstUnion(union));
|
|
265
365
|
}
|
|
266
366
|
lines.push(...emitMasterDispatch(objects));
|
|
367
|
+
lines.push(...emitToAstMaster(objects));
|
|
267
368
|
return `${lines.join('\n').trim()}\n`;
|
|
268
369
|
}
|
|
269
370
|
//# sourceMappingURL=domain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/emitters/domain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/emitters/domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ZodGeneratorConfig } from './config.js';
|
|
2
|
+
/** User-facing config file shape (langium-zod.config.js / .ts) */
|
|
3
|
+
export interface LangiumZodConfig extends Omit<ZodGeneratorConfig, 'grammar' | 'services' | 'astTypes'> {
|
|
4
|
+
/**
|
|
5
|
+
* Path to `langium-config.json`. Defaults to `langium-config.json` in cwd.
|
|
6
|
+
* Only used when picked up via the CLI; programmatic API ignores it.
|
|
7
|
+
*/
|
|
8
|
+
langiumConfig?: string;
|
|
9
|
+
/** Explicit output path. Overrides derived path from langium-config.json `out` field. */
|
|
10
|
+
outputPath?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Returns the subset of `requested` names that are not present in
|
|
14
|
+
* `availableTypeNames`.
|
|
15
|
+
*
|
|
16
|
+
* Used to surface warnings when the user's `--include` or `--exclude` list
|
|
17
|
+
* references type names that do not exist in the parsed grammar, helping catch
|
|
18
|
+
* typos before generation runs.
|
|
19
|
+
*
|
|
20
|
+
* @param requested - The type names requested by the user (include or exclude
|
|
21
|
+
* list). Returns an empty array immediately when this is `undefined` or empty.
|
|
22
|
+
* @param availableTypeNames - All type names present in the parsed Langium grammar
|
|
23
|
+
* (both interface types and union/datatype rule types).
|
|
24
|
+
* @returns An array of names from `requested` that are absent from
|
|
25
|
+
* `availableTypeNames`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getUnknownFilterNames(requested: string[] | undefined, availableTypeNames: string[]): string[];
|
|
28
|
+
/**
|
|
29
|
+
* Options accepted by the programmatic {@link generate} function.
|
|
30
|
+
*
|
|
31
|
+
* Allows the core generation logic to be invoked directly from other tools or
|
|
32
|
+
* scripts without going through the CLI argument parser.
|
|
33
|
+
*/
|
|
34
|
+
export interface GenerateOptions {
|
|
35
|
+
/** Absolute path to langium-config.json */
|
|
36
|
+
langiumConfigPath: string;
|
|
37
|
+
/** Merged generator config (from user's langium-zod.config.js + CLI flags) */
|
|
38
|
+
config?: LangiumZodConfig;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Programmatic entry point for the `langium-zod generate` command.
|
|
42
|
+
*
|
|
43
|
+
* Loads `langium-config.json` from `opts.langiumConfigPath`, resolves the grammar
|
|
44
|
+
* file path, parses the grammar with Langium services (including eager import
|
|
45
|
+
* loading so cross-file references link correctly), then calls
|
|
46
|
+
* {@link generateZodSchemas} with the merged configuration. Prints a success
|
|
47
|
+
* message to stdout when generation completes.
|
|
48
|
+
*
|
|
49
|
+
* @param opts - {@link GenerateOptions} specifying the langium config path and
|
|
50
|
+
* optional pre-merged generator config.
|
|
51
|
+
* @throws `Error` when the langium-config.json or grammar file cannot be found, or
|
|
52
|
+
* when the config defines no languages.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* import { generate } from 'langium-zod';
|
|
57
|
+
* import { resolve } from 'node:path';
|
|
58
|
+
*
|
|
59
|
+
* await generate({
|
|
60
|
+
* langiumConfigPath: resolve(process.cwd(), 'langium-config.json'),
|
|
61
|
+
* config: {
|
|
62
|
+
* outputPath: 'src/generated/zod-schemas.ts',
|
|
63
|
+
* stripInternals: true,
|
|
64
|
+
* },
|
|
65
|
+
* });
|
|
66
|
+
* // Prints: ✓ Generated Zod schemas → src/generated/zod-schemas.ts
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function generate(opts: GenerateOptions): Promise<void>;
|
|
70
|
+
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOtD,kEAAkE;AAClE,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAC5C,kBAAkB,EAClB,SAAS,GAAG,UAAU,GAAG,UAAU,CACpC;IACC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AASD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAC/B,kBAAkB,EAAE,MAAM,EAAE,GAC3B,MAAM,EAAE,CAOV;AAiDD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6GnE"}
|
package/dist/generate.js
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
/**
|
|
3
|
+
* Programmatic generation core for langium-zod.
|
|
4
|
+
*
|
|
5
|
+
* This module holds the {@link generate} entry point and the configuration/types
|
|
6
|
+
* it needs. It deliberately contains **no** `#!` shebang and no `process.argv`
|
|
7
|
+
* parsing, so that re-exporting `generate` from the package's main entry
|
|
8
|
+
* (`index.ts`) does not drag a shebang-bearing module into a consumer's bundle
|
|
9
|
+
* graph. The thin CLI wrapper (`cli.ts`) imports from here.
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
12
|
+
import { dirname, join, resolve } from 'node:path';
|
|
13
|
+
import { URI } from 'langium';
|
|
14
|
+
import { createLangiumGrammarServices, resolveImportUri } from 'langium/grammar';
|
|
15
|
+
import { NodeFileSystem } from 'langium/node';
|
|
16
|
+
import { generateZodSchemas, generateDomainSchemas } from './api.js';
|
|
17
|
+
import { resolveAstTypesPath } from './conformance.js';
|
|
18
|
+
/**
|
|
19
|
+
* Returns the subset of `requested` names that are not present in
|
|
20
|
+
* `availableTypeNames`.
|
|
21
|
+
*
|
|
22
|
+
* Used to surface warnings when the user's `--include` or `--exclude` list
|
|
23
|
+
* references type names that do not exist in the parsed grammar, helping catch
|
|
24
|
+
* typos before generation runs.
|
|
25
|
+
*
|
|
26
|
+
* @param requested - The type names requested by the user (include or exclude
|
|
27
|
+
* list). Returns an empty array immediately when this is `undefined` or empty.
|
|
28
|
+
* @param availableTypeNames - All type names present in the parsed Langium grammar
|
|
29
|
+
* (both interface types and union/datatype rule types).
|
|
30
|
+
* @returns An array of names from `requested` that are absent from
|
|
31
|
+
* `availableTypeNames`.
|
|
32
|
+
*/
|
|
33
|
+
export function getUnknownFilterNames(requested, availableTypeNames) {
|
|
34
|
+
if (!requested || requested.length === 0) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
const available = new Set(availableTypeNames);
|
|
38
|
+
return requested.filter((name) => !available.has(name));
|
|
39
|
+
}
|
|
40
|
+
function warnUnknownFilterNames(filterName, requested, availableTypeNames) {
|
|
41
|
+
const unknown = getUnknownFilterNames(requested, availableTypeNames);
|
|
42
|
+
if (unknown.length === 0) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const availableList = availableTypeNames.length > 0 ? availableTypeNames.join(', ') : '(none)';
|
|
46
|
+
console.warn(`Warning: Unknown ${filterName} type name(s): ${unknown.join(', ')}. Available types: ${availableList}`);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Recursively load imported grammar files so that DocumentBuilder can link
|
|
50
|
+
* cross-file references correctly (mirrors langium-cli's eagerLoad strategy).
|
|
51
|
+
*/
|
|
52
|
+
async function eagerLoad(document, documents, visited = new Set()) {
|
|
53
|
+
const key = document.uri.toString();
|
|
54
|
+
if (visited.has(key))
|
|
55
|
+
return;
|
|
56
|
+
visited.add(key);
|
|
57
|
+
const grammar = document.parseResult?.value;
|
|
58
|
+
if (!grammar)
|
|
59
|
+
return;
|
|
60
|
+
// Grammar.imports is an array of GrammarImport nodes; resolveImportUri handles the URI
|
|
61
|
+
const imports = grammar.imports ?? [];
|
|
62
|
+
for (const imp of imports) {
|
|
63
|
+
const importUri = resolveImportUri(imp);
|
|
64
|
+
if (importUri) {
|
|
65
|
+
const importedDoc = await documents.getOrCreateDocument(importUri);
|
|
66
|
+
await eagerLoad(importedDoc, documents, visited);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Programmatic entry point for the `langium-zod generate` command.
|
|
72
|
+
*
|
|
73
|
+
* Loads `langium-config.json` from `opts.langiumConfigPath`, resolves the grammar
|
|
74
|
+
* file path, parses the grammar with Langium services (including eager import
|
|
75
|
+
* loading so cross-file references link correctly), then calls
|
|
76
|
+
* {@link generateZodSchemas} with the merged configuration. Prints a success
|
|
77
|
+
* message to stdout when generation completes.
|
|
78
|
+
*
|
|
79
|
+
* @param opts - {@link GenerateOptions} specifying the langium config path and
|
|
80
|
+
* optional pre-merged generator config.
|
|
81
|
+
* @throws `Error` when the langium-config.json or grammar file cannot be found, or
|
|
82
|
+
* when the config defines no languages.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* import { generate } from 'langium-zod';
|
|
87
|
+
* import { resolve } from 'node:path';
|
|
88
|
+
*
|
|
89
|
+
* await generate({
|
|
90
|
+
* langiumConfigPath: resolve(process.cwd(), 'langium-config.json'),
|
|
91
|
+
* config: {
|
|
92
|
+
* outputPath: 'src/generated/zod-schemas.ts',
|
|
93
|
+
* stripInternals: true,
|
|
94
|
+
* },
|
|
95
|
+
* });
|
|
96
|
+
* // Prints: ✓ Generated Zod schemas → src/generated/zod-schemas.ts
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export async function generate(opts) {
|
|
100
|
+
const { langiumConfigPath } = opts;
|
|
101
|
+
const userConfig = opts.config ?? {};
|
|
102
|
+
// ── 1. Load langium-config.json ─────────────────────────────────────────
|
|
103
|
+
if (!existsSync(langiumConfigPath)) {
|
|
104
|
+
throw new Error(`langium-config.json not found: ${langiumConfigPath}`);
|
|
105
|
+
}
|
|
106
|
+
const langiumConfig = JSON.parse(readFileSync(langiumConfigPath, 'utf8'));
|
|
107
|
+
const configDir = dirname(langiumConfigPath);
|
|
108
|
+
const languages = langiumConfig.languages;
|
|
109
|
+
if (!languages || languages.length === 0) {
|
|
110
|
+
throw new Error('No languages defined in langium-config.json');
|
|
111
|
+
}
|
|
112
|
+
const grammarRelPath = languages[0].grammar;
|
|
113
|
+
const grammarAbsPath = resolve(configDir, grammarRelPath);
|
|
114
|
+
if (!existsSync(grammarAbsPath)) {
|
|
115
|
+
throw new Error(`Grammar file not found: ${grammarAbsPath}`);
|
|
116
|
+
}
|
|
117
|
+
// ── 2. Resolve output path ───────────────────────────────────────────────
|
|
118
|
+
const outDir = langiumConfig.out
|
|
119
|
+
? resolve(configDir, langiumConfig.out)
|
|
120
|
+
: resolve(configDir, 'src/generated');
|
|
121
|
+
const outputPath = userConfig.outputPath ?? join(outDir, 'zod-schemas.ts');
|
|
122
|
+
const conformanceConfig = userConfig.conformance;
|
|
123
|
+
if (conformanceConfig) {
|
|
124
|
+
const resolvedAstTypesPath = conformanceConfig.astTypesPath
|
|
125
|
+
? resolve(configDir, conformanceConfig.astTypesPath)
|
|
126
|
+
: langiumConfig.astTypes
|
|
127
|
+
? resolve(configDir, langiumConfig.astTypes)
|
|
128
|
+
: resolveAstTypesPath(configDir, outDir);
|
|
129
|
+
if (!existsSync(resolvedAstTypesPath)) {
|
|
130
|
+
throw new Error(`Unable to resolve ast types path for conformance: ${resolvedAstTypesPath}`);
|
|
131
|
+
}
|
|
132
|
+
userConfig.conformance = {
|
|
133
|
+
astTypesPath: resolvedAstTypesPath,
|
|
134
|
+
outputPath: conformanceConfig.outputPath
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
// ── 3. Parse grammar using Langium services ──────────────────────────────
|
|
138
|
+
const { shared, grammar: grammarServices } = createLangiumGrammarServices(NodeFileSystem);
|
|
139
|
+
void grammarServices; // used only for type-checking if needed later
|
|
140
|
+
const langiumDocuments = shared.workspace.LangiumDocuments;
|
|
141
|
+
const documentBuilder = shared.workspace.DocumentBuilder;
|
|
142
|
+
const grammarUri = URI.file(grammarAbsPath);
|
|
143
|
+
const entryDocument = await langiumDocuments.getOrCreateDocument(grammarUri);
|
|
144
|
+
// Recursively load imported files so references resolve correctly
|
|
145
|
+
await eagerLoad(entryDocument, langiumDocuments);
|
|
146
|
+
// Build (parse + link) all loaded documents
|
|
147
|
+
await documentBuilder.build(langiumDocuments.all.toArray(), {
|
|
148
|
+
validation: false
|
|
149
|
+
});
|
|
150
|
+
const grammar = entryDocument.parseResult.value;
|
|
151
|
+
const availableTypeNames = [
|
|
152
|
+
...(grammar.interfaces ?? []).map((entry) => entry.name),
|
|
153
|
+
...(grammar.types ?? []).map((entry) => entry.name)
|
|
154
|
+
]
|
|
155
|
+
.filter((name) => typeof name === 'string')
|
|
156
|
+
.sort((left, right) => left.localeCompare(right));
|
|
157
|
+
warnUnknownFilterNames('include', userConfig.include, availableTypeNames);
|
|
158
|
+
warnUnknownFilterNames('exclude', userConfig.exclude, availableTypeNames);
|
|
159
|
+
// ── 4. Generate schemas ──────────────────────────────────────────────────
|
|
160
|
+
const { langiumConfig: _ignored, outputPath: _op, emitDomain: _emitDomain, domainOutputPath: _domainOutputPath, domainOnly: _domainOnly, ...restConfig } = userConfig;
|
|
161
|
+
if (!userConfig.domainOnly) {
|
|
162
|
+
generateZodSchemas({
|
|
163
|
+
grammar,
|
|
164
|
+
outputPath,
|
|
165
|
+
...restConfig
|
|
166
|
+
});
|
|
167
|
+
console.log(`✓ Generated Zod schemas → ${outputPath}`);
|
|
168
|
+
}
|
|
169
|
+
if (userConfig.emitDomain || userConfig.domainOnly) {
|
|
170
|
+
const domainOutputPath = userConfig.domainOutputPath ?? join(outDir, 'domain.ts');
|
|
171
|
+
generateDomainSchemas({
|
|
172
|
+
grammar,
|
|
173
|
+
domainOutputPath,
|
|
174
|
+
stripInternals: restConfig.stripInternals,
|
|
175
|
+
projection: restConfig.projection,
|
|
176
|
+
domainOverlays: restConfig.domainOverlays,
|
|
177
|
+
include: restConfig.include,
|
|
178
|
+
exclude: restConfig.exclude
|
|
179
|
+
});
|
|
180
|
+
console.log(`✓ Generated domain surface → ${domainOutputPath}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -28,8 +28,8 @@ export { ZodGeneratorError } from './errors.js';
|
|
|
28
28
|
export { extractTypeDescriptors } from './extractor.js';
|
|
29
29
|
export { generateZodCode } from './generator.js';
|
|
30
30
|
export { detectRecursiveTypes } from './recursion-detector.js';
|
|
31
|
-
export { generate } from './
|
|
32
|
-
export type { GenerateOptions, LangiumZodConfig } from './
|
|
31
|
+
export { generate } from './generate.js';
|
|
32
|
+
export type { GenerateOptions, LangiumZodConfig } from './generate.js';
|
|
33
33
|
export type { AstTypesLike, InterfaceTypeLike, PropertyLike, UnionTypeLike, ZodPropertyDescriptor, ZodTypeDescriptor, ZodTypeExpression } from './types.js';
|
|
34
34
|
export { DefaultZodSchemaGenerator, ZodSchemaGeneratorModule } from './di.js';
|
|
35
35
|
export type { ZodSchemaGenerator, ZodSchemaGeneratorServices } from './di.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -27,7 +27,7 @@ export { ZodGeneratorError } from './errors.js';
|
|
|
27
27
|
export { extractTypeDescriptors } from './extractor.js';
|
|
28
28
|
export { generateZodCode } from './generator.js';
|
|
29
29
|
export { detectRecursiveTypes } from './recursion-detector.js';
|
|
30
|
-
export { generate } from './
|
|
30
|
+
export { generate } from './generate.js';
|
|
31
31
|
export { DefaultZodSchemaGenerator, ZodSchemaGeneratorModule } from './di.js';
|
|
32
32
|
export { zRef } from './ref-utils.js';
|
|
33
33
|
export { generateDomainCode } from './emitters/domain.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAWzC,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAE9E,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/projection.d.ts
CHANGED
|
@@ -6,6 +6,11 @@ export interface ProjectionConfig {
|
|
|
6
6
|
types?: Record<string, {
|
|
7
7
|
fields?: string[];
|
|
8
8
|
}>;
|
|
9
|
+
/** Optional normalizations forwarded to the domain emitter; see `NormalizationConfig`. */
|
|
10
|
+
normalizations?: Record<string, {
|
|
11
|
+
as: string;
|
|
12
|
+
from: Record<string, string>;
|
|
13
|
+
}>;
|
|
9
14
|
}
|
|
10
15
|
export interface ProjectionTransformOptions {
|
|
11
16
|
projection?: ProjectionConfig;
|
package/dist/projection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC/
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC9C,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,wBAAwB,2FAM3B,CAAC;AAwBX,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAgDtE;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,CAI7E;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,EAAE,CAazF;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,0BAA0B,GAClC,iBAAiB,EAAE,CA0CrB"}
|
package/dist/projection.js
CHANGED
|
@@ -44,9 +44,25 @@ export function parseProjectionConfig(value) {
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
let normalizations;
|
|
48
|
+
if (source.normalizations && typeof source.normalizations === 'object' && !Array.isArray(source.normalizations)) {
|
|
49
|
+
normalizations = {};
|
|
50
|
+
for (const [id, rule] of Object.entries(source.normalizations)) {
|
|
51
|
+
if (!rule || typeof rule !== 'object' || typeof rule.as !== 'string' || !rule.from || typeof rule.from !== 'object' || Array.isArray(rule.from)) {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
const from = {};
|
|
55
|
+
for (const [kind, field] of Object.entries(rule.from)) {
|
|
56
|
+
if (typeof field === 'string')
|
|
57
|
+
from[kind] = field;
|
|
58
|
+
}
|
|
59
|
+
normalizations[id] = { as: rule.as, from };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
47
62
|
return {
|
|
48
63
|
defaults,
|
|
49
|
-
types
|
|
64
|
+
types,
|
|
65
|
+
normalizations
|
|
50
66
|
};
|
|
51
67
|
}
|
|
52
68
|
export function loadProjectionConfig(projectionPath) {
|
package/dist/projection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
|