@acrool/rtk-query-codegen-openapi 1.4.0-alpha.0 → 1.4.0-alpha.1

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/lib/index.js CHANGED
@@ -514,6 +514,27 @@ function renameIdentifier(node, oldName, newName) {
514
514
  })
515
515
  ]).transformed[0];
516
516
  }
517
+ function isStringEnumType(node) {
518
+ if (!import_typescript.default.isUnionTypeNode(node.type)) return null;
519
+ const members = [];
520
+ for (const member of node.type.types) {
521
+ if (import_typescript.default.isLiteralTypeNode(member) && import_typescript.default.isStringLiteral(member.literal)) {
522
+ members.push(member.literal.text);
523
+ } else {
524
+ return null;
525
+ }
526
+ }
527
+ return members.length > 0 ? members : null;
528
+ }
529
+ function generateEnumDeclaration(name, members) {
530
+ const enumMembers = members.map((value) => {
531
+ const key = value.charAt(0).toUpperCase() + value.slice(1);
532
+ return ` ${key} = "${value}"`;
533
+ });
534
+ return `export enum ${name} {
535
+ ${enumMembers.join(",\n")}
536
+ }`;
537
+ }
517
538
  function generateComponentSchemaFile(interfaces, includeOnly) {
518
539
  const printer = import_typescript.default.createPrinter({ newLine: import_typescript.default.NewLineKind.LineFeed });
519
540
  const resultFile = import_typescript.default.createSourceFile(
@@ -531,6 +552,13 @@ function generateComponentSchemaFile(interfaces, includeOnly) {
531
552
  if (includeOnly && !includeOnly.has(originalName)) {
532
553
  return;
533
554
  }
555
+ if (import_typescript.default.isTypeAliasDeclaration(node)) {
556
+ const enumMembers = isStringEnumType(node);
557
+ if (enumMembers) {
558
+ renamedInterfaces.push(generateEnumDeclaration(pascalCaseName, enumMembers));
559
+ return;
560
+ }
561
+ }
534
562
  const renamedNode = renameIdentifier(node, originalName, pascalCaseName);
535
563
  const printed = printer.printNode(import_typescript.default.EmitHint.Unspecified, renamedNode, resultFile);
536
564
  renamedInterfaces.push(printed);
@@ -708,6 +736,27 @@ function prefixSharedSchemaRefs(node, allSchemaNames, localSchemaNames, declarat
708
736
  })
709
737
  ]).transformed[0];
710
738
  }
739
+ function isStringEnumType2(node) {
740
+ if (!import_typescript2.default.isUnionTypeNode(node.type)) return null;
741
+ const members = [];
742
+ for (const member of node.type.types) {
743
+ if (import_typescript2.default.isLiteralTypeNode(member) && import_typescript2.default.isStringLiteral(member.literal)) {
744
+ members.push(member.literal.text);
745
+ } else {
746
+ return null;
747
+ }
748
+ }
749
+ return members.length > 0 ? members : null;
750
+ }
751
+ function generateEnumDeclaration2(name, members) {
752
+ const enumMembers = members.map((value) => {
753
+ const key = value.charAt(0).toUpperCase() + value.slice(1);
754
+ return ` ${key} = "${value}"`;
755
+ });
756
+ return `export enum ${name} {
757
+ ${enumMembers.join(",\n")}
758
+ }`;
759
+ }
711
760
  function generateTypesFile(endpointInfos, _options, schemaInterfaces, operationDefinitions, localSchemaOptions) {
712
761
  const localSchemaNames = localSchemaOptions?.localSchemaNames ?? /* @__PURE__ */ new Set();
713
762
  const localSchemaInterfaces = localSchemaOptions?.localSchemaInterfaces ?? {};
@@ -745,6 +794,13 @@ function generateTypesFile(endpointInfos, _options, schemaInterfaces, operationD
745
794
  const allSchemaNameSet = new Set(schemaInterfaces ? Object.keys(schemaInterfaces) : []);
746
795
  for (const [originalName, node] of Object.entries(localSchemaInterfaces)) {
747
796
  const pascalCaseName = toPascalCase2(originalName);
797
+ if (import_typescript2.default.isTypeAliasDeclaration(node)) {
798
+ const enumMembers = isStringEnumType2(node);
799
+ if (enumMembers) {
800
+ localTypeDefs.push(generateEnumDeclaration2(pascalCaseName, enumMembers));
801
+ continue;
802
+ }
803
+ }
748
804
  let transformedNode = renameIdentifier2(node, originalName, pascalCaseName);
749
805
  transformedNode = prefixSharedSchemaRefs(transformedNode, allSchemaNameSet, localSchemaNames, pascalCaseName);
750
806
  const printed = printer.printNode(import_typescript2.default.EmitHint.Unspecified, transformedNode, resultFile);