@effect/openapi-generator 4.0.0-beta.101 → 4.0.0-beta.102
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/JsonSchemaGenerator.d.ts +5 -4
- package/dist/JsonSchemaGenerator.d.ts.map +1 -1
- package/dist/JsonSchemaGenerator.js +71 -10
- package/dist/JsonSchemaGenerator.js.map +1 -1
- package/dist/OpenApiGenerator.d.ts.map +1 -1
- package/dist/OpenApiGenerator.js +22 -28
- package/dist/OpenApiGenerator.js.map +1 -1
- package/dist/OpenApiPatch.d.ts +1 -1
- package/dist/OpenApiPatch.js +1 -1
- package/dist/OpenApiPatch.js.map +1 -1
- package/package.json +4 -4
- package/src/JsonSchemaGenerator.ts +101 -22
- package/src/OpenApiGenerator.ts +19 -27
- package/src/OpenApiPatch.ts +1 -1
|
@@ -3,11 +3,12 @@ type Source = "openapi-3.0" | "openapi-3.1";
|
|
|
3
3
|
interface GenerateOptions {
|
|
4
4
|
readonly onEnter?: ((js: JsonSchema.JsonSchema) => JsonSchema.JsonSchema) | undefined;
|
|
5
5
|
}
|
|
6
|
+
interface MultipartSchemaRefs {
|
|
7
|
+
readonly singleFile: string;
|
|
8
|
+
readonly files: string;
|
|
9
|
+
}
|
|
6
10
|
interface GenerateHttpApiOptions extends GenerateOptions {
|
|
7
|
-
readonly multipartSchemaRefs?:
|
|
8
|
-
readonly singleFile: string;
|
|
9
|
-
readonly files: string;
|
|
10
|
-
} | undefined;
|
|
11
|
+
readonly multipartSchemaRefs?: MultipartSchemaRefs | undefined;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* Create a stateful JSON Schema code generator for OpenAPI-derived schemas.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonSchemaGenerator.d.ts","sourceRoot":"","sources":["../src/JsonSchemaGenerator.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAI/C,KAAK,MAAM,GAAG,aAAa,GAAG,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"JsonSchemaGenerator.d.ts","sourceRoot":"","sources":["../src/JsonSchemaGenerator.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAI/C,KAAK,MAAM,GAAG,aAAa,GAAG,aAAa,CAAA;AAC3C,UAAU,eAAe;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;CACtF;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,sBAAuB,SAAQ,eAAe;IACtD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAC/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI;+BAOO,MAAM,UAAU,UAAU,CAAC,UAAU,KAAG,MAAM;gCAS7D,MAAM,cACF,UAAU,CAAC,WAAW,YACxB,OAAO,YACP,eAAe;uCA2DjB,MAAM,cACF,UAAU,CAAC,WAAW,YACxB,sBAAsB;EA9EnC"}
|
|
@@ -35,9 +35,12 @@ import * as SchemaRepresentation from "effect/SchemaRepresentation";
|
|
|
35
35
|
* @since 4.0.0
|
|
36
36
|
*/
|
|
37
37
|
export function make() {
|
|
38
|
-
|
|
38
|
+
return makeWithRepresentation();
|
|
39
|
+
}
|
|
40
|
+
function makeWithRepresentation() {
|
|
41
|
+
const store = Object.create(null);
|
|
39
42
|
function addSchema(name, schema) {
|
|
40
|
-
if (name
|
|
43
|
+
if (Object.hasOwn(store, name)) {
|
|
41
44
|
throw new Error(`Schema ${name} already exists`);
|
|
42
45
|
}
|
|
43
46
|
store[name] = schema;
|
|
@@ -76,7 +79,7 @@ export function make() {
|
|
|
76
79
|
}
|
|
77
80
|
}
|
|
78
81
|
const codes = generated.codeDocument.codes.map((code, i) => renderSchemaTypeAndRuntime(generated.nameMap[i], code, typeOnly));
|
|
79
|
-
return render("recursive declarations", recursiveDeclarations) + render("non-recursive definitions", nonRecursives) + render("recursive definitions", recursives) + render("schemas", codes);
|
|
82
|
+
return renderImportArtifacts(generated.codeDocument, !typeOnly) + render("recursive declarations", recursiveDeclarations) + render("non-recursive definitions", nonRecursives) + render("recursive definitions", recursives) + render("schemas", codes);
|
|
80
83
|
}
|
|
81
84
|
function generateHttpApi(source, components, options) {
|
|
82
85
|
const generated = makeCodeDocument(source, components, options);
|
|
@@ -105,12 +108,12 @@ export function make() {
|
|
|
105
108
|
recursives.push(renderSchemaTypeAndRuntime($ref, code, false, options?.multipartSchemaRefs));
|
|
106
109
|
}
|
|
107
110
|
const codes = generated.codeDocument.codes.map((code, i) => renderSchemaTypeAndRuntime(generated.nameMap[i], code, false, options?.multipartSchemaRefs));
|
|
108
|
-
return render("recursive declarations", recursiveDeclarations) + render("non-recursive definitions", nonRecursives) + render("recursive definitions", recursives) + render("schemas", codes);
|
|
111
|
+
return renderImportArtifacts(generated.codeDocument, true) + render("recursive declarations", recursiveDeclarations) + render("non-recursive definitions", nonRecursives) + render("recursive definitions", recursives) + render("schemas", codes);
|
|
109
112
|
}
|
|
110
113
|
function makeCodeDocument(source, components, options) {
|
|
111
114
|
const nameMap = [];
|
|
112
115
|
const schemas = [];
|
|
113
|
-
|
|
116
|
+
let definitions = Rec.map(components, js => fromSchemaOpenApi(source, js).schema);
|
|
114
117
|
for (const [name, js] of Object.entries(store)) {
|
|
115
118
|
nameMap.push(name);
|
|
116
119
|
schemas.push(fromSchemaOpenApi(source, js).schema);
|
|
@@ -118,11 +121,15 @@ export function make() {
|
|
|
118
121
|
if (!Arr.isArrayNonEmpty(schemas)) {
|
|
119
122
|
return;
|
|
120
123
|
}
|
|
121
|
-
|
|
124
|
+
if (options?.multipartSchemaRefs !== undefined) {
|
|
125
|
+
definitions = omitSupersededMultipartDefinitions(definitions, schemas, options.multipartSchemaRefs);
|
|
126
|
+
}
|
|
127
|
+
const document = {
|
|
122
128
|
dialect: "draft-2020-12",
|
|
123
129
|
schemas,
|
|
124
130
|
definitions
|
|
125
|
-
}
|
|
131
|
+
};
|
|
132
|
+
const importerOptions = {
|
|
126
133
|
onEnter(js) {
|
|
127
134
|
const out = {
|
|
128
135
|
...js
|
|
@@ -130,12 +137,13 @@ export function make() {
|
|
|
130
137
|
if (out.type === "object" && out.additionalProperties === undefined) {
|
|
131
138
|
out.additionalProperties = false;
|
|
132
139
|
}
|
|
133
|
-
return options?.onEnter
|
|
140
|
+
return options?.onEnter === undefined ? out : options.onEnter(out);
|
|
134
141
|
}
|
|
135
|
-
}
|
|
142
|
+
};
|
|
143
|
+
const codeDocument = SchemaRepresentation.toCodeDocument(SchemaRepresentation.fromSchemaMultiDocument(SchemaRepresentation.fromJsonSchemaMultiDocument(document, importerOptions)));
|
|
136
144
|
return {
|
|
137
145
|
nameMap,
|
|
138
|
-
codeDocument
|
|
146
|
+
codeDocument
|
|
139
147
|
};
|
|
140
148
|
}
|
|
141
149
|
return {
|
|
@@ -174,6 +182,59 @@ function render(title, as) {
|
|
|
174
182
|
if (as.length === 0) return "";
|
|
175
183
|
return "// " + title + "\n" + as.join("\n") + "\n";
|
|
176
184
|
}
|
|
185
|
+
function renderImportArtifacts(codeDocument, enabled) {
|
|
186
|
+
if (!enabled) return "";
|
|
187
|
+
const imports = codeDocument.artifacts.flatMap(artifact => artifact._tag === "Import" ? [artifact.importDeclaration] : []);
|
|
188
|
+
return imports.length === 0 ? "" : imports.join("\n") + "\n";
|
|
189
|
+
}
|
|
190
|
+
function omitSupersededMultipartDefinitions(definitions, schemas, multipartSchemaRefs) {
|
|
191
|
+
const rootReferences = collectReferenceKeys(schemas);
|
|
192
|
+
const multipartReferences = new Set([multipartSchemaRefs.singleFile, multipartSchemaRefs.files]);
|
|
193
|
+
const output = {};
|
|
194
|
+
for (const [key, schema] of Object.entries(definitions)) {
|
|
195
|
+
const superseded = !multipartReferences.has(key) && !rootReferences.has(key) && referencesAny(schema, multipartReferences);
|
|
196
|
+
if (!superseded) {
|
|
197
|
+
Object.defineProperty(output, key, {
|
|
198
|
+
value: schema,
|
|
199
|
+
enumerable: true,
|
|
200
|
+
configurable: true,
|
|
201
|
+
writable: true
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return output;
|
|
206
|
+
}
|
|
207
|
+
function collectReferenceKeys(input) {
|
|
208
|
+
const references = new Set();
|
|
209
|
+
visitReferences(input, $ref => {
|
|
210
|
+
const token = $ref.split("/").at(-1);
|
|
211
|
+
if (token !== undefined && token.length > 0) {
|
|
212
|
+
references.add(token.replaceAll("~1", "/").replaceAll("~0", "~"));
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
return references;
|
|
216
|
+
}
|
|
217
|
+
function referencesAny(input, keys) {
|
|
218
|
+
const references = collectReferenceKeys(input);
|
|
219
|
+
for (const key of references) {
|
|
220
|
+
if (keys.has(key)) return true;
|
|
221
|
+
}
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
function visitReferences(input, onReference) {
|
|
225
|
+
if (Array.isArray(input)) {
|
|
226
|
+
for (const value of input) visitReferences(value, onReference);
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (typeof input !== "object" || input === null) return;
|
|
230
|
+
for (const [key, value] of Object.entries(input)) {
|
|
231
|
+
if (key === "$ref" && typeof value === "string") {
|
|
232
|
+
onReference(value);
|
|
233
|
+
} else {
|
|
234
|
+
visitReferences(value, onReference);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
177
238
|
const tokenPattern = /[A-Za-z_$][A-Za-z0-9_$]*/g;
|
|
178
239
|
function collectForwardReferencedRecursives(nonRecursives, recursives) {
|
|
179
240
|
const recursiveNames = new Set(recursives.map(([name]) => name));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonSchemaGenerator.js","names":["Arr","JsonSchema","Rec","SchemaRepresentation","make","store","addSchema","name","schema","Error","generate","source","components","typeOnly","options","generated","makeCodeDocument","undefined","nonRecursiveReferences","codeDocument","references","nonRecursives","recursiveReferences","Object","entries","recursives","map","$ref","code","renderSchemaTypeAndRuntime","recursiveDeclarations","push","recursivelyForwardReferenced","collectForwardReferencedRecursives","recursiveInternalNames","makeRecursiveInternalNameMap","nameMap","has","internalName","get","renderRecursiveReferenceDeclaration","runtime","codes","i","render","generateHttpApi","multipartSchemaRefs","schemas","definitions","js","fromSchemaOpenApi","isArrayNonEmpty","multiDocument","fromJsonSchemaMultiDocument","dialect","onEnter","out","type","additionalProperties","toCodeDocument","jsonSchema","fromSchemaOpenApi3_1","fromSchemaOpenApi3_0","singleFile","join","files","strings","Type","title","as","length","tokenPattern","recursiveNames","Set","recursiveIndexes","Map","index","referenced","token","matchAll","identifier","add","referencedIndex","existingNames","usedNames","internalNames","candidate","set"],"sources":["../src/JsonSchemaGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"JsonSchemaGenerator.js","names":["Arr","JsonSchema","Rec","SchemaRepresentation","make","makeWithRepresentation","store","Object","create","addSchema","name","schema","hasOwn","Error","generate","source","components","typeOnly","options","generated","makeCodeDocument","undefined","nonRecursiveReferences","codeDocument","references","nonRecursives","recursiveReferences","entries","recursives","map","$ref","code","renderSchemaTypeAndRuntime","recursiveDeclarations","push","recursivelyForwardReferenced","collectForwardReferencedRecursives","recursiveInternalNames","makeRecursiveInternalNameMap","nameMap","has","internalName","get","renderRecursiveReferenceDeclaration","runtime","codes","i","renderImportArtifacts","render","generateHttpApi","multipartSchemaRefs","schemas","definitions","js","fromSchemaOpenApi","isArrayNonEmpty","omitSupersededMultipartDefinitions","document","dialect","importerOptions","onEnter","out","type","additionalProperties","toCodeDocument","fromSchemaMultiDocument","fromJsonSchemaMultiDocument","jsonSchema","fromSchemaOpenApi3_1","fromSchemaOpenApi3_0","singleFile","join","files","strings","Type","title","as","length","enabled","imports","artifacts","flatMap","artifact","_tag","importDeclaration","rootReferences","collectReferenceKeys","multipartReferences","Set","output","key","superseded","referencesAny","defineProperty","value","enumerable","configurable","writable","input","visitReferences","token","split","at","add","replaceAll","keys","onReference","Array","isArray","tokenPattern","recursiveNames","recursiveIndexes","Map","index","referenced","matchAll","identifier","referencedIndex","existingNames","usedNames","internalNames","candidate","set"],"sources":["../src/JsonSchemaGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApiGenerator.d.ts","sourceRoot":"","sources":["../src/OpenApiGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"OpenApiGenerator.d.ts","sourceRoot":"","sources":["../src/OpenApiGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,KAAK,EAAyB,WAAW,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;;uBAiBzF,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;;AATpG;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,qBAGf;CAAG;AAE1B;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,sBAAsB,GAAG,SAAS,CAAA;AAEtF;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GACnC,0BAA0B,GAC1B,yBAAyB,GACzB,uBAAuB,GACvB,0BAA0B,GAC1B,oCAAoC,GACpC,2BAA2B,GAC3B,yBAAyB,GACzB,qCAAqC,GACrC,kBAAkB,CAAA;AAEtB;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;IACrF;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;CAC9E;AAkBD;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;gBA4Ef,CAAA;AAg7BF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAwC,CAAA;AAEzG;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAwC,CAAA"}
|
package/dist/OpenApiGenerator.js
CHANGED
|
@@ -14,6 +14,7 @@ import * as Context from "effect/Context";
|
|
|
14
14
|
import * as Effect from "effect/Effect";
|
|
15
15
|
import * as Layer from "effect/Layer";
|
|
16
16
|
import * as Predicate from "effect/Predicate";
|
|
17
|
+
import * as Rec from "effect/Record";
|
|
17
18
|
import * as String from "effect/String";
|
|
18
19
|
import SwaggerToOpenApi from "swagger2openapi";
|
|
19
20
|
import * as HttpApiTransformer from "./HttpApiTransformer.js";
|
|
@@ -58,7 +59,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
58
59
|
// TODO: make a CLI option ?
|
|
59
60
|
const importName = "Schema";
|
|
60
61
|
const source = getDialect(spec);
|
|
61
|
-
const generation = options.format === "httpapi" ? generator.generateHttpApi(source, withHttpApiMultipartSchemas(spec.components?.schemas ?? {}, multipartSchemaRefs), {
|
|
62
|
+
const generation = options.format === "httpapi" ? generator.generateHttpApi(source, withHttpApiMultipartSchemas(spec.components?.schemas ?? {}, multipartSchemaRefs, resolveRef), {
|
|
62
63
|
onEnter: options.onEnter,
|
|
63
64
|
multipartSchemaRefs
|
|
64
65
|
}) : generator.generate(source, spec.components?.schemas ?? {}, options.format === "httpclient-type-only", {
|
|
@@ -486,14 +487,14 @@ const buildParameterSchema = (parameters, onAdded) => {
|
|
|
486
487
|
const required = "required" in paramSchema ? paramSchema.required : [];
|
|
487
488
|
for (const [name, propertySchema] of Object.entries(paramSchema.properties)) {
|
|
488
489
|
const adjustedName = `${parameter.name}[${name}]`;
|
|
489
|
-
schema.properties
|
|
490
|
+
Rec.assignProperty(schema.properties, adjustedName, propertySchema);
|
|
490
491
|
if (required.includes(name)) {
|
|
491
492
|
schema.required.push(adjustedName);
|
|
492
493
|
}
|
|
493
494
|
added.push(adjustedName);
|
|
494
495
|
}
|
|
495
496
|
} else {
|
|
496
|
-
schema.properties
|
|
497
|
+
Rec.assignProperty(schema.properties, parameter.name, parameter.schema);
|
|
497
498
|
if (parameter.required) {
|
|
498
499
|
schema.required.push(parameter.name);
|
|
499
500
|
}
|
|
@@ -541,12 +542,12 @@ const makeHttpApiMultipartSchemaRefs = definitions => {
|
|
|
541
542
|
};
|
|
542
543
|
};
|
|
543
544
|
const toDefinitionRef = name => `#/$defs/${name.replaceAll("~", "~0").replaceAll("/", "~1")}`;
|
|
544
|
-
const withHttpApiMultipartSchemas = (definitions, multipartSchemaRefs) => {
|
|
545
|
+
const withHttpApiMultipartSchemas = (definitions, multipartSchemaRefs, resolveRef) => {
|
|
545
546
|
if (multipartSchemaRefs === undefined) {
|
|
546
547
|
return definitions;
|
|
547
548
|
}
|
|
548
549
|
return {
|
|
549
|
-
...definitions,
|
|
550
|
+
...Rec.map(definitions, schema => transformMultipartSchema(schema, multipartSchemaRefs, resolveRef)),
|
|
550
551
|
[multipartSchemaRefs.singleFile]: {
|
|
551
552
|
type: "string",
|
|
552
553
|
format: "binary"
|
|
@@ -575,18 +576,25 @@ const transformMultipartSchema = (schema, multipartSchemaRefs, resolveRef) => {
|
|
|
575
576
|
return value;
|
|
576
577
|
}
|
|
577
578
|
if (typeof value.$ref === "string" && value.$ref.startsWith("#/components/schemas/")) {
|
|
578
|
-
const
|
|
579
|
+
const {
|
|
580
|
+
$ref,
|
|
581
|
+
...siblings
|
|
582
|
+
} = value;
|
|
583
|
+
const withSiblings = schema => Object.keys(siblings).length === 0 ? schema : {
|
|
584
|
+
allOf: [schema, visit(siblings)]
|
|
585
|
+
};
|
|
586
|
+
const cached = cache.get($ref);
|
|
579
587
|
if (cached !== undefined) {
|
|
580
|
-
return cached;
|
|
588
|
+
return withSiblings(cached);
|
|
581
589
|
}
|
|
582
|
-
if (stack.has(
|
|
590
|
+
if (stack.has($ref)) {
|
|
583
591
|
return value;
|
|
584
592
|
}
|
|
585
|
-
stack.add(
|
|
586
|
-
const transformed = visit(
|
|
587
|
-
stack.delete(
|
|
588
|
-
cache.set(
|
|
589
|
-
return transformed;
|
|
593
|
+
stack.add($ref);
|
|
594
|
+
const transformed = visit(resolveRef($ref));
|
|
595
|
+
stack.delete($ref);
|
|
596
|
+
cache.set($ref, transformed);
|
|
597
|
+
return withSiblings(transformed);
|
|
590
598
|
}
|
|
591
599
|
if (isMultipartBinaryFile(value)) {
|
|
592
600
|
return {
|
|
@@ -595,7 +603,7 @@ const transformMultipartSchema = (schema, multipartSchemaRefs, resolveRef) => {
|
|
|
595
603
|
}
|
|
596
604
|
const out = {};
|
|
597
605
|
for (const [key, current] of Object.entries(value)) {
|
|
598
|
-
out
|
|
606
|
+
Rec.assignProperty(out, key, visit(current));
|
|
599
607
|
}
|
|
600
608
|
if (isMultipartBinaryFiles(out, singleFileRef)) {
|
|
601
609
|
return {
|
|
@@ -606,20 +614,6 @@ const transformMultipartSchema = (schema, multipartSchemaRefs, resolveRef) => {
|
|
|
606
614
|
};
|
|
607
615
|
return visit(schema);
|
|
608
616
|
};
|
|
609
|
-
const resolveSchemaReference = (ref, resolveRef) => {
|
|
610
|
-
let current = {
|
|
611
|
-
$ref: ref
|
|
612
|
-
};
|
|
613
|
-
const seen = new Set();
|
|
614
|
-
while (Predicate.isObject(current) && typeof current.$ref === "string") {
|
|
615
|
-
if (seen.has(current.$ref)) {
|
|
616
|
-
return current;
|
|
617
|
-
}
|
|
618
|
-
seen.add(current.$ref);
|
|
619
|
-
current = resolveRef(current.$ref);
|
|
620
|
-
}
|
|
621
|
-
return current;
|
|
622
|
-
};
|
|
623
617
|
const isMultipartBinaryFile = value => Predicate.isObject(value) && value.type === "string" && (typeof value.format === "string" && value.format.toLowerCase() === "binary" || typeof value.contentEncoding === "string" && value.contentEncoding.toLowerCase() === "binary");
|
|
624
618
|
const isMultipartBinaryFiles = (value, singleFileRef) => {
|
|
625
619
|
if (value.type !== "array") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApiGenerator.js","names":["Context","Effect","Layer","Predicate","String","SwaggerToOpenApi","HttpApiTransformer","JsonSchemaGenerator","OpenApiTransformer","ParsedOperation","Utils","OpenApiGenerator","Service","methodNames","make","gen","generate","fn","spec","options","generator","openApiTransformer","emitWarning","makeWarningEmitter","isSwaggerSpec","convertSwaggerSpec","resolveRef","ref","parts","split","slice","current","part","multipartSchemaRefs","format","makeHttpApiMultipartSchemaRefs","components","schemas","undefined","parsed","parseOpenApi","importName","source","getDialect","generation","generateHttpApi","withHttpApiMultipartSchemas","onEnter","needsMultipartImport","includes","stripMargin","imports","multipart","toImplementation","name","toTypes","effect","_","provideServiceEffect","sync","makeTransformerTs","makeTransformerSchema","warning","onWarning","operations","reservedSchemaNames","Set","Object","keys","isHttpApi","securitySchemes","parseSecuritySchemes","addSchema","baseName","schema","operation","candidate","index","has","warnForOperation","code","message","add","path","methods","entries","paths","method","isUndefined","id","operationId","camelize","toUpperCase","description","nonEmptyString","summary","pathIds","pathTemplate","processPath","op","makeDeepMutable","tags","length","join","metadata","deprecated","externalDocs","effectiveSecurity","cloneSecurityRequirements","security","warnForAndSecurityRequirements","schemaId","identifier","pathParameters","isObject","Array","isArray","parameters","resolveOperationParameters","parameter","parsedParameter","in","required","push","query","header","cookie","requestBody","resolveReference","methodSupportsRequestBody","resolvedResponses","responses","map","status","response","hasExplicitSuccessResponse","some","test","Number","hasUnsupportedSuccessfulSseResponse","validParameters","filter","combinedParameterSchema","buildParameterSchema","added","spreadElementsInto","urlParams","headers","cookies","params","paramsOptional","optional","pathParameterSchema","pathSchema","queryParameterSchema","querySchema","querySchemaOptional","headerParameterSchema","headersSchema","headersSchemaOptional","isNotUndefined","content","requestSchemaNames","Map","contentTypes","payload","set","transformMultipartSchema","payloadFormData","payloadFormUrlEncoded","representableRequestBody","contentType","mediaType","encoding","getRequestMediaTypeEncoding","schemaName","get","mediaTypeToSuffix","requestBodyRepresentable","defaultSchema","parsedStatus","remapDefaultResponseStatusForHttpApi","representable","jsonSchemaName","jsonResponseSchema","statusMajorNumber","streamEncoding","isNaN","getEffectStreamEncoding","effectStream","errorSchema","getEffectStreamErrorSchema","getResponseMediaTypeEncoding","isEmptyResponse","parsedResponse","hasHeaders","isEmpty","defaultResponse","statusLower","toLowerCase","successSchemas","errorSchemas","sseResponseSchema","sseSchema","binaryResponse","voidSchemas","size","title","info","version","license","servers","tag","isOpenApiParameter","operationParameters","resolved","key","delete","values","onAdded","type","properties","additionalProperties","paramSchema","propertySchema","adjustedName","normalized","suffix","definitions","names","allocate","base","singleFile","files","toDefinitionRef","replaceAll","items","$ref","singleFileRef","filesRef","cache","stack","visit","value","startsWith","cached","transformed","resolveSchemaReference","isMultipartBinaryFile","out","isMultipartBinaryFiles","seen","contentEncoding","isJsonMediaType","endsWith","isTextMediaType","isBinaryMediaType","stream","input","requirement","fromEntries","scopes","scheme","normalizedScheme","bearerFormat","schemes","remappedStatus","statusCode","openapi","trim","layerTransformerSchema","layerTransformerTs","callback","resume","convertObj","laxDefaults","laxurls","patch","warnOnly","err","result","die","succeed","pipe","withSpan","replace"],"sources":["../src/OpenApiGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OpenApiGenerator.js","names":["Context","Effect","Layer","Predicate","Rec","String","SwaggerToOpenApi","HttpApiTransformer","JsonSchemaGenerator","OpenApiTransformer","ParsedOperation","Utils","OpenApiGenerator","Service","methodNames","make","gen","generate","fn","spec","options","generator","openApiTransformer","emitWarning","makeWarningEmitter","isSwaggerSpec","convertSwaggerSpec","resolveRef","ref","parts","split","slice","current","part","multipartSchemaRefs","format","makeHttpApiMultipartSchemaRefs","components","schemas","undefined","parsed","parseOpenApi","importName","source","getDialect","generation","generateHttpApi","withHttpApiMultipartSchemas","onEnter","needsMultipartImport","includes","stripMargin","imports","multipart","toImplementation","name","toTypes","effect","_","provideServiceEffect","sync","makeTransformerTs","makeTransformerSchema","warning","onWarning","operations","reservedSchemaNames","Set","Object","keys","isHttpApi","securitySchemes","parseSecuritySchemes","addSchema","baseName","schema","operation","candidate","index","has","warnForOperation","code","message","add","path","methods","entries","paths","method","isUndefined","id","operationId","camelize","toUpperCase","description","nonEmptyString","summary","pathIds","pathTemplate","processPath","op","makeDeepMutable","tags","length","join","metadata","deprecated","externalDocs","effectiveSecurity","cloneSecurityRequirements","security","warnForAndSecurityRequirements","schemaId","identifier","pathParameters","isObject","Array","isArray","parameters","resolveOperationParameters","parameter","parsedParameter","in","required","push","query","header","cookie","requestBody","resolveReference","methodSupportsRequestBody","resolvedResponses","responses","map","status","response","hasExplicitSuccessResponse","some","test","Number","hasUnsupportedSuccessfulSseResponse","validParameters","filter","combinedParameterSchema","buildParameterSchema","added","spreadElementsInto","urlParams","headers","cookies","params","paramsOptional","optional","pathParameterSchema","pathSchema","queryParameterSchema","querySchema","querySchemaOptional","headerParameterSchema","headersSchema","headersSchemaOptional","isNotUndefined","content","requestSchemaNames","Map","contentTypes","payload","set","transformMultipartSchema","payloadFormData","payloadFormUrlEncoded","representableRequestBody","contentType","mediaType","encoding","getRequestMediaTypeEncoding","schemaName","get","mediaTypeToSuffix","requestBodyRepresentable","defaultSchema","parsedStatus","remapDefaultResponseStatusForHttpApi","representable","jsonSchemaName","jsonResponseSchema","statusMajorNumber","streamEncoding","isNaN","getEffectStreamEncoding","effectStream","errorSchema","getEffectStreamErrorSchema","getResponseMediaTypeEncoding","isEmptyResponse","parsedResponse","hasHeaders","isEmpty","defaultResponse","statusLower","toLowerCase","successSchemas","errorSchemas","sseResponseSchema","sseSchema","binaryResponse","voidSchemas","size","title","info","version","license","servers","tag","isOpenApiParameter","operationParameters","resolved","key","delete","values","onAdded","type","properties","additionalProperties","paramSchema","propertySchema","adjustedName","assignProperty","normalized","suffix","definitions","names","allocate","base","singleFile","files","toDefinitionRef","replaceAll","items","$ref","singleFileRef","filesRef","cache","stack","visit","value","startsWith","siblings","withSiblings","allOf","cached","transformed","isMultipartBinaryFile","out","isMultipartBinaryFiles","contentEncoding","isJsonMediaType","endsWith","isTextMediaType","isBinaryMediaType","stream","input","requirement","fromEntries","scopes","scheme","normalizedScheme","bearerFormat","schemes","remappedStatus","statusCode","openapi","trim","layerTransformerSchema","layerTransformerTs","callback","resume","convertObj","laxDefaults","laxurls","patch","warnOnly","err","result","die","succeed","pipe","withSpan","replace"],"sources":["../src/OpenApiGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/OpenApiPatch.d.ts
CHANGED
|
@@ -88,7 +88,7 @@ export declare class JsonPatchValidationError extends JsonPatchValidationError_b
|
|
|
88
88
|
declare const JsonPatchApplicationError_base: Schema.Class<JsonPatchApplicationError, Schema.Struct<{
|
|
89
89
|
readonly _tag: Schema.tag<"JsonPatchApplicationError">;
|
|
90
90
|
readonly source: Schema.String;
|
|
91
|
-
readonly operationIndex: Schema.
|
|
91
|
+
readonly operationIndex: Schema.Natural;
|
|
92
92
|
readonly operation: Schema.String;
|
|
93
93
|
readonly path: Schema.String;
|
|
94
94
|
readonly reason: Schema.String;
|
package/dist/OpenApiPatch.js
CHANGED
|
@@ -126,7 +126,7 @@ export class JsonPatchValidationError extends /*#__PURE__*/Schema.ErrorClass("Js
|
|
|
126
126
|
export class JsonPatchApplicationError extends /*#__PURE__*/Schema.ErrorClass("JsonPatchApplicationError")({
|
|
127
127
|
_tag: /*#__PURE__*/Schema.tag("JsonPatchApplicationError"),
|
|
128
128
|
source: Schema.String,
|
|
129
|
-
operationIndex: Schema.
|
|
129
|
+
operationIndex: Schema.Natural,
|
|
130
130
|
operation: Schema.String,
|
|
131
131
|
path: Schema.String,
|
|
132
132
|
reason: Schema.String
|
package/dist/OpenApiPatch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApiPatch.js","names":["Effect","FileSystem","constFalse","constUndefined","JsonPatch","Path","Predicate","Schema","Yaml","JsonPatchParseError","ErrorClass","_tag","tag","source","String","reason","message","JsonPatchValidationError","JsonPatchApplicationError","operationIndex","
|
|
1
|
+
{"version":3,"file":"OpenApiPatch.js","names":["Effect","FileSystem","constFalse","constUndefined","JsonPatch","Path","Predicate","Schema","Yaml","JsonPatchParseError","ErrorClass","_tag","tag","source","String","reason","message","JsonPatchValidationError","JsonPatchApplicationError","operationIndex","Natural","operation","path","JsonPatchAggregateError","errors","Array","Unknown","count","length","plural","details","map","e","i","join","JsonPatchAdd","Struct","op","Literal","value","Json","description","optionalKey","JsonPatchRemove","JsonPatchReplace","JsonPatchOperation","Union","JsonPatchDocument","decodeJsonPatchDocument","decodeUnknownEffect","looksLikeFilePath","input","trimmed","trim","startsWith","includes","test","getFileFormat","fn","filePath","ext","parse","undefined","checkFileExists","fs","absolutePath","isAbsolute","resolve","exists","orElseSucceed","stat","isNotUndefined","type","parseJsonContent","fnUntraced","content","try","JSON","catch","error","Error","parseYamlContent","parsePatchFile","fileFormat","isUndefined","mapError","readFileString","parsed","parseInlinePatch","parsePatchInput","applyPatches","patches","document","result","patch","ignore","apply","push"],"sources":["../src/OpenApiPatch.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/openapi-generator",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.0.0-beta.
|
|
4
|
+
"version": "4.0.0-beta.102",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Generate Effect Schema types, HTTP clients, and HttpApi modules from OpenAPI specifications",
|
|
7
7
|
"homepage": "https://effect.website",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"provenance": true
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@effect/platform-node": "^4.0.0-beta.
|
|
49
|
-
"effect": "^4.0.0-beta.
|
|
48
|
+
"@effect/platform-node": "^4.0.0-beta.102",
|
|
49
|
+
"effect": "^4.0.0-beta.102"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"swagger2openapi": "^7.0.8"
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"json-schema-typed": "^8.0.2",
|
|
57
57
|
"openapi-typescript": "^7.13.0",
|
|
58
58
|
"yaml": "^2.9.0",
|
|
59
|
-
"effect": "^4.0.0-beta.
|
|
59
|
+
"effect": "^4.0.0-beta.102"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "tsc -b tsconfig.json && pnpm babel",
|
|
@@ -24,16 +24,17 @@ import * as Rec from "effect/Record"
|
|
|
24
24
|
import * as SchemaRepresentation from "effect/SchemaRepresentation"
|
|
25
25
|
|
|
26
26
|
type Source = "openapi-3.0" | "openapi-3.1"
|
|
27
|
-
|
|
28
27
|
interface GenerateOptions {
|
|
29
28
|
readonly onEnter?: ((js: JsonSchema.JsonSchema) => JsonSchema.JsonSchema) | undefined
|
|
30
29
|
}
|
|
31
30
|
|
|
31
|
+
interface MultipartSchemaRefs {
|
|
32
|
+
readonly singleFile: string
|
|
33
|
+
readonly files: string
|
|
34
|
+
}
|
|
35
|
+
|
|
32
36
|
interface GenerateHttpApiOptions extends GenerateOptions {
|
|
33
|
-
readonly multipartSchemaRefs?:
|
|
34
|
-
readonly singleFile: string
|
|
35
|
-
readonly files: string
|
|
36
|
-
} | undefined
|
|
37
|
+
readonly multipartSchemaRefs?: MultipartSchemaRefs | undefined
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
/**
|
|
@@ -49,10 +50,14 @@ interface GenerateHttpApiOptions extends GenerateOptions {
|
|
|
49
50
|
* @since 4.0.0
|
|
50
51
|
*/
|
|
51
52
|
export function make() {
|
|
52
|
-
|
|
53
|
+
return makeWithRepresentation()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function makeWithRepresentation() {
|
|
57
|
+
const store = Object.create(null) as Record<string, JsonSchema.JsonSchema>
|
|
53
58
|
|
|
54
59
|
function addSchema(name: string, schema: JsonSchema.JsonSchema): string {
|
|
55
|
-
if (name
|
|
60
|
+
if (Object.hasOwn(store, name)) {
|
|
56
61
|
throw new Error(`Schema ${name} already exists`)
|
|
57
62
|
}
|
|
58
63
|
store[name] = schema
|
|
@@ -114,7 +119,8 @@ export function make() {
|
|
|
114
119
|
renderSchemaTypeAndRuntime(generated.nameMap[i], code, typeOnly)
|
|
115
120
|
)
|
|
116
121
|
|
|
117
|
-
return
|
|
122
|
+
return renderImportArtifacts(generated.codeDocument, !typeOnly) +
|
|
123
|
+
render("recursive declarations", recursiveDeclarations) +
|
|
118
124
|
render("non-recursive definitions", nonRecursives) +
|
|
119
125
|
render("recursive definitions", recursives) +
|
|
120
126
|
render("schemas", codes)
|
|
@@ -165,7 +171,8 @@ export function make() {
|
|
|
165
171
|
renderSchemaTypeAndRuntime(generated.nameMap[i], code, false, options?.multipartSchemaRefs)
|
|
166
172
|
)
|
|
167
173
|
|
|
168
|
-
return
|
|
174
|
+
return renderImportArtifacts(generated.codeDocument, true) +
|
|
175
|
+
render("recursive declarations", recursiveDeclarations) +
|
|
169
176
|
render("non-recursive definitions", nonRecursives) +
|
|
170
177
|
render("recursive definitions", recursives) +
|
|
171
178
|
render("schemas", codes)
|
|
@@ -174,7 +181,7 @@ export function make() {
|
|
|
174
181
|
function makeCodeDocument(
|
|
175
182
|
source: Source,
|
|
176
183
|
components: JsonSchema.Definitions,
|
|
177
|
-
options?:
|
|
184
|
+
options?: GenerateHttpApiOptions
|
|
178
185
|
): {
|
|
179
186
|
readonly nameMap: Array<string>
|
|
180
187
|
readonly codeDocument: SchemaRepresentation.CodeDocument
|
|
@@ -182,7 +189,7 @@ export function make() {
|
|
|
182
189
|
const nameMap: Array<string> = []
|
|
183
190
|
const schemas: Array<JsonSchema.JsonSchema> = []
|
|
184
191
|
|
|
185
|
-
|
|
192
|
+
let definitions: JsonSchema.Definitions = Rec.map(
|
|
186
193
|
components,
|
|
187
194
|
(js) => fromSchemaOpenApi(source, js).schema
|
|
188
195
|
)
|
|
@@ -195,24 +202,33 @@ export function make() {
|
|
|
195
202
|
if (!Arr.isArrayNonEmpty(schemas)) {
|
|
196
203
|
return
|
|
197
204
|
}
|
|
205
|
+
if (options?.multipartSchemaRefs !== undefined) {
|
|
206
|
+
definitions = omitSupersededMultipartDefinitions(definitions, schemas, options.multipartSchemaRefs)
|
|
207
|
+
}
|
|
198
208
|
|
|
199
|
-
const
|
|
200
|
-
dialect: "draft-2020-12",
|
|
209
|
+
const document = {
|
|
210
|
+
dialect: "draft-2020-12" as const,
|
|
201
211
|
schemas,
|
|
202
212
|
definitions
|
|
203
|
-
}
|
|
204
|
-
|
|
213
|
+
}
|
|
214
|
+
const importerOptions = {
|
|
215
|
+
onEnter(js: JsonSchema.JsonSchema) {
|
|
205
216
|
const out = { ...js }
|
|
206
217
|
if (out.type === "object" && out.additionalProperties === undefined) {
|
|
207
218
|
out.additionalProperties = false
|
|
208
219
|
}
|
|
209
|
-
return options?.onEnter
|
|
220
|
+
return options?.onEnter === undefined ? out : options.onEnter(out)
|
|
210
221
|
}
|
|
211
|
-
}
|
|
222
|
+
}
|
|
223
|
+
const codeDocument = SchemaRepresentation.toCodeDocument(
|
|
224
|
+
SchemaRepresentation.fromSchemaMultiDocument(
|
|
225
|
+
SchemaRepresentation.fromJsonSchemaMultiDocument(document, importerOptions)
|
|
226
|
+
)
|
|
227
|
+
)
|
|
212
228
|
|
|
213
229
|
return {
|
|
214
230
|
nameMap,
|
|
215
|
-
codeDocument
|
|
231
|
+
codeDocument
|
|
216
232
|
}
|
|
217
233
|
}
|
|
218
234
|
|
|
@@ -232,10 +248,7 @@ function renderSchemaTypeAndRuntime(
|
|
|
232
248
|
$ref: string,
|
|
233
249
|
code: SchemaRepresentation.Code,
|
|
234
250
|
typeOnly: boolean,
|
|
235
|
-
multipartSchemaRefs?:
|
|
236
|
-
readonly singleFile: string
|
|
237
|
-
readonly files: string
|
|
238
|
-
}
|
|
251
|
+
multipartSchemaRefs?: MultipartSchemaRefs
|
|
239
252
|
) {
|
|
240
253
|
if (!typeOnly && multipartSchemaRefs !== undefined) {
|
|
241
254
|
if ($ref === multipartSchemaRefs.singleFile) {
|
|
@@ -275,6 +288,72 @@ function render(title: string, as: ReadonlyArray<string>) {
|
|
|
275
288
|
return "// " + title + "\n" + as.join("\n") + "\n"
|
|
276
289
|
}
|
|
277
290
|
|
|
291
|
+
function renderImportArtifacts(codeDocument: SchemaRepresentation.CodeDocument, enabled: boolean): string {
|
|
292
|
+
if (!enabled) return ""
|
|
293
|
+
const imports = codeDocument.artifacts.flatMap((artifact) =>
|
|
294
|
+
artifact._tag === "Import" ? [artifact.importDeclaration] : []
|
|
295
|
+
)
|
|
296
|
+
return imports.length === 0 ? "" : imports.join("\n") + "\n"
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
function omitSupersededMultipartDefinitions(
|
|
300
|
+
definitions: JsonSchema.Definitions,
|
|
301
|
+
schemas: ReadonlyArray<JsonSchema.JsonSchema>,
|
|
302
|
+
multipartSchemaRefs: MultipartSchemaRefs
|
|
303
|
+
): JsonSchema.Definitions {
|
|
304
|
+
const rootReferences = collectReferenceKeys(schemas)
|
|
305
|
+
const multipartReferences = new Set([multipartSchemaRefs.singleFile, multipartSchemaRefs.files])
|
|
306
|
+
const output: JsonSchema.Definitions = {}
|
|
307
|
+
|
|
308
|
+
for (const [key, schema] of Object.entries(definitions)) {
|
|
309
|
+
const superseded = !multipartReferences.has(key) && !rootReferences.has(key) &&
|
|
310
|
+
referencesAny(schema, multipartReferences)
|
|
311
|
+
if (!superseded) {
|
|
312
|
+
Object.defineProperty(output, key, {
|
|
313
|
+
value: schema,
|
|
314
|
+
enumerable: true,
|
|
315
|
+
configurable: true,
|
|
316
|
+
writable: true
|
|
317
|
+
})
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return output
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
function collectReferenceKeys(input: unknown): Set<string> {
|
|
324
|
+
const references = new Set<string>()
|
|
325
|
+
visitReferences(input, ($ref) => {
|
|
326
|
+
const token = $ref.split("/").at(-1)
|
|
327
|
+
if (token !== undefined && token.length > 0) {
|
|
328
|
+
references.add(token.replaceAll("~1", "/").replaceAll("~0", "~"))
|
|
329
|
+
}
|
|
330
|
+
})
|
|
331
|
+
return references
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
function referencesAny(input: unknown, keys: ReadonlySet<string>): boolean {
|
|
335
|
+
const references = collectReferenceKeys(input)
|
|
336
|
+
for (const key of references) {
|
|
337
|
+
if (keys.has(key)) return true
|
|
338
|
+
}
|
|
339
|
+
return false
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
function visitReferences(input: unknown, onReference: ($ref: string) => void): void {
|
|
343
|
+
if (Array.isArray(input)) {
|
|
344
|
+
for (const value of input) visitReferences(value, onReference)
|
|
345
|
+
return
|
|
346
|
+
}
|
|
347
|
+
if (typeof input !== "object" || input === null) return
|
|
348
|
+
for (const [key, value] of Object.entries(input)) {
|
|
349
|
+
if (key === "$ref" && typeof value === "string") {
|
|
350
|
+
onReference(value)
|
|
351
|
+
} else {
|
|
352
|
+
visitReferences(value, onReference)
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
|
|
278
357
|
const tokenPattern = /[A-Za-z_$][A-Za-z0-9_$]*/g
|
|
279
358
|
|
|
280
359
|
function collectForwardReferencedRecursives(
|
package/src/OpenApiGenerator.ts
CHANGED
|
@@ -15,6 +15,7 @@ import * as Effect from "effect/Effect"
|
|
|
15
15
|
import type * as JsonSchema from "effect/JsonSchema"
|
|
16
16
|
import * as Layer from "effect/Layer"
|
|
17
17
|
import * as Predicate from "effect/Predicate"
|
|
18
|
+
import * as Rec from "effect/Record"
|
|
18
19
|
import * as String from "effect/String"
|
|
19
20
|
import type { OpenAPISecurityScheme, OpenAPISpec, OpenAPISpecMethodName } from "effect/unstable/httpapi/OpenApi"
|
|
20
21
|
import SwaggerToOpenApi from "swagger2openapi"
|
|
@@ -156,7 +157,7 @@ export const make = Effect.gen(function*() {
|
|
|
156
157
|
const generation = options.format === "httpapi"
|
|
157
158
|
? generator.generateHttpApi(
|
|
158
159
|
source,
|
|
159
|
-
withHttpApiMultipartSchemas(spec.components?.schemas ?? {}, multipartSchemaRefs),
|
|
160
|
+
withHttpApiMultipartSchemas(spec.components?.schemas ?? {}, multipartSchemaRefs, resolveRef),
|
|
160
161
|
{
|
|
161
162
|
onEnter: options.onEnter,
|
|
162
163
|
multipartSchemaRefs
|
|
@@ -744,14 +745,14 @@ const buildParameterSchema = <
|
|
|
744
745
|
|
|
745
746
|
for (const [name, propertySchema] of Object.entries(paramSchema.properties)) {
|
|
746
747
|
const adjustedName = `${parameter.name}[${name}]`
|
|
747
|
-
schema.properties
|
|
748
|
+
Rec.assignProperty(schema.properties, adjustedName, propertySchema as JsonSchema.JsonSchema)
|
|
748
749
|
if (required.includes(name)) {
|
|
749
750
|
schema.required.push(adjustedName)
|
|
750
751
|
}
|
|
751
752
|
added.push(adjustedName)
|
|
752
753
|
}
|
|
753
754
|
} else {
|
|
754
|
-
schema.properties
|
|
755
|
+
Rec.assignProperty(schema.properties, parameter.name, parameter.schema as JsonSchema.JsonSchema)
|
|
755
756
|
if (parameter.required) {
|
|
756
757
|
schema.required.push(parameter.name)
|
|
757
758
|
}
|
|
@@ -807,13 +808,14 @@ const toDefinitionRef = (name: string): string => `#/$defs/${name.replaceAll("~"
|
|
|
807
808
|
|
|
808
809
|
const withHttpApiMultipartSchemas = (
|
|
809
810
|
definitions: JsonSchema.Definitions,
|
|
810
|
-
multipartSchemaRefs: HttpApiMultipartSchemaRefs | undefined
|
|
811
|
+
multipartSchemaRefs: HttpApiMultipartSchemaRefs | undefined,
|
|
812
|
+
resolveRef: (ref: string) => unknown
|
|
811
813
|
): JsonSchema.Definitions => {
|
|
812
814
|
if (multipartSchemaRefs === undefined) {
|
|
813
815
|
return definitions
|
|
814
816
|
}
|
|
815
817
|
return {
|
|
816
|
-
...definitions,
|
|
818
|
+
...Rec.map(definitions, (schema) => transformMultipartSchema(schema, multipartSchemaRefs, resolveRef)),
|
|
817
819
|
[multipartSchemaRefs.singleFile]: {
|
|
818
820
|
type: "string",
|
|
819
821
|
format: "binary"
|
|
@@ -850,18 +852,21 @@ const transformMultipartSchema = (
|
|
|
850
852
|
}
|
|
851
853
|
|
|
852
854
|
if (typeof value.$ref === "string" && value.$ref.startsWith("#/components/schemas/")) {
|
|
853
|
-
const
|
|
855
|
+
const { $ref, ...siblings } = value
|
|
856
|
+
const withSiblings = (schema: unknown): unknown =>
|
|
857
|
+
Object.keys(siblings).length === 0 ? schema : { allOf: [schema, visit(siblings)] }
|
|
858
|
+
const cached = cache.get($ref)
|
|
854
859
|
if (cached !== undefined) {
|
|
855
|
-
return cached
|
|
860
|
+
return withSiblings(cached)
|
|
856
861
|
}
|
|
857
|
-
if (stack.has(
|
|
862
|
+
if (stack.has($ref)) {
|
|
858
863
|
return value
|
|
859
864
|
}
|
|
860
|
-
stack.add(
|
|
861
|
-
const transformed = visit(
|
|
862
|
-
stack.delete(
|
|
863
|
-
cache.set(
|
|
864
|
-
return transformed
|
|
865
|
+
stack.add($ref)
|
|
866
|
+
const transformed = visit(resolveRef($ref))
|
|
867
|
+
stack.delete($ref)
|
|
868
|
+
cache.set($ref, transformed)
|
|
869
|
+
return withSiblings(transformed)
|
|
865
870
|
}
|
|
866
871
|
|
|
867
872
|
if (isMultipartBinaryFile(value)) {
|
|
@@ -870,7 +875,7 @@ const transformMultipartSchema = (
|
|
|
870
875
|
|
|
871
876
|
const out: Record<string, unknown> = {}
|
|
872
877
|
for (const [key, current] of Object.entries(value)) {
|
|
873
|
-
out
|
|
878
|
+
Rec.assignProperty(out, key, visit(current))
|
|
874
879
|
}
|
|
875
880
|
|
|
876
881
|
if (isMultipartBinaryFiles(out, singleFileRef)) {
|
|
@@ -883,19 +888,6 @@ const transformMultipartSchema = (
|
|
|
883
888
|
return visit(schema) as JsonSchema.JsonSchema
|
|
884
889
|
}
|
|
885
890
|
|
|
886
|
-
const resolveSchemaReference = (ref: string, resolveRef: (ref: string) => unknown): unknown => {
|
|
887
|
-
let current: unknown = { $ref: ref }
|
|
888
|
-
const seen = new Set<string>()
|
|
889
|
-
while (Predicate.isObject(current) && typeof current.$ref === "string") {
|
|
890
|
-
if (seen.has(current.$ref)) {
|
|
891
|
-
return current
|
|
892
|
-
}
|
|
893
|
-
seen.add(current.$ref)
|
|
894
|
-
current = resolveRef(current.$ref)
|
|
895
|
-
}
|
|
896
|
-
return current
|
|
897
|
-
}
|
|
898
|
-
|
|
899
891
|
const isMultipartBinaryFile = (value: unknown): value is JsonSchema.JsonSchema =>
|
|
900
892
|
Predicate.isObject(value) &&
|
|
901
893
|
value.type === "string" &&
|
package/src/OpenApiPatch.ts
CHANGED
|
@@ -132,7 +132,7 @@ export class JsonPatchApplicationError
|
|
|
132
132
|
extends Schema.ErrorClass<JsonPatchApplicationError>("JsonPatchApplicationError")({
|
|
133
133
|
_tag: Schema.tag("JsonPatchApplicationError"),
|
|
134
134
|
source: Schema.String,
|
|
135
|
-
operationIndex: Schema.
|
|
135
|
+
operationIndex: Schema.Natural,
|
|
136
136
|
operation: Schema.String,
|
|
137
137
|
path: Schema.String,
|
|
138
138
|
reason: Schema.String
|