Skip to content

Commit 447e4f3

Browse files
authored
directly use merger function to merge schemas combined using allOf (#437)
1 parent e0547b0 commit 447e4f3

File tree

1 file changed

+3
-17
lines changed

1 file changed

+3
-17
lines changed

scripts/build.js

+3-17
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import fs from "fs";
22
import yaml from "js-yaml";
3-
import merger from "json-schema-merge-allof";
3+
import mergeAllOf from "json-schema-merge-allof";
44
import { dereferenceDocument } from "@open-rpc/schema-utils-js";
55

66
function sortByMethodName(methods) {
@@ -102,26 +102,12 @@ let spec = await dereferenceDocument(doc);
102102

103103
spec.components = {};
104104

105-
function recursiveMerge(schema) {
106-
schema = merger(schema);
107-
108-
if("items" in schema && "oneOf" in schema.items) {
109-
schema.items.oneOf = recursiveMerge(schema.items.oneOf);
110-
}
111-
if("oneOf" in schema) {
112-
for(var k=0; k < schema.oneOf.length; k++) {
113-
schema.oneOf[k] = recursiveMerge(schema.oneOf[k]);
114-
}
115-
}
116-
return schema;
117-
}
118-
119105
// Merge instances of `allOf` in methods.
120106
for (var i=0; i < spec.methods.length; i++) {
121107
for (var j=0; j < spec.methods[i].params.length; j++) {
122-
spec.methods[i].params[j].schema = recursiveMerge(spec.methods[i].params[j].schema);
108+
spec.methods[i].params[j].schema = mergeAllOf(spec.methods[i].params[j].schema);
123109
}
124-
spec.methods[i].result.schema = recursiveMerge(spec.methods[i].result.schema);
110+
spec.methods[i].result.schema = mergeAllOf(spec.methods[i].result.schema);
125111
}
126112

127113
let data = JSON.stringify(spec, null, '\t');

0 commit comments

Comments
 (0)