@kubb/adapter-oas 5.0.0-beta.60 → 5.0.0-beta.61
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 +33 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +34 -25
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/parser.ts +28 -25
package/dist/index.cjs
CHANGED
|
@@ -28,6 +28,7 @@ let node_fs_promises = require("node:fs/promises");
|
|
|
28
28
|
let _readme_openapi_parser = require("@readme/openapi-parser");
|
|
29
29
|
let yaml = require("yaml");
|
|
30
30
|
let api_ref_bundler = require("api-ref-bundler");
|
|
31
|
+
let _kubb_ast_macros = require("@kubb/ast/macros");
|
|
31
32
|
let _kubb_ast_utils = require("@kubb/ast/utils");
|
|
32
33
|
let _kubb_ast = require("@kubb/ast");
|
|
33
34
|
//#region src/constants.ts
|
|
@@ -1583,6 +1584,23 @@ function normalizeArrayEnum(schema) {
|
|
|
1583
1584
|
};
|
|
1584
1585
|
}
|
|
1585
1586
|
/**
|
|
1587
|
+
* Names the inline enums on a property's schema, and on each item when the property is a tuple, from
|
|
1588
|
+
* the parent and property name. Wraps `macroEnumName` at the property construction site.
|
|
1589
|
+
*/
|
|
1590
|
+
function nameEnums(node, options) {
|
|
1591
|
+
const macro = (0, _kubb_ast_macros.macroEnumName)(options);
|
|
1592
|
+
const named = _kubb_core.ast.applyMacros(node, [macro], { depth: "shallow" });
|
|
1593
|
+
const tupleNode = _kubb_core.ast.narrowSchema(named, "tuple");
|
|
1594
|
+
if (tupleNode?.items) {
|
|
1595
|
+
const namedItems = tupleNode.items.map((item) => _kubb_core.ast.applyMacros(item, [macro], { depth: "shallow" }));
|
|
1596
|
+
if (namedItems.some((item, i) => item !== tupleNode.items[i])) return {
|
|
1597
|
+
...tupleNode,
|
|
1598
|
+
items: namedItems
|
|
1599
|
+
};
|
|
1600
|
+
}
|
|
1601
|
+
return named;
|
|
1602
|
+
}
|
|
1603
|
+
/**
|
|
1586
1604
|
* Factory function that creates schema and operation converters for a given OpenAPI context.
|
|
1587
1605
|
*
|
|
1588
1606
|
* Returns closures that share mutable state (`resolvingRefs` set for cycle detection).
|
|
@@ -1723,7 +1741,7 @@ function createSchemaParser(ctx, dialect = oasDialect) {
|
|
|
1723
1741
|
}));
|
|
1724
1742
|
return _kubb_core.ast.factory.createSchema({
|
|
1725
1743
|
type: "intersection",
|
|
1726
|
-
members: [...
|
|
1744
|
+
members: [...(0, _kubb_ast_utils.mergeAdjacentObjectsLazy)(allOfMembers.slice(0, syntheticStart)), ...(0, _kubb_ast_utils.mergeAdjacentObjectsLazy)(allOfMembers.slice(syntheticStart))],
|
|
1727
1745
|
...buildSchemaNode(schema, name, nullable, defaultValue)
|
|
1728
1746
|
});
|
|
1729
1747
|
}
|
|
@@ -1764,11 +1782,10 @@ function createSchemaParser(ctx, dialect = oasDialect) {
|
|
|
1764
1782
|
name
|
|
1765
1783
|
}, rawOptions);
|
|
1766
1784
|
if (!discriminatorValue || !discriminator) return memberNode;
|
|
1767
|
-
const narrowedDiscriminatorNode = sharedPropertiesNode ? pickDiscriminatorPropertyNode(_kubb_core.ast.
|
|
1768
|
-
node: sharedPropertiesNode,
|
|
1785
|
+
const narrowedDiscriminatorNode = sharedPropertiesNode ? pickDiscriminatorPropertyNode(_kubb_core.ast.applyMacros(sharedPropertiesNode, [(0, _kubb_ast_macros.macroDiscriminatorEnum)({
|
|
1769
1786
|
propertyName: discriminator.propertyName,
|
|
1770
1787
|
values: [discriminatorValue]
|
|
1771
|
-
}), discriminator.propertyName) : void 0;
|
|
1788
|
+
})], { depth: "shallow" }), discriminator.propertyName) : void 0;
|
|
1772
1789
|
return _kubb_core.ast.factory.createSchema({
|
|
1773
1790
|
type: "intersection",
|
|
1774
1791
|
members: [memberNode, narrowedDiscriminatorNode ?? createDiscriminantNode({
|
|
@@ -1789,14 +1806,15 @@ function createSchemaParser(ctx, dialect = oasDialect) {
|
|
|
1789
1806
|
members: [unionNode, sharedPropertiesNode]
|
|
1790
1807
|
});
|
|
1791
1808
|
}
|
|
1792
|
-
|
|
1809
|
+
const unionNode = _kubb_core.ast.factory.createSchema({
|
|
1793
1810
|
type: "union",
|
|
1794
1811
|
...unionBase,
|
|
1795
|
-
members:
|
|
1812
|
+
members: unionMembers.map((s) => parseSchema({
|
|
1796
1813
|
schema: s,
|
|
1797
1814
|
name
|
|
1798
|
-
}, rawOptions))
|
|
1815
|
+
}, rawOptions))
|
|
1799
1816
|
});
|
|
1817
|
+
return _kubb_core.ast.applyMacros(unionNode, [_kubb_ast_macros.macroSimplifyUnion], { depth: "shallow" });
|
|
1800
1818
|
}
|
|
1801
1819
|
/**
|
|
1802
1820
|
* Converts an OAS 3.1 `const` schema into a null scalar or a single-value `EnumSchemaNode`.
|
|
@@ -1959,22 +1977,14 @@ function createSchemaParser(ctx, dialect = oasDialect) {
|
|
|
1959
1977
|
const required = Array.isArray(schema.required) ? schema.required.includes(propName) : !!schema.required;
|
|
1960
1978
|
const resolvedPropSchema = propSchema;
|
|
1961
1979
|
const propNullable = dialect.isNullable(resolvedPropSchema);
|
|
1962
|
-
const
|
|
1980
|
+
const schemaNode = nameEnums(parseSchema({
|
|
1963
1981
|
schema: resolvedPropSchema,
|
|
1964
1982
|
name: (0, _kubb_ast_utils.childName)(name, propName)
|
|
1965
|
-
}, rawOptions)
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
const namedItems = tupleNode.items.map((item) => _kubb_core.ast.setEnumName(item, name, propName, options.enumSuffix));
|
|
1971
|
-
if (namedItems.some((item, i) => item !== tupleNode.items[i])) return {
|
|
1972
|
-
...tupleNode,
|
|
1973
|
-
items: namedItems
|
|
1974
|
-
};
|
|
1975
|
-
}
|
|
1976
|
-
return node;
|
|
1977
|
-
})();
|
|
1983
|
+
}, rawOptions), {
|
|
1984
|
+
parentName: name,
|
|
1985
|
+
propName,
|
|
1986
|
+
enumSuffix: options.enumSuffix
|
|
1987
|
+
});
|
|
1978
1988
|
return _kubb_core.ast.factory.createProperty({
|
|
1979
1989
|
name: propName,
|
|
1980
1990
|
schema: {
|
|
@@ -2007,12 +2017,11 @@ function createSchemaParser(ctx, dialect = oasDialect) {
|
|
|
2007
2017
|
const discPropName = schema.discriminator.propertyName;
|
|
2008
2018
|
const values = Object.keys(schema.discriminator.mapping);
|
|
2009
2019
|
const enumName = name ? (0, _kubb_ast_utils.enumPropName)(name, discPropName, options.enumSuffix) : void 0;
|
|
2010
|
-
return _kubb_core.ast.
|
|
2011
|
-
node: objectNode,
|
|
2020
|
+
return _kubb_core.ast.applyMacros(objectNode, [(0, _kubb_ast_macros.macroDiscriminatorEnum)({
|
|
2012
2021
|
propertyName: discPropName,
|
|
2013
2022
|
values,
|
|
2014
2023
|
enumName
|
|
2015
|
-
});
|
|
2024
|
+
})], { depth: "shallow" });
|
|
2016
2025
|
}
|
|
2017
2026
|
return objectNode;
|
|
2018
2027
|
}
|