@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 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: [..._kubb_core.ast.mergeAdjacentObjectsLazy(allOfMembers.slice(0, syntheticStart)), ..._kubb_core.ast.mergeAdjacentObjectsLazy(allOfMembers.slice(syntheticStart))],
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.setDiscriminatorEnum({
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
- return _kubb_core.ast.factory.createSchema({
1809
+ const unionNode = _kubb_core.ast.factory.createSchema({
1793
1810
  type: "union",
1794
1811
  ...unionBase,
1795
- members: _kubb_core.ast.simplifyUnion(unionMembers.map((s) => parseSchema({
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 propNode = parseSchema({
1980
+ const schemaNode = nameEnums(parseSchema({
1963
1981
  schema: resolvedPropSchema,
1964
1982
  name: (0, _kubb_ast_utils.childName)(name, propName)
1965
- }, rawOptions);
1966
- const schemaNode = (() => {
1967
- const node = _kubb_core.ast.setEnumName(propNode, name, propName, options.enumSuffix);
1968
- const tupleNode = _kubb_core.ast.narrowSchema(node, "tuple");
1969
- if (tupleNode?.items) {
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.setDiscriminatorEnum({
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
  }