@kubb/ast 5.0.0-beta.14 → 5.0.0-beta.16
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/index.cjs +47 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +31 -21
- package/dist/index.js +46 -17
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/factory.ts +14 -0
- package/src/index.ts +2 -1
- package/src/nodes/index.ts +1 -1
- package/src/nodes/root.ts +24 -0
- package/src/transformers.ts +19 -14
- package/src/types.ts +1 -0
- package/src/utils.ts +15 -5
package/dist/index.cjs
CHANGED
|
@@ -1286,14 +1286,23 @@ function resolveRefName(node) {
|
|
|
1286
1286
|
* }
|
|
1287
1287
|
* ```
|
|
1288
1288
|
*/
|
|
1289
|
-
|
|
1290
|
-
|
|
1289
|
+
const schemaRefCache = /* @__PURE__ */ new WeakMap();
|
|
1290
|
+
function collectSchemaRefs(node) {
|
|
1291
|
+
const cached = schemaRefCache.get(node);
|
|
1292
|
+
if (cached) return cached;
|
|
1293
|
+
const refs = /* @__PURE__ */ new Set();
|
|
1291
1294
|
collect(node, { schema(child) {
|
|
1292
1295
|
if (child.type === "ref") {
|
|
1293
1296
|
const name = resolveRefName(child);
|
|
1294
|
-
if (name)
|
|
1297
|
+
if (name) refs.add(name);
|
|
1295
1298
|
}
|
|
1296
1299
|
} });
|
|
1300
|
+
schemaRefCache.set(node, refs);
|
|
1301
|
+
return refs;
|
|
1302
|
+
}
|
|
1303
|
+
function collectReferencedSchemaNames(node, out = /* @__PURE__ */ new Set()) {
|
|
1304
|
+
if (!node) return out;
|
|
1305
|
+
for (const name of collectSchemaRefs(node)) out.add(name);
|
|
1297
1306
|
return out;
|
|
1298
1307
|
}
|
|
1299
1308
|
/**
|
|
@@ -1432,6 +1441,22 @@ function createInput(overrides = {}) {
|
|
|
1432
1441
|
};
|
|
1433
1442
|
}
|
|
1434
1443
|
/**
|
|
1444
|
+
* Creates an `InputStreamNode` from pre-built `AsyncIterable` sources.
|
|
1445
|
+
*
|
|
1446
|
+
* @example
|
|
1447
|
+
* ```ts
|
|
1448
|
+
* const node = createStreamInput(schemasIterable, operationsIterable, { title: 'My API' })
|
|
1449
|
+
* ```
|
|
1450
|
+
*/
|
|
1451
|
+
function createStreamInput(schemas, operations, meta) {
|
|
1452
|
+
return {
|
|
1453
|
+
kind: "Input",
|
|
1454
|
+
schemas,
|
|
1455
|
+
operations,
|
|
1456
|
+
meta
|
|
1457
|
+
};
|
|
1458
|
+
}
|
|
1459
|
+
/**
|
|
1435
1460
|
* Creates an `OutputNode` with a stable default for `files`.
|
|
1436
1461
|
*
|
|
1437
1462
|
* @example
|
|
@@ -2164,23 +2189,27 @@ function setDiscriminatorEnum({ node, propertyName, values, enumName }) {
|
|
|
2164
2189
|
* ])
|
|
2165
2190
|
* ```
|
|
2166
2191
|
*/
|
|
2167
|
-
function
|
|
2168
|
-
|
|
2192
|
+
function* mergeAdjacentObjectsLazy(members) {
|
|
2193
|
+
let acc;
|
|
2194
|
+
for (const member of members) {
|
|
2169
2195
|
const objectMember = narrowSchema(member, "object");
|
|
2170
|
-
if (objectMember && !objectMember.name) {
|
|
2171
|
-
const
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
...
|
|
2176
|
-
properties: [...previousObject.properties ?? [], ...objectMember.properties ?? []]
|
|
2196
|
+
if (objectMember && !objectMember.name && acc !== void 0) {
|
|
2197
|
+
const accObject = narrowSchema(acc, "object");
|
|
2198
|
+
if (accObject && !accObject.name) {
|
|
2199
|
+
acc = createSchema({
|
|
2200
|
+
...accObject,
|
|
2201
|
+
properties: [...accObject.properties ?? [], ...objectMember.properties ?? []]
|
|
2177
2202
|
});
|
|
2178
|
-
|
|
2203
|
+
continue;
|
|
2179
2204
|
}
|
|
2180
2205
|
}
|
|
2181
|
-
acc
|
|
2182
|
-
|
|
2183
|
-
}
|
|
2206
|
+
if (acc !== void 0) yield acc;
|
|
2207
|
+
acc = member;
|
|
2208
|
+
}
|
|
2209
|
+
if (acc !== void 0) yield acc;
|
|
2210
|
+
}
|
|
2211
|
+
function mergeAdjacentObjects(members) {
|
|
2212
|
+
return [...mergeAdjacentObjectsLazy(members)];
|
|
2184
2213
|
}
|
|
2185
2214
|
/**
|
|
2186
2215
|
* Removes enum members that are covered by broader scalar primitives in the same union.
|
|
@@ -2252,6 +2281,7 @@ exports.createProperty = createProperty;
|
|
|
2252
2281
|
exports.createResponse = createResponse;
|
|
2253
2282
|
exports.createSchema = createSchema;
|
|
2254
2283
|
exports.createSource = createSource;
|
|
2284
|
+
exports.createStreamInput = createStreamInput;
|
|
2255
2285
|
exports.createText = createText;
|
|
2256
2286
|
exports.createType = createType;
|
|
2257
2287
|
exports.definePrinter = definePrinter;
|
|
@@ -2269,6 +2299,7 @@ exports.isSchemaNode = isSchemaNode;
|
|
|
2269
2299
|
exports.isStringType = isStringType;
|
|
2270
2300
|
exports.mediaTypes = mediaTypes;
|
|
2271
2301
|
exports.mergeAdjacentObjects = mergeAdjacentObjects;
|
|
2302
|
+
exports.mergeAdjacentObjectsLazy = mergeAdjacentObjectsLazy;
|
|
2272
2303
|
exports.narrowSchema = narrowSchema;
|
|
2273
2304
|
exports.nodeKinds = nodeKinds;
|
|
2274
2305
|
exports.resolveRefName = resolveRefName;
|