@distilled.cloud/core 1.0.0-rc.1 → 1.0.0-rc.3
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/lib/codegen/cli.d.ts +48 -0
- package/lib/codegen/cli.d.ts.map +1 -1
- package/lib/codegen/cli.js +50 -10
- package/lib/codegen/cli.js.map +1 -1
- package/lib/codegen/generator.d.ts.map +1 -1
- package/lib/codegen/generator.js +64 -11
- package/lib/codegen/generator.js.map +1 -1
- package/package.json +1 -1
- package/src/codegen/cli.ts +110 -16
- package/src/codegen/generator.ts +68 -13
package/lib/codegen/cli.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import * as FileSystem from "effect/FileSystem";
|
|
3
|
+
import * as Path from "effect/Path";
|
|
1
4
|
import { type SdkSpec } from "./generator.ts";
|
|
2
5
|
export interface GeneratorCliOptions {
|
|
3
6
|
/** Command description shown in --help. */
|
|
@@ -10,6 +13,51 @@ export interface GeneratorCliOptions {
|
|
|
10
13
|
readonly outDir?: string;
|
|
11
14
|
/** Model files to skip (e.g. a shared protocols model). */
|
|
12
15
|
readonly excludeModel?: (file: string) => boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Where the models are, when they aren't a flat directory of `<resource>.json`.
|
|
18
|
+
* AWS vendors Amazon's own repo, whose models sit at
|
|
19
|
+
* `models/<service>/service/<version>/<service>-<version>.json`.
|
|
20
|
+
*
|
|
21
|
+
* Returns the model files to compile; manual specs are merged in after,
|
|
22
|
+
* as usual.
|
|
23
|
+
*/
|
|
24
|
+
readonly discoverModels?: (ctx: {
|
|
25
|
+
readonly smithyDir: string;
|
|
26
|
+
}) => Effect.Effect<ReadonlyArray<{
|
|
27
|
+
readonly file: string;
|
|
28
|
+
readonly dir: string;
|
|
29
|
+
}>, never, FileSystem.FileSystem | Path.Path>;
|
|
30
|
+
/**
|
|
31
|
+
* Side effects to run before generating — e.g. AWS copies `partitions.json`
|
|
32
|
+
* out of the smithy submodule, runtime data its endpoint resolver reads.
|
|
33
|
+
*/
|
|
34
|
+
readonly prepare?: (ctx: {
|
|
35
|
+
readonly root: string;
|
|
36
|
+
readonly outDir: string;
|
|
37
|
+
}) => Effect.Effect<void, never, FileSystem.FileSystem | Path.Path>;
|
|
38
|
+
/**
|
|
39
|
+
* The output module's name, when it isn't the model's filename. AWS names
|
|
40
|
+
* modules after the service's `aws.api#service` sdkId (`amazon-s3.json` →
|
|
41
|
+
* `s3.ts`), so the public surface reads `AWS.S3.getObject`.
|
|
42
|
+
*/
|
|
43
|
+
readonly resourceName?: (ctx: {
|
|
44
|
+
readonly model: any;
|
|
45
|
+
readonly file: string;
|
|
46
|
+
}) => string;
|
|
47
|
+
/** Barrel export name for a resource. Default: the resource name itself. */
|
|
48
|
+
readonly barrelExportName?: (resource: string) => string;
|
|
49
|
+
/**
|
|
50
|
+
* The closing pass over the output directory. Defaults to formatting;
|
|
51
|
+
* AWS lint-fixes first (see `codegen/format.ts`).
|
|
52
|
+
*/
|
|
53
|
+
readonly finalize?: (dir: string) => Effect.Effect<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Keep generating after a model fails, instead of stopping at the first.
|
|
56
|
+
* AWS compiles 430 services in one run, and one broken model shouldn't
|
|
57
|
+
* hide the state of the other 429. The run still FAILS at the end — the
|
|
58
|
+
* failures are reported together rather than swallowed.
|
|
59
|
+
*/
|
|
60
|
+
readonly continueOnModelError?: boolean;
|
|
13
61
|
/** Directory of hand-authored models merged after the generated ones. */
|
|
14
62
|
readonly manualSpecsDir?: string;
|
|
15
63
|
/** RFC-6902 patch chain root. Default `patches`; `false` disables. */
|
package/lib/codegen/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"AAcA,OAAO,EAAW,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAUpC,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE;QAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,KAAK,MAAM,CAAC,MAAM,CACjB,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,EAC9D,KAAK,EACL,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAClC,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE;QAC5B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,KAAK,MAAM,CAAC;IACb,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1E,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;CACxC;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,YAAa,mBAAmB,KAAG,IAoQ9D,CAAC"}
|
package/lib/codegen/cli.js
CHANGED
|
@@ -36,12 +36,15 @@ export const runGeneratorCli = (options) => {
|
|
|
36
36
|
yield* Console.log("⚙️ generate");
|
|
37
37
|
yield* Console.log(` Smithy: ${smithyDir}`);
|
|
38
38
|
yield* Console.log(` Output: ${outDir}`);
|
|
39
|
+
yield* options.prepare?.({ root, outDir }) ?? Effect.void;
|
|
39
40
|
// Generated models plus optional manual-specs (hand-authored models
|
|
40
41
|
// for APIs the provider's spec source doesn't cover). A manual model
|
|
41
42
|
// must not shadow a generated one.
|
|
42
|
-
const generated =
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
const generated = options.discoverModels
|
|
44
|
+
? yield* options.discoverModels({ smithyDir })
|
|
45
|
+
: (yield* fs.readDirectory(smithyDir))
|
|
46
|
+
.filter((f) => f.endsWith(".json") && !(options.excludeModel?.(f) ?? false))
|
|
47
|
+
.map((f) => ({ file: f, dir: smithyDir }));
|
|
45
48
|
const manualDir = options.manualSpecsDir
|
|
46
49
|
? path.resolve(root, options.manualSpecsDir)
|
|
47
50
|
: undefined;
|
|
@@ -58,6 +61,7 @@ export const runGeneratorCli = (options) => {
|
|
|
58
61
|
const entries = [...generated, ...manual].sort((a, b) => a.file.localeCompare(b.file));
|
|
59
62
|
yield* fs.makeDirectory(outDir, { recursive: true });
|
|
60
63
|
const written = [];
|
|
64
|
+
const failedModels = [];
|
|
61
65
|
let totalOps = 0;
|
|
62
66
|
let totalPatches = 0;
|
|
63
67
|
let staleOps = 0;
|
|
@@ -76,10 +80,13 @@ export const runGeneratorCli = (options) => {
|
|
|
76
80
|
}
|
|
77
81
|
}
|
|
78
82
|
for (const { file, dir } of entries) {
|
|
79
|
-
const
|
|
83
|
+
const model = JSON.parse(yield* fs.readFileString(path.join(dir, file)));
|
|
84
|
+
// The module's name — the model's filename unless the provider
|
|
85
|
+
// derives it from the model itself (AWS: the service's sdkId).
|
|
86
|
+
const resource = options.resourceName?.({ model, file }) ??
|
|
87
|
+
file.replace(/\.json$/, "");
|
|
80
88
|
if (config.resource && resource !== config.resource)
|
|
81
89
|
continue;
|
|
82
|
-
const model = JSON.parse(yield* fs.readFileString(path.join(dir, file)));
|
|
83
90
|
// Apply the RFC-6902 patch chain before generating. Hand-written
|
|
84
91
|
// *.manual.json patches apply after the generated ones — they
|
|
85
92
|
// usually target post-rename shape names.
|
|
@@ -114,7 +121,22 @@ export const runGeneratorCli = (options) => {
|
|
|
114
121
|
if (note)
|
|
115
122
|
yield* Console.log(` ${note}`);
|
|
116
123
|
}
|
|
117
|
-
|
|
124
|
+
// `generateService` and the provider spec are synchronous and
|
|
125
|
+
// throw; with continueOnModelError the throw is recorded and the
|
|
126
|
+
// run moves on, so one broken model doesn't hide the state of
|
|
127
|
+
// every model after it. The run still fails at the end.
|
|
128
|
+
let generated;
|
|
129
|
+
try {
|
|
130
|
+
generated = generateService(model, options.spec(model));
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
if (!options.continueOnModelError)
|
|
134
|
+
throw e;
|
|
135
|
+
failedModels.push(`${resource}: ${e instanceof Error ? e.message : String(e)}`);
|
|
136
|
+
yield* Console.error(`❌ ${resource}`);
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
const { code, operations } = generated;
|
|
118
140
|
if (operations === 0)
|
|
119
141
|
continue;
|
|
120
142
|
yield* fs.writeFileString(path.join(outDir, `${resource}.ts`), code);
|
|
@@ -140,11 +162,17 @@ export const runGeneratorCli = (options) => {
|
|
|
140
162
|
// resource without removing anything.
|
|
141
163
|
const barrelPath = path.join(outDir, "index.ts");
|
|
142
164
|
const filtered = config.resource !== "";
|
|
143
|
-
|
|
165
|
+
// Sorted, not in generation order: a provider that discovers models
|
|
166
|
+
// in some other order (AWS walks Amazon's directory tree) would
|
|
167
|
+
// otherwise reshuffle the barrel on every run.
|
|
168
|
+
let resources = [...written].sort((a, b) => `${a}.json`.localeCompare(`${b}.json`));
|
|
144
169
|
if (filtered && (yield* fs.exists(barrelPath))) {
|
|
170
|
+
// Recover the RESOURCE from each export line's path, not its name:
|
|
171
|
+
// the two differ when barrelExportName renames (AWS exports
|
|
172
|
+
// `S3` from `./s3.ts`).
|
|
145
173
|
const existing = (yield* fs.readFileString(barrelPath))
|
|
146
174
|
.split("\n")
|
|
147
|
-
.map((line) => /^export \* as
|
|
175
|
+
.map((line) => /^export \* as \S+ from "\.\/(.+)\.ts";/.exec(line)?.[1])
|
|
148
176
|
.filter((name) => name !== undefined);
|
|
149
177
|
// Ordered exactly as a full run orders it: by MODEL FILENAME, so
|
|
150
178
|
// the `.json` takes part in the collation (`ai_gateway.json` sorts
|
|
@@ -152,13 +180,25 @@ export const runGeneratorCli = (options) => {
|
|
|
152
180
|
// Otherwise a filtered run reshuffles the barrel into diff noise.
|
|
153
181
|
resources = [...new Set([...existing, ...written])].sort((a, b) => `${a}.json`.localeCompare(`${b}.json`));
|
|
154
182
|
}
|
|
155
|
-
yield* fs.writeFileString(barrelPath, barrel(`// AUTO-GENERATED by scripts/generate.ts. Do not edit.\n`, resources.map((r) => ({
|
|
156
|
-
|
|
183
|
+
yield* fs.writeFileString(barrelPath, barrel(`// AUTO-GENERATED by scripts/generate.ts. Do not edit.\n`, resources.map((r) => ({
|
|
184
|
+
name: options.barrelExportName?.(r) ?? r,
|
|
185
|
+
path: `./${r}.ts`,
|
|
186
|
+
}))));
|
|
187
|
+
yield* (options.finalize ?? formatGenerated)(outDir);
|
|
157
188
|
yield* Console.log(`\n✅ Generated ${totalOps} operations across ${written.length} resource modules` +
|
|
158
189
|
(totalPatches
|
|
159
190
|
? ` (${totalPatches} patch files applied${staleOps ? `, ${staleOps} stale op(s) skipped` : ""}).`
|
|
160
191
|
: "."));
|
|
161
192
|
yield* Console.log(` ${path.join(outDir, "index.ts")}`);
|
|
193
|
+
// Models that failed under continueOnModelError. Reported together,
|
|
194
|
+
// at the end, and the run FAILS — a generate that couldn't produce
|
|
195
|
+
// a module must not exit 0 with the failure buried in the log.
|
|
196
|
+
if (failedModels.length) {
|
|
197
|
+
yield* Console.error(`\n❌ ${failedModels.length} model(s) failed to generate:`);
|
|
198
|
+
for (const f of failedModels)
|
|
199
|
+
yield* Console.error(` ${f}`);
|
|
200
|
+
return yield* Effect.die(new Error(`${failedModels.length} model(s) failed to generate`));
|
|
201
|
+
}
|
|
162
202
|
})).pipe(Command.withDescription(options.description));
|
|
163
203
|
BunRuntime.runMain(Effect.provide(Command.run(command, { version: "1.0.0" }), BunServices.layer));
|
|
164
204
|
};
|
package/lib/codegen/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/codegen/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/codegen/generator.ts"],"names":[],"mappings":"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"}
|
package/lib/codegen/generator.js
CHANGED
|
@@ -117,8 +117,25 @@ export const generateService = (model, spec) => {
|
|
|
117
117
|
const reachable = reachableFrom(shapes, roots, shapeDeps);
|
|
118
118
|
const order = topoOrder(shapes, reachable, shapeDeps);
|
|
119
119
|
const indexOf = orderIndex(order);
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
/**
|
|
121
|
+
* Shape id → the id whose emitted body it shares.
|
|
122
|
+
*
|
|
123
|
+
* Structural aliasing (see the struct emission below) has to cascade: a
|
|
124
|
+
* parent only matches another parent if their MEMBERS render identically,
|
|
125
|
+
* and a member renders as its target's name. So every reference resolves
|
|
126
|
+
* through this map first — once `…ItemGroupRuleGroup` is aliased onto a
|
|
127
|
+
* canonical shape, the parents referencing it start rendering the same
|
|
128
|
+
* text and collapse in turn.
|
|
129
|
+
*
|
|
130
|
+
* Filled in topological order, so a canonical target is always a shape
|
|
131
|
+
* that was already emitted — a back-reference, never a forward one.
|
|
132
|
+
*/
|
|
133
|
+
const canonicalId = new Map();
|
|
134
|
+
const canon = (target) => canonicalId.get(target) ?? target;
|
|
135
|
+
const rawRef = makeSchemaRef(prelude, indexOf);
|
|
136
|
+
const rawTsRef = makeTsRef(tsPrelude);
|
|
137
|
+
const ref = (target, selfIdx) => rawRef(canon(target), selfIdx);
|
|
138
|
+
const tsRef = (target) => rawTsRef(canon(target));
|
|
122
139
|
// Direction classification for enum openness. Enum ALIASES are emitted
|
|
123
140
|
// CLOSED (exhaustively matchable on reads); request-reachable shapes
|
|
124
141
|
// re-open enum references inline (`X | (string & {})`) so consumers can
|
|
@@ -154,7 +171,8 @@ export const generateService = (model, spec) => {
|
|
|
154
171
|
* pure response/error shapes stay the plain closed alias, and so do
|
|
155
172
|
* union-arm discriminant literals.
|
|
156
173
|
*/
|
|
157
|
-
const tsRefAt = (
|
|
174
|
+
const tsRefAt = (rawTarget, ownerId) => {
|
|
175
|
+
const target = canon(rawTarget);
|
|
158
176
|
const base = tsRef(target);
|
|
159
177
|
if (!requestReachable.has(ownerId))
|
|
160
178
|
return base;
|
|
@@ -325,6 +343,13 @@ export const generateService = (model, spec) => {
|
|
|
325
343
|
}
|
|
326
344
|
// 4. Error classes from the operations' errors lists.
|
|
327
345
|
const out = [];
|
|
346
|
+
// Emitted struct body → the name that owns it, for structural aliasing.
|
|
347
|
+
// Keyed on the emitted TEXT, so two shapes collapse only when what they
|
|
348
|
+
// would emit is byte-identical — including member names, targets, docs and
|
|
349
|
+
// pipes. References are already resolved to names at this point, so a
|
|
350
|
+
// difference anywhere in the tree shows up as different text.
|
|
351
|
+
const structBodies = new Map();
|
|
352
|
+
let aliased = 0;
|
|
328
353
|
// Set when any error carries CATEGORY_TRAIT, so the header only imports
|
|
329
354
|
// the category module when something actually uses it.
|
|
330
355
|
let usesCategories = false;
|
|
@@ -438,7 +463,6 @@ export const generateService = (model, spec) => {
|
|
|
438
463
|
fields.push(...inject.interfaceLines);
|
|
439
464
|
members.push(inject.structLine);
|
|
440
465
|
}
|
|
441
|
-
out.push(interfaceDecl(name, fields));
|
|
442
466
|
const struct = members.length
|
|
443
467
|
? `S.Struct({\n${members.join("\n")}\n})`
|
|
444
468
|
: `S.Struct({})`;
|
|
@@ -456,13 +480,42 @@ export const generateService = (model, spec) => {
|
|
|
456
480
|
: []),
|
|
457
481
|
];
|
|
458
482
|
const tail = pipes.map((p) => `.pipe(${p})`).join("");
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
483
|
+
// Shapes whose emitted body is byte-identical are one shape wearing
|
|
484
|
+
// many names. The docs pipelines generate a fresh copy of every nested
|
|
485
|
+
// shape per operation, so cloudflare's zero_trust carries 374 copies of
|
|
486
|
+
// `{ group?: unknown }` — one per operation x application type x
|
|
487
|
+
// include/exclude/require — and 72% of its 16,800 structures are
|
|
488
|
+
// redundant that way.
|
|
489
|
+
//
|
|
490
|
+
// Emit the body once and alias the rest to it. The public name is kept,
|
|
491
|
+
// so nothing about the surface changes; only the duplicate bodies go.
|
|
492
|
+
// Operation I/O is excluded: those carry the operation's Http trait and
|
|
493
|
+
// must never be merged onto one another.
|
|
494
|
+
const bodyKey = `${JSON.stringify(fields)}|${struct}${tail}`;
|
|
495
|
+
const canonical = structCtx.isOpIo
|
|
496
|
+
? undefined
|
|
497
|
+
: structBodies.get(bodyKey);
|
|
498
|
+
if (canonical !== undefined) {
|
|
499
|
+
out.push(`export type ${name} = ${canonical.name};`);
|
|
500
|
+
out.push(`export const ${name} = ${canonical.name};\n`);
|
|
501
|
+
// Later shapes referencing this one now render the canonical name,
|
|
502
|
+
// which is what lets their bodies collapse too.
|
|
503
|
+
canonicalId.set(id, canonical.id);
|
|
504
|
+
aliased++;
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
if (!structCtx.isOpIo) {
|
|
508
|
+
structBodies.set(bodyKey, { id, name });
|
|
509
|
+
}
|
|
510
|
+
out.push(interfaceDecl(name, fields));
|
|
511
|
+
out.push(suspendConst({
|
|
512
|
+
name,
|
|
513
|
+
pure,
|
|
514
|
+
multiline: true,
|
|
515
|
+
annotateIdentifier: true,
|
|
516
|
+
expr: `${struct}${tail}`,
|
|
517
|
+
}));
|
|
518
|
+
}
|
|
466
519
|
}
|
|
467
520
|
else if (d.type === "list") {
|
|
468
521
|
out.push(`export type ${name} = Array<${tsRefAt(d.member.target, id)}>;`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/codegen/generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/codegen/generator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/codegen/cli.ts
CHANGED
|
@@ -37,6 +37,52 @@ export interface GeneratorCliOptions {
|
|
|
37
37
|
readonly outDir?: string;
|
|
38
38
|
/** Model files to skip (e.g. a shared protocols model). */
|
|
39
39
|
readonly excludeModel?: (file: string) => boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Where the models are, when they aren't a flat directory of `<resource>.json`.
|
|
42
|
+
* AWS vendors Amazon's own repo, whose models sit at
|
|
43
|
+
* `models/<service>/service/<version>/<service>-<version>.json`.
|
|
44
|
+
*
|
|
45
|
+
* Returns the model files to compile; manual specs are merged in after,
|
|
46
|
+
* as usual.
|
|
47
|
+
*/
|
|
48
|
+
readonly discoverModels?: (ctx: {
|
|
49
|
+
readonly smithyDir: string;
|
|
50
|
+
}) => Effect.Effect<
|
|
51
|
+
ReadonlyArray<{ readonly file: string; readonly dir: string }>,
|
|
52
|
+
never,
|
|
53
|
+
FileSystem.FileSystem | Path.Path
|
|
54
|
+
>;
|
|
55
|
+
/**
|
|
56
|
+
* Side effects to run before generating — e.g. AWS copies `partitions.json`
|
|
57
|
+
* out of the smithy submodule, runtime data its endpoint resolver reads.
|
|
58
|
+
*/
|
|
59
|
+
readonly prepare?: (ctx: {
|
|
60
|
+
readonly root: string;
|
|
61
|
+
readonly outDir: string;
|
|
62
|
+
}) => Effect.Effect<void, never, FileSystem.FileSystem | Path.Path>;
|
|
63
|
+
/**
|
|
64
|
+
* The output module's name, when it isn't the model's filename. AWS names
|
|
65
|
+
* modules after the service's `aws.api#service` sdkId (`amazon-s3.json` →
|
|
66
|
+
* `s3.ts`), so the public surface reads `AWS.S3.getObject`.
|
|
67
|
+
*/
|
|
68
|
+
readonly resourceName?: (ctx: {
|
|
69
|
+
readonly model: any;
|
|
70
|
+
readonly file: string;
|
|
71
|
+
}) => string;
|
|
72
|
+
/** Barrel export name for a resource. Default: the resource name itself. */
|
|
73
|
+
readonly barrelExportName?: (resource: string) => string;
|
|
74
|
+
/**
|
|
75
|
+
* The closing pass over the output directory. Defaults to formatting;
|
|
76
|
+
* AWS lint-fixes first (see `codegen/format.ts`).
|
|
77
|
+
*/
|
|
78
|
+
readonly finalize?: (dir: string) => Effect.Effect<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Keep generating after a model fails, instead of stopping at the first.
|
|
81
|
+
* AWS compiles 430 services in one run, and one broken model shouldn't
|
|
82
|
+
* hide the state of the other 429. The run still FAILS at the end — the
|
|
83
|
+
* failures are reported together rather than swallowed.
|
|
84
|
+
*/
|
|
85
|
+
readonly continueOnModelError?: boolean;
|
|
40
86
|
/** Directory of hand-authored models merged after the generated ones. */
|
|
41
87
|
readonly manualSpecsDir?: string;
|
|
42
88
|
/** RFC-6902 patch chain root. Default `patches`; `false` disables. */
|
|
@@ -82,14 +128,19 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
|
|
|
82
128
|
yield* Console.log(` Smithy: ${smithyDir}`);
|
|
83
129
|
yield* Console.log(` Output: ${outDir}`);
|
|
84
130
|
|
|
131
|
+
yield* options.prepare?.({ root, outDir }) ?? Effect.void;
|
|
132
|
+
|
|
85
133
|
// Generated models plus optional manual-specs (hand-authored models
|
|
86
134
|
// for APIs the provider's spec source doesn't cover). A manual model
|
|
87
135
|
// must not shadow a generated one.
|
|
88
|
-
const generated =
|
|
89
|
-
.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
136
|
+
const generated = options.discoverModels
|
|
137
|
+
? yield* options.discoverModels({ smithyDir })
|
|
138
|
+
: (yield* fs.readDirectory(smithyDir))
|
|
139
|
+
.filter(
|
|
140
|
+
(f) =>
|
|
141
|
+
f.endsWith(".json") && !(options.excludeModel?.(f) ?? false),
|
|
142
|
+
)
|
|
143
|
+
.map((f) => ({ file: f, dir: smithyDir }));
|
|
93
144
|
const manualDir = options.manualSpecsDir
|
|
94
145
|
? path.resolve(root, options.manualSpecsDir)
|
|
95
146
|
: undefined;
|
|
@@ -115,6 +166,7 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
|
|
|
115
166
|
yield* fs.makeDirectory(outDir, { recursive: true });
|
|
116
167
|
|
|
117
168
|
const written: string[] = [];
|
|
169
|
+
const failedModels: string[] = [];
|
|
118
170
|
let totalOps = 0;
|
|
119
171
|
let totalPatches = 0;
|
|
120
172
|
let staleOps = 0;
|
|
@@ -140,12 +192,15 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
|
|
|
140
192
|
}
|
|
141
193
|
|
|
142
194
|
for (const { file, dir } of entries) {
|
|
143
|
-
const resource = file.replace(/\.json$/, "");
|
|
144
|
-
if (config.resource && resource !== config.resource) continue;
|
|
145
|
-
|
|
146
195
|
const model = JSON.parse(
|
|
147
196
|
yield* fs.readFileString(path.join(dir, file)),
|
|
148
197
|
);
|
|
198
|
+
// The module's name — the model's filename unless the provider
|
|
199
|
+
// derives it from the model itself (AWS: the service's sdkId).
|
|
200
|
+
const resource =
|
|
201
|
+
options.resourceName?.({ model, file }) ??
|
|
202
|
+
file.replace(/\.json$/, "");
|
|
203
|
+
if (config.resource && resource !== config.resource) continue;
|
|
149
204
|
|
|
150
205
|
// Apply the RFC-6902 patch chain before generating. Hand-written
|
|
151
206
|
// *.manual.json patches apply after the generated ones — they
|
|
@@ -189,10 +244,22 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
|
|
|
189
244
|
if (note) yield* Console.log(` ${note}`);
|
|
190
245
|
}
|
|
191
246
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
247
|
+
// `generateService` and the provider spec are synchronous and
|
|
248
|
+
// throw; with continueOnModelError the throw is recorded and the
|
|
249
|
+
// run moves on, so one broken model doesn't hide the state of
|
|
250
|
+
// every model after it. The run still fails at the end.
|
|
251
|
+
let generated;
|
|
252
|
+
try {
|
|
253
|
+
generated = generateService(model, options.spec(model));
|
|
254
|
+
} catch (e) {
|
|
255
|
+
if (!options.continueOnModelError) throw e;
|
|
256
|
+
failedModels.push(
|
|
257
|
+
`${resource}: ${e instanceof Error ? e.message : String(e)}`,
|
|
258
|
+
);
|
|
259
|
+
yield* Console.error(`❌ ${resource}`);
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
const { code, operations } = generated;
|
|
196
263
|
if (operations === 0) continue;
|
|
197
264
|
|
|
198
265
|
yield* fs.writeFileString(path.join(outDir, `${resource}.ts`), code);
|
|
@@ -224,11 +291,22 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
|
|
|
224
291
|
// resource without removing anything.
|
|
225
292
|
const barrelPath = path.join(outDir, "index.ts");
|
|
226
293
|
const filtered = config.resource !== "";
|
|
227
|
-
|
|
294
|
+
// Sorted, not in generation order: a provider that discovers models
|
|
295
|
+
// in some other order (AWS walks Amazon's directory tree) would
|
|
296
|
+
// otherwise reshuffle the barrel on every run.
|
|
297
|
+
let resources = [...written].sort((a, b) =>
|
|
298
|
+
`${a}.json`.localeCompare(`${b}.json`),
|
|
299
|
+
);
|
|
228
300
|
if (filtered && (yield* fs.exists(barrelPath))) {
|
|
301
|
+
// Recover the RESOURCE from each export line's path, not its name:
|
|
302
|
+
// the two differ when barrelExportName renames (AWS exports
|
|
303
|
+
// `S3` from `./s3.ts`).
|
|
229
304
|
const existing = (yield* fs.readFileString(barrelPath))
|
|
230
305
|
.split("\n")
|
|
231
|
-
.map(
|
|
306
|
+
.map(
|
|
307
|
+
(line) =>
|
|
308
|
+
/^export \* as \S+ from "\.\/(.+)\.ts";/.exec(line)?.[1],
|
|
309
|
+
)
|
|
232
310
|
.filter((name): name is string => name !== undefined);
|
|
233
311
|
// Ordered exactly as a full run orders it: by MODEL FILENAME, so
|
|
234
312
|
// the `.json` takes part in the collation (`ai_gateway.json` sorts
|
|
@@ -243,11 +321,14 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
|
|
|
243
321
|
barrelPath,
|
|
244
322
|
barrel(
|
|
245
323
|
`// AUTO-GENERATED by scripts/generate.ts. Do not edit.\n`,
|
|
246
|
-
resources.map((r) => ({
|
|
324
|
+
resources.map((r) => ({
|
|
325
|
+
name: options.barrelExportName?.(r) ?? r,
|
|
326
|
+
path: `./${r}.ts`,
|
|
327
|
+
})),
|
|
247
328
|
),
|
|
248
329
|
);
|
|
249
330
|
|
|
250
|
-
yield* formatGenerated(outDir);
|
|
331
|
+
yield* (options.finalize ?? formatGenerated)(outDir);
|
|
251
332
|
|
|
252
333
|
yield* Console.log(
|
|
253
334
|
`\n✅ Generated ${totalOps} operations across ${written.length} resource modules` +
|
|
@@ -256,6 +337,19 @@ export const runGeneratorCli = (options: GeneratorCliOptions): void => {
|
|
|
256
337
|
: "."),
|
|
257
338
|
);
|
|
258
339
|
yield* Console.log(` ${path.join(outDir, "index.ts")}`);
|
|
340
|
+
|
|
341
|
+
// Models that failed under continueOnModelError. Reported together,
|
|
342
|
+
// at the end, and the run FAILS — a generate that couldn't produce
|
|
343
|
+
// a module must not exit 0 with the failure buried in the log.
|
|
344
|
+
if (failedModels.length) {
|
|
345
|
+
yield* Console.error(
|
|
346
|
+
`\n❌ ${failedModels.length} model(s) failed to generate:`,
|
|
347
|
+
);
|
|
348
|
+
for (const f of failedModels) yield* Console.error(` ${f}`);
|
|
349
|
+
return yield* Effect.die(
|
|
350
|
+
new Error(`${failedModels.length} model(s) failed to generate`),
|
|
351
|
+
);
|
|
352
|
+
}
|
|
259
353
|
}),
|
|
260
354
|
).pipe(Command.withDescription(options.description));
|
|
261
355
|
|
package/src/codegen/generator.ts
CHANGED
|
@@ -487,8 +487,27 @@ export const generateService = (
|
|
|
487
487
|
const order = topoOrder(shapes, reachable, shapeDeps);
|
|
488
488
|
const indexOf = orderIndex(order);
|
|
489
489
|
|
|
490
|
-
|
|
491
|
-
|
|
490
|
+
/**
|
|
491
|
+
* Shape id → the id whose emitted body it shares.
|
|
492
|
+
*
|
|
493
|
+
* Structural aliasing (see the struct emission below) has to cascade: a
|
|
494
|
+
* parent only matches another parent if their MEMBERS render identically,
|
|
495
|
+
* and a member renders as its target's name. So every reference resolves
|
|
496
|
+
* through this map first — once `…ItemGroupRuleGroup` is aliased onto a
|
|
497
|
+
* canonical shape, the parents referencing it start rendering the same
|
|
498
|
+
* text and collapse in turn.
|
|
499
|
+
*
|
|
500
|
+
* Filled in topological order, so a canonical target is always a shape
|
|
501
|
+
* that was already emitted — a back-reference, never a forward one.
|
|
502
|
+
*/
|
|
503
|
+
const canonicalId = new Map<string, string>();
|
|
504
|
+
const canon = (target: string): string => canonicalId.get(target) ?? target;
|
|
505
|
+
|
|
506
|
+
const rawRef = makeSchemaRef(prelude, indexOf);
|
|
507
|
+
const rawTsRef = makeTsRef(tsPrelude);
|
|
508
|
+
const ref = (target: string, selfIdx: number) =>
|
|
509
|
+
rawRef(canon(target), selfIdx);
|
|
510
|
+
const tsRef = (target: string) => rawTsRef(canon(target));
|
|
492
511
|
|
|
493
512
|
// Direction classification for enum openness. Enum ALIASES are emitted
|
|
494
513
|
// CLOSED (exhaustively matchable on reads); request-reachable shapes
|
|
@@ -529,7 +548,8 @@ export const generateService = (
|
|
|
529
548
|
* pure response/error shapes stay the plain closed alias, and so do
|
|
530
549
|
* union-arm discriminant literals.
|
|
531
550
|
*/
|
|
532
|
-
const tsRefAt = (
|
|
551
|
+
const tsRefAt = (rawTarget: string, ownerId: string): string => {
|
|
552
|
+
const target = canon(rawTarget);
|
|
533
553
|
const base = tsRef(target);
|
|
534
554
|
if (!requestReachable.has(ownerId)) return base;
|
|
535
555
|
if (discriminantEnums.has(target)) return base;
|
|
@@ -731,6 +751,13 @@ export const generateService = (
|
|
|
731
751
|
|
|
732
752
|
// 4. Error classes from the operations' errors lists.
|
|
733
753
|
const out: string[] = [];
|
|
754
|
+
// Emitted struct body → the name that owns it, for structural aliasing.
|
|
755
|
+
// Keyed on the emitted TEXT, so two shapes collapse only when what they
|
|
756
|
+
// would emit is byte-identical — including member names, targets, docs and
|
|
757
|
+
// pipes. References are already resolved to names at this point, so a
|
|
758
|
+
// difference anywhere in the tree shows up as different text.
|
|
759
|
+
const structBodies = new Map<string, { id: string; name: string }>();
|
|
760
|
+
let aliased = 0;
|
|
734
761
|
// Set when any error carries CATEGORY_TRAIT, so the header only imports
|
|
735
762
|
// the category module when something actually uses it.
|
|
736
763
|
let usesCategories = false;
|
|
@@ -866,7 +893,6 @@ export const generateService = (
|
|
|
866
893
|
fields.push(...inject.interfaceLines);
|
|
867
894
|
members.push(inject.structLine);
|
|
868
895
|
}
|
|
869
|
-
out.push(interfaceDecl(name, fields));
|
|
870
896
|
const struct = members.length
|
|
871
897
|
? `S.Struct({\n${members.join("\n")}\n})`
|
|
872
898
|
: `S.Struct({})`;
|
|
@@ -884,15 +910,44 @@ export const generateService = (
|
|
|
884
910
|
: []),
|
|
885
911
|
];
|
|
886
912
|
const tail = pipes.map((p) => `.pipe(${p})`).join("");
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
913
|
+
|
|
914
|
+
// Shapes whose emitted body is byte-identical are one shape wearing
|
|
915
|
+
// many names. The docs pipelines generate a fresh copy of every nested
|
|
916
|
+
// shape per operation, so cloudflare's zero_trust carries 374 copies of
|
|
917
|
+
// `{ group?: unknown }` — one per operation x application type x
|
|
918
|
+
// include/exclude/require — and 72% of its 16,800 structures are
|
|
919
|
+
// redundant that way.
|
|
920
|
+
//
|
|
921
|
+
// Emit the body once and alias the rest to it. The public name is kept,
|
|
922
|
+
// so nothing about the surface changes; only the duplicate bodies go.
|
|
923
|
+
// Operation I/O is excluded: those carry the operation's Http trait and
|
|
924
|
+
// must never be merged onto one another.
|
|
925
|
+
const bodyKey = `${JSON.stringify(fields)}|${struct}${tail}`;
|
|
926
|
+
const canonical = structCtx.isOpIo
|
|
927
|
+
? undefined
|
|
928
|
+
: structBodies.get(bodyKey);
|
|
929
|
+
if (canonical !== undefined) {
|
|
930
|
+
out.push(`export type ${name} = ${canonical.name};`);
|
|
931
|
+
out.push(`export const ${name} = ${canonical.name};\n`);
|
|
932
|
+
// Later shapes referencing this one now render the canonical name,
|
|
933
|
+
// which is what lets their bodies collapse too.
|
|
934
|
+
canonicalId.set(id, canonical.id);
|
|
935
|
+
aliased++;
|
|
936
|
+
} else {
|
|
937
|
+
if (!structCtx.isOpIo) {
|
|
938
|
+
structBodies.set(bodyKey, { id, name });
|
|
939
|
+
}
|
|
940
|
+
out.push(interfaceDecl(name, fields));
|
|
941
|
+
out.push(
|
|
942
|
+
suspendConst({
|
|
943
|
+
name,
|
|
944
|
+
pure,
|
|
945
|
+
multiline: true,
|
|
946
|
+
annotateIdentifier: true,
|
|
947
|
+
expr: `${struct}${tail}`,
|
|
948
|
+
}),
|
|
949
|
+
);
|
|
950
|
+
}
|
|
896
951
|
} else if (d.type === "list") {
|
|
897
952
|
out.push(`export type ${name} = Array<${tsRefAt(d.member.target, id)}>;`);
|
|
898
953
|
out.push(
|