@kubb/plugin-ts 5.0.0-alpha.23 → 5.0.0-alpha.24

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
@@ -434,8 +434,7 @@ function getEnumNames({ node, enumType, enumTypeSuffix, resolver }) {
434
434
  const resolved = resolver.default(node.name, "type");
435
435
  return {
436
436
  enumName: enumType === "asPascalConst" ? resolved : camelCase(node.name),
437
- typeName: ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) ? resolver.resolveEnumKeyName(node, enumTypeSuffix) : resolved,
438
- refName: resolved
437
+ typeName: ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) ? resolver.resolveEnumKeyName(node, enumTypeSuffix) : resolved
439
438
  };
440
439
  }
441
440
  /**
@@ -616,7 +615,7 @@ const printerTs = (0, _kubb_core.definePrinter)((options) => {
616
615
  ref(node) {
617
616
  if (!node.name) return;
618
617
  const refName = node.ref ? node.ref.split("/").at(-1) ?? node.name : node.name;
619
- return createTypeReferenceNode(node.ref ? this.options.resolver.default(refName, "type") : refName, void 0);
618
+ return createTypeReferenceNode(node.ref && ENUM_TYPES_WITH_KEY_SUFFIX.has(this.options.enumType) && this.options.enumTypeSuffix && this.options.enumSchemaNames?.has(refName) ? this.options.resolver.resolveEnumKeyName({ name: refName }, this.options.enumTypeSuffix) : node.ref ? this.options.resolver.default(refName, "type") : refName, void 0);
620
619
  },
621
620
  enum(node) {
622
621
  const values = node.namedEnumValues?.map((v) => v.value) ?? node.enumValues ?? [];
@@ -716,7 +715,7 @@ const printerTs = (0, _kubb_core.definePrinter)((options) => {
716
715
  });
717
716
  //#endregion
718
717
  //#region src/components/Type.tsx
719
- function Type({ name, node, keysToOmit, optionalType, arrayType, syntaxType, enumType, enumTypeSuffix, enumKeyCasing, description, resolver }) {
718
+ function Type({ name, node, keysToOmit, optionalType, arrayType, syntaxType, enumType, enumTypeSuffix, enumKeyCasing, description, resolver, enumSchemaNames }) {
720
719
  const resolvedDescription = description || node?.description;
721
720
  const enumSchemaNodes = (0, _kubb_ast.collect)(node, { schema(n) {
722
721
  const enumNode = (0, _kubb_ast.narrowSchema)(n, _kubb_ast.schemaTypes.enum);
@@ -731,7 +730,8 @@ function Type({ name, node, keysToOmit, optionalType, arrayType, syntaxType, enu
731
730
  syntaxType,
732
731
  description: resolvedDescription,
733
732
  keysToOmit,
734
- resolver
733
+ resolver,
734
+ enumSchemaNames
735
735
  }).print(node);
736
736
  if (!output) return;
737
737
  const enums = [...new Map(enumSchemaNodes.map((n) => [n.name, n])).values()].map((node) => {
@@ -888,11 +888,16 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
888
888
  group
889
889
  });
890
890
  const params = (0, _kubb_ast.caseParams)(node.parameters, paramsCasing);
891
+ const enumSchemaNames = new Set((adapter.rootNode?.schemas ?? []).filter((s) => (0, _kubb_ast.narrowSchema)(s, _kubb_ast.schemaTypes.enum) && s.name).map((s) => s.name));
892
+ function resolveImportName(schemaName) {
893
+ if (ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && enumTypeSuffix && enumSchemaNames.has(schemaName)) return resolver.resolveEnumKeyName({ name: schemaName }, enumTypeSuffix);
894
+ return resolver.default(schemaName, "type");
895
+ }
891
896
  function renderSchemaType({ node: schemaNode, name, description, keysToOmit }) {
892
897
  if (!schemaNode) return null;
893
898
  const transformedNode = (0, _kubb_ast.transform)(schemaNode, (0, _kubb_ast.composeTransformers)(...transformers));
894
899
  const imports = adapter.getImports(transformedNode, (schemaName) => ({
895
- name: resolver.default(schemaName, "type"),
900
+ name: resolveImportName(schemaName),
896
901
  path: resolver.resolveFile({
897
902
  name: schemaName,
898
903
  extname: ".ts"
@@ -922,7 +927,8 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
922
927
  arrayType,
923
928
  syntaxType,
924
929
  resolver,
925
- keysToOmit
930
+ keysToOmit,
931
+ enumSchemaNames
926
932
  })] });
927
933
  }
928
934
  const paramTypes = params.map((param) => renderSchemaType({
@@ -994,8 +1000,13 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
994
1000
  const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
995
1001
  if (!node.name) return;
996
1002
  const transformedNode = (0, _kubb_ast.transform)(node, (0, _kubb_ast.composeTransformers)(...transformers));
1003
+ const enumSchemaNames = new Set((adapter.rootNode?.schemas ?? []).filter((s) => (0, _kubb_ast.narrowSchema)(s, _kubb_ast.schemaTypes.enum) && s.name).map((s) => s.name));
1004
+ function resolveImportName(schemaName) {
1005
+ if (ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && enumTypeSuffix && enumSchemaNames.has(schemaName)) return resolver.resolveEnumKeyName({ name: schemaName }, enumTypeSuffix);
1006
+ return resolver.default(schemaName, "type");
1007
+ }
997
1008
  const imports = adapter.getImports(transformedNode, (schemaName) => ({
998
- name: resolver.default(schemaName, "type"),
1009
+ name: resolveImportName(schemaName),
999
1010
  path: resolver.resolveFile({
1000
1011
  name: schemaName,
1001
1012
  extname: ".ts"
@@ -1047,7 +1058,8 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
1047
1058
  optionalType,
1048
1059
  arrayType,
1049
1060
  syntaxType,
1050
- resolver
1061
+ resolver,
1062
+ enumSchemaNames
1051
1063
  })]
1052
1064
  });
1053
1065
  }