@kubb/plugin-ts 5.0.0-beta.10 → 5.0.0-beta.22

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
@@ -906,7 +906,7 @@ const printerTs = _kubb_core.ast.definePrinter((options) => {
906
906
  date: dateOrStringNode,
907
907
  time: dateOrStringNode,
908
908
  ref(node) {
909
- if (!node.name) return;
909
+ if (!node.name) return null;
910
910
  const refName = node.ref ? _kubb_core.ast.extractRefName(node.ref) ?? node.name : node.name;
911
911
  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);
912
912
  },
@@ -943,16 +943,16 @@ const printerTs = _kubb_core.ast.definePrinter((options) => {
943
943
  return createIntersectionDeclaration({
944
944
  withParentheses: true,
945
945
  nodes: buildMemberNodes(node.members, this.transform)
946
- }) ?? void 0;
946
+ }) ?? null;
947
947
  },
948
948
  array(node) {
949
949
  return createArrayDeclaration({
950
950
  nodes: (node.items ?? []).map((item) => this.transform(item)).filter(isNonNullable),
951
951
  arrayType: this.options.arrayType
952
- }) ?? void 0;
952
+ }) ?? null;
953
953
  },
954
954
  tuple(node) {
955
- return buildTupleNode(node, this.transform);
955
+ return buildTupleNode(node, this.transform) ?? null;
956
956
  },
957
957
  object(node) {
958
958
  const { transform, options } = this;
@@ -979,21 +979,22 @@ const printerTs = _kubb_core.ast.definePrinter((options) => {
979
979
  },
980
980
  print(node) {
981
981
  const { name, syntaxType = "type", description, keysToOmit } = this.options;
982
- let base = this.transform(node);
983
- if (!base) return null;
982
+ const transformed = this.transform(node);
983
+ if (!transformed) return null;
984
984
  const meta = _kubb_core.ast.syncSchemaRef(node);
985
985
  if (!name) {
986
- if (meta.nullable) base = createUnionDeclaration({ nodes: [base, keywordTypeNodes.null] });
987
- if ((meta.nullish || meta.optional) && addsUndefined) base = createUnionDeclaration({ nodes: [base, keywordTypeNodes.undefined] });
988
- return (0, _kubb_parser_ts.safePrint)(base);
986
+ const withNullable = meta.nullable ? createUnionDeclaration({ nodes: [transformed, keywordTypeNodes.null] }) : transformed;
987
+ return (0, _kubb_parser_ts.safePrint)((meta.nullish || meta.optional) && addsUndefined ? createUnionDeclaration({ nodes: [withNullable, keywordTypeNodes.undefined] }) : withNullable);
989
988
  }
990
- let inner = keysToOmit?.length ? createOmitDeclaration({
991
- keys: keysToOmit,
992
- type: base,
993
- nonNullable: true
994
- }) : base;
995
- if (meta.nullable) inner = createUnionDeclaration({ nodes: [inner, keywordTypeNodes.null] });
996
- if (meta.nullish || meta.optional) inner = createUnionDeclaration({ nodes: [inner, keywordTypeNodes.undefined] });
989
+ const inner = (() => {
990
+ const omitted = keysToOmit?.length ? createOmitDeclaration({
991
+ keys: keysToOmit,
992
+ type: transformed,
993
+ nonNullable: true
994
+ }) : transformed;
995
+ const withNullable = meta.nullable ? createUnionDeclaration({ nodes: [omitted, keywordTypeNodes.null] }) : omitted;
996
+ return meta.nullish || meta.optional ? createUnionDeclaration({ nodes: [withNullable, keywordTypeNodes.undefined] }) : withNullable;
997
+ })();
997
998
  const useTypeGeneration = syntaxType === "type" || inner.kind === syntaxKind.union || !!keysToOmit?.length;
998
999
  return (0, _kubb_parser_ts.safePrint)(createTypeDeclaration({
999
1000
  name,
@@ -1025,13 +1026,13 @@ function getPerContentTypeName(dataName, suffix) {
1025
1026
  }
1026
1027
  const typeGenerator = (0, _kubb_core.defineGenerator)({
1027
1028
  name: "typescript",
1028
- renderer: _kubb_renderer_jsx.jsxRenderer,
1029
+ renderer: _kubb_renderer_jsx.jsxRendererSync,
1029
1030
  schema(node, ctx) {
1030
1031
  const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, printer } = ctx.options;
1031
1032
  const { adapter, config, resolver, root } = ctx;
1032
1033
  if (!node.name) return;
1033
1034
  const mode = ctx.getMode(output);
1034
- const enumSchemaNames = new Set((adapter.inputNode?.schemas ?? []).filter((s) => _kubb_core.ast.narrowSchema(s, _kubb_core.ast.schemaTypes.enum) && s.name).map((s) => s.name));
1035
+ const enumSchemaNames = new Set(ctx.meta.enumNames);
1035
1036
  function resolveImportName(schemaName) {
1036
1037
  if (ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && enumTypeSuffix && enumSchemaNames.has(schemaName)) return resolver.resolveEnumKeyName({ name: schemaName }, enumTypeSuffix);
1037
1038
  return resolver.resolveTypeName(schemaName);
@@ -1075,11 +1076,11 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
1075
1076
  baseName: meta.file.baseName,
1076
1077
  path: meta.file.path,
1077
1078
  meta: meta.file.meta,
1078
- banner: resolver.resolveBanner(adapter.inputNode, {
1079
+ banner: resolver.resolveBanner(ctx.meta, {
1079
1080
  output,
1080
1081
  config
1081
1082
  }),
1082
- footer: resolver.resolveFooter(adapter.inputNode, {
1083
+ footer: resolver.resolveFooter(ctx.meta, {
1083
1084
  output,
1084
1085
  config
1085
1086
  }),
@@ -1118,7 +1119,7 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
1118
1119
  output,
1119
1120
  group
1120
1121
  }) };
1121
- const enumSchemaNames = new Set((adapter.inputNode?.schemas ?? []).filter((s) => _kubb_core.ast.narrowSchema(s, _kubb_core.ast.schemaTypes.enum) && s.name).map((s) => s.name));
1122
+ const enumSchemaNames = new Set(ctx.meta.enumNames);
1122
1123
  function resolveImportName(schemaName) {
1123
1124
  if (ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && enumTypeSuffix && enumSchemaNames.has(schemaName)) return resolver.resolveEnumKeyName({ name: schemaName }, enumTypeSuffix);
1124
1125
  return resolver.resolveTypeName(schemaName);
@@ -1257,11 +1258,11 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
1257
1258
  baseName: meta.file.baseName,
1258
1259
  path: meta.file.path,
1259
1260
  meta: meta.file.meta,
1260
- banner: resolver.resolveBanner(adapter.inputNode, {
1261
+ banner: resolver.resolveBanner(ctx.meta, {
1261
1262
  output,
1262
1263
  config
1263
1264
  }),
1264
- footer: resolver.resolveFooter(adapter.inputNode, {
1265
+ footer: resolver.resolveFooter(ctx.meta, {
1265
1266
  output,
1266
1267
  config
1267
1268
  }),