@effect/openapi-generator 4.0.0-beta.100 → 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.
@@ -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;AAE3C,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,sBAAuB,SAAQ,eAAe;IACtD,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KACvB,GAAG,SAAS,CAAA;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI;+BAGO,MAAM,UAAU,UAAU,CAAC,UAAU,KAAG,MAAM;gCAS7D,MAAM,cACF,UAAU,CAAC,WAAW,YACxB,OAAO,YACP,eAAe;uCA0DjB,MAAM,cACF,UAAU,CAAC,WAAW,YACxB,sBAAsB;EA8FnC"}
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
- const store = {};
38
+ return makeWithRepresentation();
39
+ }
40
+ function makeWithRepresentation() {
41
+ const store = Object.create(null);
39
42
  function addSchema(name, schema) {
40
- if (name in store) {
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
- const definitions = Rec.map(components, js => fromSchemaOpenApi(source, js).schema);
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
- const multiDocument = SchemaRepresentation.fromJsonSchemaMultiDocument({
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?.(out) ?? out;
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: SchemaRepresentation.toCodeDocument(multiDocument)
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;AAGrC,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;AAy7BF;;;;;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"}
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"}
@@ -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[adjustedName] = propertySchema;
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[parameter.name] = parameter.schema;
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 cached = cache.get(value.$ref);
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(value.$ref)) {
590
+ if (stack.has($ref)) {
583
591
  return value;
584
592
  }
585
- stack.add(value.$ref);
586
- const transformed = visit(resolveSchemaReference(value.$ref, resolveRef));
587
- stack.delete(value.$ref);
588
- cache.set(value.$ref, transformed);
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[key] = visit(current);
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":[]}
@@ -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.Number;
91
+ readonly operationIndex: Schema.Natural;
92
92
  readonly operation: Schema.String;
93
93
  readonly path: Schema.String;
94
94
  readonly reason: Schema.String;
@@ -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.Number,
129
+ operationIndex: Schema.Natural,
130
130
  operation: Schema.String,
131
131
  path: Schema.String,
132
132
  reason: Schema.String
@@ -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","Number","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":[]}
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.100",
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.100",
49
- "effect": "^4.0.0-beta.100"
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.100"
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
- const store: Record<string, JsonSchema.JsonSchema> = {}
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 in store) {
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 render("recursive declarations", recursiveDeclarations) +
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 render("recursive declarations", recursiveDeclarations) +
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?: GenerateOptions
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
- const definitions: JsonSchema.Definitions = Rec.map(
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 multiDocument: SchemaRepresentation.MultiDocument = SchemaRepresentation.fromJsonSchemaMultiDocument({
200
- dialect: "draft-2020-12",
209
+ const document = {
210
+ dialect: "draft-2020-12" as const,
201
211
  schemas,
202
212
  definitions
203
- }, {
204
- onEnter(js) {
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?.(out) ?? out
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: SchemaRepresentation.toCodeDocument(multiDocument)
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(
@@ -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[adjustedName] = propertySchema as JsonSchema.JsonSchema
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[parameter.name] = parameter.schema as JsonSchema.JsonSchema
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 cached = cache.get(value.$ref)
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(value.$ref)) {
862
+ if (stack.has($ref)) {
858
863
  return value
859
864
  }
860
- stack.add(value.$ref)
861
- const transformed = visit(resolveSchemaReference(value.$ref, resolveRef))
862
- stack.delete(value.$ref)
863
- cache.set(value.$ref, transformed)
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[key] = visit(current)
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" &&
@@ -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.Number,
135
+ operationIndex: Schema.Natural,
136
136
  operation: Schema.String,
137
137
  path: Schema.String,
138
138
  reason: Schema.String