@kubb/plugin-ts 5.0.0-alpha.26 → 5.0.0-alpha.28
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 +141 -116
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +145 -118
- package/dist/index.js +142 -117
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/Type.tsx +8 -39
- package/src/generators/typeGenerator.tsx +40 -19
- package/src/generators/typeGeneratorLegacy.tsx +36 -18
- package/src/index.ts +1 -0
- package/src/plugin.ts +9 -5
- package/src/presets.ts +5 -2
- package/src/printers/functionPrinter.ts +2 -1
- package/src/printers/printerTs.ts +33 -4
- package/src/resolvers/resolverTs.ts +11 -15
- package/src/resolvers/resolverTsLegacy.ts +8 -8
- package/src/types.ts +31 -18
package/dist/index.cjs
CHANGED
|
@@ -556,6 +556,42 @@ function Enum({ node, enumType, enumTypeSuffix, enumKeyCasing, resolver }) {
|
|
|
556
556
|
})] });
|
|
557
557
|
}
|
|
558
558
|
//#endregion
|
|
559
|
+
//#region src/components/Type.tsx
|
|
560
|
+
function Type({ name, node, printer, enumType, enumTypeSuffix, enumKeyCasing, resolver }) {
|
|
561
|
+
const enumSchemaNodes = (0, _kubb_ast.collect)(node, { schema(n) {
|
|
562
|
+
const enumNode = (0, _kubb_ast.narrowSchema)(n, _kubb_ast.schemaTypes.enum);
|
|
563
|
+
if (enumNode?.name) return enumNode;
|
|
564
|
+
} });
|
|
565
|
+
const output = printer.print(node);
|
|
566
|
+
if (!output) return;
|
|
567
|
+
const enums = [...new Map(enumSchemaNodes.map((n) => [n.name, n])).values()].map((node) => {
|
|
568
|
+
return {
|
|
569
|
+
node,
|
|
570
|
+
...getEnumNames({
|
|
571
|
+
node,
|
|
572
|
+
enumType,
|
|
573
|
+
enumTypeSuffix,
|
|
574
|
+
resolver
|
|
575
|
+
})
|
|
576
|
+
};
|
|
577
|
+
});
|
|
578
|
+
const shouldExportEnums = enumType !== "inlineLiteral";
|
|
579
|
+
const shouldExportType = enumType === "inlineLiteral" || enums.every((item) => item.typeName !== name);
|
|
580
|
+
return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric_jsx_runtime.Fragment, { children: [shouldExportEnums && enums.map(({ node }) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(Enum, {
|
|
581
|
+
node,
|
|
582
|
+
enumType,
|
|
583
|
+
enumTypeSuffix,
|
|
584
|
+
enumKeyCasing,
|
|
585
|
+
resolver
|
|
586
|
+
})), shouldExportType && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Source, {
|
|
587
|
+
name,
|
|
588
|
+
isTypeOnly: true,
|
|
589
|
+
isExportable: true,
|
|
590
|
+
isIndexable: true,
|
|
591
|
+
children: output
|
|
592
|
+
})] });
|
|
593
|
+
}
|
|
594
|
+
//#endregion
|
|
559
595
|
//#region src/utils.ts
|
|
560
596
|
/**
|
|
561
597
|
* Collects JSDoc annotation strings for a schema node.
|
|
@@ -808,7 +844,8 @@ const printerTs = (0, _kubb_core.definePrinter)((options) => {
|
|
|
808
844
|
const allElements = [...propertyNodes, ...buildIndexSignatures(node, propertyNodes.length, transform)];
|
|
809
845
|
if (!allElements.length) return keywordTypeNodes.object;
|
|
810
846
|
return createTypeLiteralNode(allElements);
|
|
811
|
-
}
|
|
847
|
+
},
|
|
848
|
+
...options.nodes
|
|
812
849
|
},
|
|
813
850
|
print(node) {
|
|
814
851
|
const { name, syntaxType = "type", description, keysToOmit } = this.options;
|
|
@@ -842,68 +879,20 @@ const printerTs = (0, _kubb_core.definePrinter)((options) => {
|
|
|
842
879
|
};
|
|
843
880
|
});
|
|
844
881
|
//#endregion
|
|
845
|
-
//#region src/components/Type.tsx
|
|
846
|
-
function Type({ name, node, keysToOmit, optionalType, arrayType, syntaxType, enumType, enumTypeSuffix, enumKeyCasing, description, resolver, enumSchemaNames }) {
|
|
847
|
-
const resolvedDescription = description || node?.description;
|
|
848
|
-
const enumSchemaNodes = (0, _kubb_ast.collect)(node, { schema(n) {
|
|
849
|
-
const enumNode = (0, _kubb_ast.narrowSchema)(n, _kubb_ast.schemaTypes.enum);
|
|
850
|
-
if (enumNode?.name) return enumNode;
|
|
851
|
-
} });
|
|
852
|
-
const output = printerTs({
|
|
853
|
-
optionalType,
|
|
854
|
-
arrayType,
|
|
855
|
-
enumType,
|
|
856
|
-
enumTypeSuffix,
|
|
857
|
-
name,
|
|
858
|
-
syntaxType,
|
|
859
|
-
description: resolvedDescription,
|
|
860
|
-
keysToOmit,
|
|
861
|
-
resolver,
|
|
862
|
-
enumSchemaNames
|
|
863
|
-
}).print(node);
|
|
864
|
-
if (!output) return;
|
|
865
|
-
const enums = [...new Map(enumSchemaNodes.map((n) => [n.name, n])).values()].map((node) => {
|
|
866
|
-
return {
|
|
867
|
-
node,
|
|
868
|
-
...getEnumNames({
|
|
869
|
-
node,
|
|
870
|
-
enumType,
|
|
871
|
-
enumTypeSuffix,
|
|
872
|
-
resolver
|
|
873
|
-
})
|
|
874
|
-
};
|
|
875
|
-
});
|
|
876
|
-
const shouldExportEnums = enumType !== "inlineLiteral";
|
|
877
|
-
const shouldExportType = enumType === "inlineLiteral" || enums.every((item) => item.typeName !== name);
|
|
878
|
-
return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric_jsx_runtime.Fragment, { children: [shouldExportEnums && enums.map(({ node }) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(Enum, {
|
|
879
|
-
node,
|
|
880
|
-
enumType,
|
|
881
|
-
enumTypeSuffix,
|
|
882
|
-
enumKeyCasing,
|
|
883
|
-
resolver
|
|
884
|
-
})), shouldExportType && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Source, {
|
|
885
|
-
name,
|
|
886
|
-
isTypeOnly: true,
|
|
887
|
-
isExportable: true,
|
|
888
|
-
isIndexable: true,
|
|
889
|
-
children: output
|
|
890
|
-
})] });
|
|
891
|
-
}
|
|
892
|
-
//#endregion
|
|
893
882
|
//#region src/generators/typeGenerator.tsx
|
|
894
883
|
const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
895
884
|
name: "typescript",
|
|
896
885
|
type: "react",
|
|
897
|
-
Schema({ node, adapter, options, config, resolver }) {
|
|
898
|
-
const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group,
|
|
899
|
-
const transformedNode = (0, _kubb_ast.transform)(node,
|
|
886
|
+
Schema({ node, adapter, options, config, resolver, plugin }) {
|
|
887
|
+
const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, printer } = options;
|
|
888
|
+
const transformedNode = plugin.transformer ? (0, _kubb_ast.transform)(node, plugin.transformer) : node;
|
|
900
889
|
if (!transformedNode.name) return;
|
|
901
890
|
const root = node_path.default.resolve(config.root, config.output.path);
|
|
902
891
|
const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
|
|
903
892
|
const enumSchemaNames = new Set((adapter.rootNode?.schemas ?? []).filter((s) => (0, _kubb_ast.narrowSchema)(s, _kubb_ast.schemaTypes.enum) && s.name).map((s) => s.name));
|
|
904
893
|
function resolveImportName(schemaName) {
|
|
905
894
|
if (ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && enumTypeSuffix && enumSchemaNames.has(schemaName)) return resolver.resolveEnumKeyName({ name: schemaName }, enumTypeSuffix);
|
|
906
|
-
return resolver.
|
|
895
|
+
return resolver.resolveTypeName(schemaName);
|
|
907
896
|
}
|
|
908
897
|
const imports = adapter.getImports(transformedNode, (schemaName) => ({
|
|
909
898
|
name: resolveImportName(schemaName),
|
|
@@ -918,7 +907,7 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
918
907
|
}));
|
|
919
908
|
const isEnumSchema = !!(0, _kubb_ast.narrowSchema)(transformedNode, _kubb_ast.schemaTypes.enum);
|
|
920
909
|
const meta = {
|
|
921
|
-
name: ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyName(transformedNode, enumTypeSuffix) : resolver.
|
|
910
|
+
name: ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyName(transformedNode, enumTypeSuffix) : resolver.resolveTypeName(transformedNode.name),
|
|
922
911
|
file: resolver.resolveFile({
|
|
923
912
|
name: transformedNode.name,
|
|
924
913
|
extname: ".ts"
|
|
@@ -928,6 +917,18 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
928
917
|
group
|
|
929
918
|
})
|
|
930
919
|
};
|
|
920
|
+
const schemaPrinter = printerTs({
|
|
921
|
+
optionalType,
|
|
922
|
+
arrayType,
|
|
923
|
+
enumType,
|
|
924
|
+
enumTypeSuffix,
|
|
925
|
+
name: meta.name,
|
|
926
|
+
syntaxType,
|
|
927
|
+
description: transformedNode.description,
|
|
928
|
+
resolver,
|
|
929
|
+
enumSchemaNames,
|
|
930
|
+
nodes: printer?.nodes
|
|
931
|
+
});
|
|
931
932
|
return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
|
|
932
933
|
baseName: meta.file.baseName,
|
|
933
934
|
path: meta.file.path,
|
|
@@ -955,17 +956,14 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
955
956
|
enumType,
|
|
956
957
|
enumTypeSuffix,
|
|
957
958
|
enumKeyCasing,
|
|
958
|
-
optionalType,
|
|
959
|
-
arrayType,
|
|
960
|
-
syntaxType,
|
|
961
959
|
resolver,
|
|
962
|
-
|
|
960
|
+
printer: schemaPrinter
|
|
963
961
|
})]
|
|
964
962
|
});
|
|
965
963
|
},
|
|
966
|
-
Operation({ node, adapter, options, config, resolver }) {
|
|
967
|
-
const { enumType, enumTypeSuffix, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output,
|
|
968
|
-
const transformedNode = (0, _kubb_ast.transform)(node,
|
|
964
|
+
Operation({ node, adapter, options, config, resolver, plugin }) {
|
|
965
|
+
const { enumType, enumTypeSuffix, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output, printer } = options;
|
|
966
|
+
const transformedNode = plugin.transformer ? (0, _kubb_ast.transform)(node, plugin.transformer) : node;
|
|
969
967
|
const root = node_path.default.resolve(config.root, config.output.path);
|
|
970
968
|
const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
|
|
971
969
|
const params = (0, _kubb_ast.caseParams)(transformedNode.parameters, paramsCasing);
|
|
@@ -982,7 +980,7 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
982
980
|
const enumSchemaNames = new Set((adapter.rootNode?.schemas ?? []).filter((s) => (0, _kubb_ast.narrowSchema)(s, _kubb_ast.schemaTypes.enum) && s.name).map((s) => s.name));
|
|
983
981
|
function resolveImportName(schemaName) {
|
|
984
982
|
if (ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && enumTypeSuffix && enumSchemaNames.has(schemaName)) return resolver.resolveEnumKeyName({ name: schemaName }, enumTypeSuffix);
|
|
985
|
-
return resolver.
|
|
983
|
+
return resolver.resolveTypeName(schemaName);
|
|
986
984
|
}
|
|
987
985
|
function renderSchemaType({ schema, name, keysToOmit }) {
|
|
988
986
|
if (!schema) return null;
|
|
@@ -997,6 +995,19 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
997
995
|
group
|
|
998
996
|
}).path
|
|
999
997
|
}));
|
|
998
|
+
const schemaPrinter = printerTs({
|
|
999
|
+
optionalType,
|
|
1000
|
+
arrayType,
|
|
1001
|
+
enumType,
|
|
1002
|
+
enumTypeSuffix,
|
|
1003
|
+
name,
|
|
1004
|
+
syntaxType,
|
|
1005
|
+
description: schema.description,
|
|
1006
|
+
keysToOmit,
|
|
1007
|
+
resolver,
|
|
1008
|
+
enumSchemaNames,
|
|
1009
|
+
nodes: printer?.nodes
|
|
1010
|
+
});
|
|
1000
1011
|
return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric_jsx_runtime.Fragment, { children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
|
|
1001
1012
|
root: meta.file.path,
|
|
1002
1013
|
path: imp.path,
|
|
@@ -1012,12 +1023,8 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1012
1023
|
enumType,
|
|
1013
1024
|
enumTypeSuffix,
|
|
1014
1025
|
enumKeyCasing,
|
|
1015
|
-
optionalType,
|
|
1016
|
-
arrayType,
|
|
1017
|
-
syntaxType,
|
|
1018
1026
|
resolver,
|
|
1019
|
-
|
|
1020
|
-
enumSchemaNames
|
|
1027
|
+
printer: schemaPrinter
|
|
1021
1028
|
})] });
|
|
1022
1029
|
}
|
|
1023
1030
|
const paramTypes = params.map((param) => renderSchemaType({
|
|
@@ -1080,9 +1087,6 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1080
1087
|
});
|
|
1081
1088
|
//#endregion
|
|
1082
1089
|
//#region src/resolvers/resolverTs.ts
|
|
1083
|
-
function toTypeName(name, type) {
|
|
1084
|
-
return pascalCase(name, { isFile: type === "file" });
|
|
1085
|
-
}
|
|
1086
1090
|
/**
|
|
1087
1091
|
* Resolver for `@kubb/plugin-ts` that provides the default naming and path-resolution
|
|
1088
1092
|
* helpers used by the plugin. Import this in other plugins to resolve the exact names and
|
|
@@ -1105,34 +1109,34 @@ const resolverTs = (0, _kubb_core.defineResolver)(() => {
|
|
|
1105
1109
|
name: "default",
|
|
1106
1110
|
pluginName: "plugin-ts",
|
|
1107
1111
|
default(name, type) {
|
|
1108
|
-
return
|
|
1112
|
+
return pascalCase(name, { isFile: type === "file" });
|
|
1109
1113
|
},
|
|
1110
|
-
|
|
1111
|
-
return
|
|
1114
|
+
resolveTypeName(name) {
|
|
1115
|
+
return pascalCase(name);
|
|
1112
1116
|
},
|
|
1113
1117
|
resolvePathName(name, type) {
|
|
1114
|
-
return
|
|
1118
|
+
return pascalCase(name, { isFile: type === "file" });
|
|
1115
1119
|
},
|
|
1116
1120
|
resolveParamName(node, param) {
|
|
1117
|
-
return this.
|
|
1121
|
+
return this.resolveTypeName(`${node.operationId} ${param.in} ${param.name}`);
|
|
1118
1122
|
},
|
|
1119
1123
|
resolveResponseStatusName(node, statusCode) {
|
|
1120
|
-
return this.
|
|
1124
|
+
return this.resolveTypeName(`${node.operationId} Status ${statusCode}`);
|
|
1121
1125
|
},
|
|
1122
1126
|
resolveDataName(node) {
|
|
1123
|
-
return this.
|
|
1127
|
+
return this.resolveTypeName(`${node.operationId} Data`);
|
|
1124
1128
|
},
|
|
1125
1129
|
resolveRequestConfigName(node) {
|
|
1126
|
-
return this.
|
|
1130
|
+
return this.resolveTypeName(`${node.operationId} RequestConfig`);
|
|
1127
1131
|
},
|
|
1128
1132
|
resolveResponsesName(node) {
|
|
1129
|
-
return this.
|
|
1133
|
+
return this.resolveTypeName(`${node.operationId} Responses`);
|
|
1130
1134
|
},
|
|
1131
1135
|
resolveResponseName(node) {
|
|
1132
|
-
return this.
|
|
1136
|
+
return this.resolveTypeName(`${node.operationId} Response`);
|
|
1133
1137
|
},
|
|
1134
1138
|
resolveEnumKeyName(node, enumTypeSuffix = "key") {
|
|
1135
|
-
return `${this.
|
|
1139
|
+
return `${this.resolveTypeName(node.name ?? "")}${enumTypeSuffix}`;
|
|
1136
1140
|
},
|
|
1137
1141
|
resolvePathParamsName(node, param) {
|
|
1138
1142
|
return this.resolveParamName(node, param);
|
|
@@ -1175,29 +1179,29 @@ const resolverTsLegacy = (0, _kubb_core.defineResolver)(() => {
|
|
|
1175
1179
|
...resolverTs,
|
|
1176
1180
|
pluginName: "plugin-ts",
|
|
1177
1181
|
resolveResponseStatusName(node, statusCode) {
|
|
1178
|
-
if (statusCode === "default") return this.
|
|
1179
|
-
return this.
|
|
1182
|
+
if (statusCode === "default") return this.resolveTypeName(`${node.operationId} Error`);
|
|
1183
|
+
return this.resolveTypeName(`${node.operationId} ${statusCode}`);
|
|
1180
1184
|
},
|
|
1181
1185
|
resolveDataName(node) {
|
|
1182
1186
|
const suffix = node.method === "GET" ? "QueryRequest" : "MutationRequest";
|
|
1183
|
-
return this.
|
|
1187
|
+
return this.resolveTypeName(`${node.operationId} ${suffix}`);
|
|
1184
1188
|
},
|
|
1185
1189
|
resolveResponsesName(node) {
|
|
1186
1190
|
const suffix = node.method === "GET" ? "Query" : "Mutation";
|
|
1187
|
-
return this.
|
|
1191
|
+
return this.resolveTypeName(`${node.operationId} ${suffix}`);
|
|
1188
1192
|
},
|
|
1189
1193
|
resolveResponseName(node) {
|
|
1190
1194
|
const suffix = node.method === "GET" ? "QueryResponse" : "MutationResponse";
|
|
1191
|
-
return this.
|
|
1195
|
+
return this.resolveTypeName(`${node.operationId} ${suffix}`);
|
|
1192
1196
|
},
|
|
1193
1197
|
resolvePathParamsName(node, _param) {
|
|
1194
|
-
return this.
|
|
1198
|
+
return this.resolveTypeName(`${node.operationId} PathParams`);
|
|
1195
1199
|
},
|
|
1196
1200
|
resolveQueryParamsName(node, _param) {
|
|
1197
|
-
return this.
|
|
1201
|
+
return this.resolveTypeName(`${node.operationId} QueryParams`);
|
|
1198
1202
|
},
|
|
1199
1203
|
resolveHeaderParamsName(node, _param) {
|
|
1200
|
-
return this.
|
|
1204
|
+
return this.resolveTypeName(`${node.operationId} HeaderParams`);
|
|
1201
1205
|
}
|
|
1202
1206
|
};
|
|
1203
1207
|
});
|
|
@@ -1356,14 +1360,14 @@ function nameUnnamedEnums(node, parentName) {
|
|
|
1356
1360
|
const typeGeneratorLegacy = (0, _kubb_core.defineGenerator)({
|
|
1357
1361
|
name: "typescript-legacy",
|
|
1358
1362
|
type: "react",
|
|
1359
|
-
Schema({ node, adapter, options, config, resolver }) {
|
|
1360
|
-
const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group
|
|
1361
|
-
const transformedNode = (0, _kubb_ast.transform)(node,
|
|
1363
|
+
Schema({ node, adapter, options, config, resolver, plugin }) {
|
|
1364
|
+
const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group } = options;
|
|
1365
|
+
const transformedNode = plugin.transformer ? (0, _kubb_ast.transform)(node, plugin.transformer) : node;
|
|
1362
1366
|
if (!transformedNode.name) return;
|
|
1363
1367
|
const root = node_path.default.resolve(config.root, config.output.path);
|
|
1364
1368
|
const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
|
|
1365
1369
|
const imports = adapter.getImports(transformedNode, (schemaName) => ({
|
|
1366
|
-
name: resolver.
|
|
1370
|
+
name: resolver.resolveTypeName(schemaName),
|
|
1367
1371
|
path: resolver.resolveFile({
|
|
1368
1372
|
name: schemaName,
|
|
1369
1373
|
extname: ".ts"
|
|
@@ -1375,7 +1379,7 @@ const typeGeneratorLegacy = (0, _kubb_core.defineGenerator)({
|
|
|
1375
1379
|
}));
|
|
1376
1380
|
const isEnumSchema = !!(0, _kubb_ast.narrowSchema)(transformedNode, _kubb_ast.schemaTypes.enum);
|
|
1377
1381
|
const meta = {
|
|
1378
|
-
name: ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyName(transformedNode, enumTypeSuffix) : resolver.
|
|
1382
|
+
name: ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyName(transformedNode, enumTypeSuffix) : resolver.resolveTypeName(transformedNode.name),
|
|
1379
1383
|
file: resolver.resolveFile({
|
|
1380
1384
|
name: transformedNode.name,
|
|
1381
1385
|
extname: ".ts"
|
|
@@ -1385,6 +1389,16 @@ const typeGeneratorLegacy = (0, _kubb_core.defineGenerator)({
|
|
|
1385
1389
|
group
|
|
1386
1390
|
})
|
|
1387
1391
|
};
|
|
1392
|
+
const schemaPrinter = printerTs({
|
|
1393
|
+
optionalType,
|
|
1394
|
+
arrayType,
|
|
1395
|
+
enumType,
|
|
1396
|
+
enumTypeSuffix,
|
|
1397
|
+
name: meta.name,
|
|
1398
|
+
syntaxType,
|
|
1399
|
+
description: transformedNode.description,
|
|
1400
|
+
resolver
|
|
1401
|
+
});
|
|
1388
1402
|
return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
|
|
1389
1403
|
baseName: meta.file.baseName,
|
|
1390
1404
|
path: meta.file.path,
|
|
@@ -1412,16 +1426,14 @@ const typeGeneratorLegacy = (0, _kubb_core.defineGenerator)({
|
|
|
1412
1426
|
enumType,
|
|
1413
1427
|
enumTypeSuffix,
|
|
1414
1428
|
enumKeyCasing,
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
syntaxType,
|
|
1418
|
-
resolver
|
|
1429
|
+
resolver,
|
|
1430
|
+
printer: schemaPrinter
|
|
1419
1431
|
})]
|
|
1420
1432
|
});
|
|
1421
1433
|
},
|
|
1422
|
-
Operation({ node, adapter, options, config, resolver }) {
|
|
1423
|
-
const { enumType, enumTypeSuffix, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output
|
|
1424
|
-
const transformedNode = (0, _kubb_ast.transform)(node,
|
|
1434
|
+
Operation({ node, adapter, options, config, resolver, plugin }) {
|
|
1435
|
+
const { enumType, enumTypeSuffix, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output } = options;
|
|
1436
|
+
const transformedNode = plugin.transformer ? (0, _kubb_ast.transform)(node, plugin.transformer) : node;
|
|
1425
1437
|
const root = node_path.default.resolve(config.root, config.output.path);
|
|
1426
1438
|
const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
|
|
1427
1439
|
const params = (0, _kubb_ast.caseParams)(node.parameters, paramsCasing);
|
|
@@ -1438,7 +1450,7 @@ const typeGeneratorLegacy = (0, _kubb_core.defineGenerator)({
|
|
|
1438
1450
|
function renderSchemaType({ schema, name, description, keysToOmit }) {
|
|
1439
1451
|
if (!schema) return null;
|
|
1440
1452
|
const imports = adapter.getImports(schema, (schemaName) => ({
|
|
1441
|
-
name: resolver.
|
|
1453
|
+
name: resolver.resolveTypeName(schemaName),
|
|
1442
1454
|
path: resolver.resolveFile({
|
|
1443
1455
|
name: schemaName,
|
|
1444
1456
|
extname: ".ts"
|
|
@@ -1448,6 +1460,17 @@ const typeGeneratorLegacy = (0, _kubb_core.defineGenerator)({
|
|
|
1448
1460
|
group
|
|
1449
1461
|
}).path
|
|
1450
1462
|
}));
|
|
1463
|
+
const opPrinter = printerTs({
|
|
1464
|
+
optionalType,
|
|
1465
|
+
arrayType,
|
|
1466
|
+
enumType,
|
|
1467
|
+
enumTypeSuffix,
|
|
1468
|
+
name,
|
|
1469
|
+
syntaxType,
|
|
1470
|
+
description,
|
|
1471
|
+
keysToOmit,
|
|
1472
|
+
resolver
|
|
1473
|
+
});
|
|
1451
1474
|
return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric_jsx_runtime.Fragment, { children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
|
|
1452
1475
|
root: meta.file.path,
|
|
1453
1476
|
path: imp.path,
|
|
@@ -1460,15 +1483,11 @@ const typeGeneratorLegacy = (0, _kubb_core.defineGenerator)({
|
|
|
1460
1483
|
].join("-"))), /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(Type, {
|
|
1461
1484
|
name,
|
|
1462
1485
|
node: schema,
|
|
1463
|
-
description,
|
|
1464
1486
|
enumType,
|
|
1465
1487
|
enumTypeSuffix,
|
|
1466
1488
|
enumKeyCasing,
|
|
1467
|
-
optionalType,
|
|
1468
|
-
arrayType,
|
|
1469
|
-
syntaxType,
|
|
1470
1489
|
resolver,
|
|
1471
|
-
|
|
1490
|
+
printer: opPrinter
|
|
1472
1491
|
})] });
|
|
1473
1492
|
}
|
|
1474
1493
|
const pathParams = params.filter((p) => p.in === "path");
|
|
@@ -1554,13 +1573,15 @@ const typeGeneratorLegacy = (0, _kubb_core.defineGenerator)({
|
|
|
1554
1573
|
const presets = (0, _kubb_core.definePresets)({
|
|
1555
1574
|
default: {
|
|
1556
1575
|
name: "default",
|
|
1557
|
-
|
|
1558
|
-
generators: [typeGenerator]
|
|
1576
|
+
resolver: resolverTs,
|
|
1577
|
+
generators: [typeGenerator],
|
|
1578
|
+
printer: printerTs
|
|
1559
1579
|
},
|
|
1560
1580
|
kubbV4: {
|
|
1561
1581
|
name: "kubbV4",
|
|
1562
|
-
|
|
1563
|
-
generators: [typeGeneratorLegacy]
|
|
1582
|
+
resolver: resolverTsLegacy,
|
|
1583
|
+
generators: [typeGeneratorLegacy],
|
|
1584
|
+
printer: printerTs
|
|
1564
1585
|
}
|
|
1565
1586
|
});
|
|
1566
1587
|
//#endregion
|
|
@@ -1589,12 +1610,12 @@ const pluginTs = (0, _kubb_core.createPlugin)((options) => {
|
|
|
1589
1610
|
const { output = {
|
|
1590
1611
|
path: "types",
|
|
1591
1612
|
barrelType: "named"
|
|
1592
|
-
}, group, exclude = [], include, override = [], enumType = "asConst", enumTypeSuffix = "Key", enumKeyCasing = "none", optionalType = "questionToken", arrayType = "array", syntaxType = "type", paramsCasing, compatibilityPreset = "default",
|
|
1613
|
+
}, group, exclude = [], include, override = [], enumType = "asConst", enumTypeSuffix = "Key", enumKeyCasing = "none", optionalType = "questionToken", arrayType = "array", syntaxType = "type", paramsCasing, printer, compatibilityPreset = "default", resolver: userResolver, transformer: userTransformer, generators: userGenerators = [] } = options;
|
|
1593
1614
|
const preset = (0, _kubb_core.getPreset)({
|
|
1594
1615
|
preset: compatibilityPreset,
|
|
1595
1616
|
presets,
|
|
1596
|
-
|
|
1597
|
-
|
|
1617
|
+
resolver: userResolver,
|
|
1618
|
+
transformer: userTransformer,
|
|
1598
1619
|
generators: userGenerators
|
|
1599
1620
|
});
|
|
1600
1621
|
let resolveNameWarning = false;
|
|
@@ -1604,6 +1625,9 @@ const pluginTs = (0, _kubb_core.createPlugin)((options) => {
|
|
|
1604
1625
|
get resolver() {
|
|
1605
1626
|
return preset.resolver;
|
|
1606
1627
|
},
|
|
1628
|
+
get transformer() {
|
|
1629
|
+
return preset.transformer;
|
|
1630
|
+
},
|
|
1607
1631
|
get options() {
|
|
1608
1632
|
return {
|
|
1609
1633
|
output,
|
|
@@ -1621,7 +1645,7 @@ const pluginTs = (0, _kubb_core.createPlugin)((options) => {
|
|
|
1621
1645
|
enumKeyCasing,
|
|
1622
1646
|
syntaxType,
|
|
1623
1647
|
paramsCasing,
|
|
1624
|
-
|
|
1648
|
+
printer
|
|
1625
1649
|
};
|
|
1626
1650
|
},
|
|
1627
1651
|
resolvePath(baseName, pathMode, options) {
|
|
@@ -1747,7 +1771,8 @@ const functionPrinter = defineFunctionPrinter((options) => ({
|
|
|
1747
1771
|
if (node.variant === "member") return `${node.base}['${node.key}']`;
|
|
1748
1772
|
if (node.variant === "struct") return `{ ${node.properties.map((p) => {
|
|
1749
1773
|
const typeStr = this.transform(p.type);
|
|
1750
|
-
|
|
1774
|
+
const key = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(p.name) ? p.name : JSON.stringify(p.name);
|
|
1775
|
+
return p.optional ? `${key}?: ${typeStr}` : `${key}: ${typeStr}`;
|
|
1751
1776
|
}).join("; ")} }`;
|
|
1752
1777
|
if (node.variant === "reference") return node.name;
|
|
1753
1778
|
return null;
|