langium-zod 0.6.0 → 0.8.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 +8 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +33 -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 +35 -172
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +6 -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/emitters/namespace-ops.d.ts +3 -0
- package/dist/emitters/namespace-ops.d.ts.map +1 -0
- package/dist/emitters/namespace-ops.js +158 -0
- package/dist/emitters/namespace-ops.js.map +1 -0
- package/dist/generate.d.ts +70 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +193 -0
- package/dist/generate.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- 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
CHANGED
|
@@ -124,4 +124,12 @@ export declare function generateZodSchemas(config: ZodGeneratorConfig): string;
|
|
|
124
124
|
* `config.domainOutputPath` when set.
|
|
125
125
|
*/
|
|
126
126
|
export declare function generateDomainSchemas(config: ZodGeneratorConfig): string;
|
|
127
|
+
/**
|
|
128
|
+
* Programmatic entry point for the namespace-ops target. Runs the same extract pipeline
|
|
129
|
+
* as {@link generateZodSchemas}, then emits the namespace-ops surface (re-exported AST
|
|
130
|
+
* types + per-type namespace-merged op functions for arrays, single nodes, and cross-refs).
|
|
131
|
+
* Writes to `config.namespaceOpsOutputPath` when set.
|
|
132
|
+
*/
|
|
133
|
+
export declare function generateNamespaceOpsSchemas(config: ZodGeneratorConfig): string;
|
|
134
|
+
export { generateNamespaceOps } from './emitters/namespace-ops.js';
|
|
127
135
|
//# sourceMappingURL=api.d.ts.map
|
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;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAWtD,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;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAsB9E;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/api.js
CHANGED
|
@@ -7,6 +7,7 @@ import { extractTypeDescriptors } from './extractor.js';
|
|
|
7
7
|
import { generateZodCode } from './generator.js';
|
|
8
8
|
import { applyProjectionToDescriptors, resolveEffectiveStripFields } from './projection.js';
|
|
9
9
|
import { generateDomainCode } from './emitters/domain.js';
|
|
10
|
+
import { generateNamespaceOps } from './emitters/namespace-ops.js';
|
|
10
11
|
import { detectRecursiveTypes } from './recursion-detector.js';
|
|
11
12
|
function resolveAstTypes(astTypes) {
|
|
12
13
|
return {
|
|
@@ -247,7 +248,9 @@ export function generateDomainSchemas(config) {
|
|
|
247
248
|
const source = generateDomainCode(descriptors, {
|
|
248
249
|
projection: config.projection,
|
|
249
250
|
stripInternals: config.stripInternals,
|
|
250
|
-
overlays: config.domainOverlays
|
|
251
|
+
overlays: config.domainOverlays,
|
|
252
|
+
// Forward config-file normalizations to the emitter (additive extends/members aliases).
|
|
253
|
+
normalizations: config.projection?.normalizations
|
|
251
254
|
});
|
|
252
255
|
if (config.domainOutputPath) {
|
|
253
256
|
mkdirSync(dirname(config.domainOutputPath), { recursive: true });
|
|
@@ -255,4 +258,33 @@ export function generateDomainSchemas(config) {
|
|
|
255
258
|
}
|
|
256
259
|
return source;
|
|
257
260
|
}
|
|
261
|
+
/**
|
|
262
|
+
* Programmatic entry point for the namespace-ops target. Runs the same extract pipeline
|
|
263
|
+
* as {@link generateZodSchemas}, then emits the namespace-ops surface (re-exported AST
|
|
264
|
+
* types + per-type namespace-merged op functions for arrays, single nodes, and cross-refs).
|
|
265
|
+
* Writes to `config.namespaceOpsOutputPath` when set.
|
|
266
|
+
*/
|
|
267
|
+
export function generateNamespaceOpsSchemas(config) {
|
|
268
|
+
let rawAstTypes;
|
|
269
|
+
if (config.astTypes) {
|
|
270
|
+
rawAstTypes = config.astTypes;
|
|
271
|
+
}
|
|
272
|
+
else if (config.grammar) {
|
|
273
|
+
rawAstTypes = collectAst(config.grammar);
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
throw new ZodGeneratorError('Missing grammar or astTypes in ZodGeneratorConfig', {
|
|
277
|
+
suggestion: "Provide astTypes from Langium's collectAst() or pass a grammar object"
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
const astTypes = resolveAstTypes(rawAstTypes);
|
|
281
|
+
const descriptors = buildDescriptorPipeline(astTypes, config);
|
|
282
|
+
const source = generateNamespaceOps(descriptors);
|
|
283
|
+
if (config.namespaceOpsOutputPath) {
|
|
284
|
+
mkdirSync(dirname(config.namespaceOpsOutputPath), { recursive: true });
|
|
285
|
+
writeFileSync(config.namespaceOpsOutputPath, source, 'utf8');
|
|
286
|
+
}
|
|
287
|
+
return source;
|
|
288
|
+
}
|
|
289
|
+
export { generateNamespaceOps } from './emitters/namespace-ops.js';
|
|
258
290
|
//# sourceMappingURL=api.js.map
|
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;AAmDD;;;;;;;;GAQG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA8H1C"}
|
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,7 +97,10 @@ 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
|
|
102
|
+
--namespace-ops Also emit the namespace-ops surface (domain-ops.ts with merged namespaces)
|
|
103
|
+
--namespace-ops-out <path> Output path for the namespace-ops surface
|
|
124
104
|
--help Show this help message
|
|
125
105
|
|
|
126
106
|
CONFIGURATION
|
|
@@ -138,139 +118,6 @@ CONFIGURATION
|
|
|
138
118
|
};
|
|
139
119
|
`);
|
|
140
120
|
}
|
|
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
121
|
// ────────────────────────────────────────────────────────────────────────────
|
|
275
122
|
// CLI entry point
|
|
276
123
|
// ────────────────────────────────────────────────────────────────────────────
|
|
@@ -280,8 +127,8 @@ export async function generate(opts) {
|
|
|
280
127
|
* Parses `process.argv`, resolves `langium-config.json`, loads an optional
|
|
281
128
|
* `langium-zod.config.js` from the same directory, merges all CLI flag overrides
|
|
282
129
|
* (--out, --include, --exclude, --projection, --strip-internals, --conformance,
|
|
283
|
-
* --cross-ref-validation), then delegates to
|
|
284
|
-
* with code 1 on error.
|
|
130
|
+
* --cross-ref-validation, --domain, --domain-only), then delegates to
|
|
131
|
+
* {@link generate}. Exits the process with code 1 on error.
|
|
285
132
|
*/
|
|
286
133
|
export async function main() {
|
|
287
134
|
const args = process.argv.slice(2);
|
|
@@ -308,8 +155,11 @@ export async function main() {
|
|
|
308
155
|
const stripInternalsEnabled = args.includes('--strip-internals');
|
|
309
156
|
const conformanceEnabled = args.includes('--conformance');
|
|
310
157
|
const crossRefValidationEnabled = args.includes('--cross-ref-validation');
|
|
311
|
-
const
|
|
158
|
+
const domainOnlyEnabled = args.includes('--domain-only');
|
|
159
|
+
const domainEnabled = args.includes('--domain') || domainOnlyEnabled;
|
|
312
160
|
const domainOutFlagValue = getArgValue(args, '--domain-out');
|
|
161
|
+
const namespaceOpsEnabled = args.includes('--namespace-ops');
|
|
162
|
+
const namespaceOpsOutFlagValue = getArgValue(args, '--namespace-ops-out');
|
|
313
163
|
// ── Locate langium-config.json ───────────────────────────────────────────
|
|
314
164
|
const configFileName = configFlagValue ?? 'langium-config.json';
|
|
315
165
|
const langiumConfigPath = resolve(process.cwd(), configFileName);
|
|
@@ -367,11 +217,24 @@ export async function main() {
|
|
|
367
217
|
userConfig = {
|
|
368
218
|
...userConfig,
|
|
369
219
|
emitDomain: true,
|
|
220
|
+
// --domain-only emits the domain surface WITHOUT regenerating Zod schemas,
|
|
221
|
+
// so a domain generate can use its own (full) projection without clobbering
|
|
222
|
+
// a separately-projected zod-schemas.ts.
|
|
223
|
+
domainOnly: domainOnlyEnabled,
|
|
370
224
|
domainOutputPath: domainOutFlagValue
|
|
371
225
|
? resolve(process.cwd(), domainOutFlagValue)
|
|
372
226
|
: userConfig.domainOutputPath
|
|
373
227
|
};
|
|
374
228
|
}
|
|
229
|
+
if (namespaceOpsEnabled) {
|
|
230
|
+
userConfig = {
|
|
231
|
+
...userConfig,
|
|
232
|
+
namespaceOps: true,
|
|
233
|
+
namespaceOpsOutputPath: namespaceOpsOutFlagValue
|
|
234
|
+
? resolve(process.cwd(), namespaceOpsOutFlagValue)
|
|
235
|
+
: userConfig.namespaceOpsOutputPath
|
|
236
|
+
};
|
|
237
|
+
}
|
|
375
238
|
try {
|
|
376
239
|
await generate({ langiumConfigPath, config: userConfig });
|
|
377
240
|
}
|
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,10 +166,16 @@ 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. */
|
|
172
174
|
domainOverlays?: DomainOverlayConfig;
|
|
175
|
+
/** When true (CLI `--namespace-ops`), also emit the namespace-ops surface alongside other targets. */
|
|
176
|
+
namespaceOps?: boolean;
|
|
177
|
+
/** Output path for the generated namespace-ops surface (`domain-ops.ts`). */
|
|
178
|
+
namespaceOpsOutputPath?: string;
|
|
173
179
|
}
|
|
174
180
|
/**
|
|
175
181
|
* Default output path used when no explicit `outputPath` is provided and the
|
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;
|
|
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;IACrC,sGAAsG;IACtG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;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":"AAsLA;;;;;;;;;;;;;;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"}
|