@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 +21 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +97 -34
- package/dist/index.js +21 -9
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/Enum.tsx +1 -6
- package/src/components/Type.tsx +8 -0
- package/src/generators/typeGenerator.tsx +26 -2
- package/src/printers/printerTs.ts +17 -1
- package/src/types.ts +88 -33
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:
|
|
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:
|
|
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
|
}
|