typedapi-client-helpers 0.2.1 → 0.3.0

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.
Files changed (124) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +221 -220
  3. package/dist/cjs/httpClient.js +258 -0
  4. package/dist/cjs/httpClient.js.map +1 -0
  5. package/dist/cjs/index.js +32 -0
  6. package/dist/cjs/index.js.map +1 -0
  7. package/dist/cjs/interfaces/ApiResult.js +3 -0
  8. package/dist/cjs/interfaces/ApiResult.js.map +1 -0
  9. package/dist/cjs/interfaces/Filter.js +3 -0
  10. package/dist/cjs/interfaces/Filter.js.map +1 -0
  11. package/dist/cjs/interfaces/SortType.js +3 -0
  12. package/dist/cjs/interfaces/SortType.js.map +1 -0
  13. package/dist/cjs/package.json +3 -0
  14. package/dist/cjs/types/ApiCallOptions.js +3 -0
  15. package/dist/cjs/types/ApiCallOptions.js.map +1 -0
  16. package/dist/cjs/types/ApiMethodArguments.js +3 -0
  17. package/dist/cjs/types/ApiMethodArguments.js.map +1 -0
  18. package/dist/cjs/types/ApiMethodOptions.js +3 -0
  19. package/dist/cjs/types/ApiMethodOptions.js.map +1 -0
  20. package/dist/cjs/types/ApiMethodTypes.js +3 -0
  21. package/dist/cjs/types/ApiMethodTypes.js.map +1 -0
  22. package/dist/cjs/types/HttpResponse.js +3 -0
  23. package/dist/cjs/types/HttpResponse.js.map +1 -0
  24. package/dist/cjs/types/httpClientTypes.js +3 -0
  25. package/dist/cjs/types/httpClientTypes.js.map +1 -0
  26. package/dist/cjs/utils/SortTypeFromSortDirection.js +43 -0
  27. package/dist/cjs/utils/SortTypeFromSortDirection.js.map +1 -0
  28. package/dist/cjs/utils/buildQuery.js +96 -0
  29. package/dist/cjs/utils/buildQuery.js.map +1 -0
  30. package/dist/cjs/utils/extractArgsCallbacksAndParams.js +51 -0
  31. package/dist/cjs/utils/extractArgsCallbacksAndParams.js.map +1 -0
  32. package/dist/cjs/utils/extractArgsToastsAndParams.js +49 -0
  33. package/dist/cjs/utils/extractArgsToastsAndParams.js.map +1 -0
  34. package/dist/cjs/utils/handleApiResponse.js +124 -0
  35. package/dist/cjs/utils/handleApiResponse.js.map +1 -0
  36. package/dist/cjs/utils/toFormData.js +58 -0
  37. package/dist/cjs/utils/toFormData.js.map +1 -0
  38. package/dist/cjs/utils/wireMapping.js +123 -0
  39. package/dist/cjs/utils/wireMapping.js.map +1 -0
  40. package/dist/esm/httpClient.js +251 -0
  41. package/dist/esm/httpClient.js.map +1 -0
  42. package/dist/esm/index.js +16 -0
  43. package/dist/esm/index.js.map +1 -0
  44. package/dist/esm/interfaces/ApiResult.js +2 -0
  45. package/dist/esm/interfaces/ApiResult.js.map +1 -0
  46. package/dist/esm/interfaces/Filter.js +2 -0
  47. package/dist/esm/interfaces/Filter.js.map +1 -0
  48. package/dist/esm/interfaces/SortType.js +2 -0
  49. package/dist/esm/interfaces/SortType.js.map +1 -0
  50. package/dist/esm/types/ApiCallOptions.js +2 -0
  51. package/dist/esm/types/ApiCallOptions.js.map +1 -0
  52. package/dist/esm/types/ApiMethodArguments.js +2 -0
  53. package/dist/esm/types/ApiMethodArguments.js.map +1 -0
  54. package/dist/esm/types/ApiMethodOptions.js +2 -0
  55. package/dist/esm/types/ApiMethodOptions.js.map +1 -0
  56. package/dist/esm/types/ApiMethodTypes.js +2 -0
  57. package/dist/esm/types/ApiMethodTypes.js.map +1 -0
  58. package/dist/esm/types/HttpResponse.js +2 -0
  59. package/dist/esm/types/HttpResponse.js.map +1 -0
  60. package/dist/esm/types/httpClientTypes.js +2 -0
  61. package/dist/esm/types/httpClientTypes.js.map +1 -0
  62. package/dist/esm/utils/SortTypeFromSortDirection.js +38 -0
  63. package/dist/esm/utils/SortTypeFromSortDirection.js.map +1 -0
  64. package/dist/esm/utils/buildQuery.js +93 -0
  65. package/dist/esm/utils/buildQuery.js.map +1 -0
  66. package/dist/esm/utils/extractArgsCallbacksAndParams.js +48 -0
  67. package/dist/esm/utils/extractArgsCallbacksAndParams.js.map +1 -0
  68. package/dist/esm/utils/extractArgsToastsAndParams.js +46 -0
  69. package/dist/esm/utils/extractArgsToastsAndParams.js.map +1 -0
  70. package/dist/esm/utils/handleApiResponse.js +121 -0
  71. package/dist/esm/utils/handleApiResponse.js.map +1 -0
  72. package/dist/esm/utils/toFormData.js +55 -0
  73. package/dist/esm/utils/toFormData.js.map +1 -0
  74. package/dist/esm/utils/wireMapping.js +119 -0
  75. package/dist/esm/utils/wireMapping.js.map +1 -0
  76. package/dist/types/httpClient.d.ts +63 -0
  77. package/dist/types/httpClient.d.ts.map +1 -0
  78. package/dist/types/index.d.ts +16 -0
  79. package/dist/types/index.d.ts.map +1 -0
  80. package/dist/types/interfaces/ApiResult.d.ts +32 -0
  81. package/dist/types/interfaces/ApiResult.d.ts.map +1 -0
  82. package/dist/types/interfaces/Filter.d.ts +31 -0
  83. package/dist/types/interfaces/Filter.d.ts.map +1 -0
  84. package/dist/types/interfaces/SortType.d.ts +7 -0
  85. package/dist/types/interfaces/SortType.d.ts.map +1 -0
  86. package/dist/types/types/ApiCallOptions.d.ts +26 -0
  87. package/dist/types/types/ApiCallOptions.d.ts.map +1 -0
  88. package/dist/types/types/ApiMethodArguments.d.ts +6 -0
  89. package/dist/types/types/ApiMethodArguments.d.ts.map +1 -0
  90. package/dist/types/types/ApiMethodOptions.d.ts +8 -0
  91. package/dist/types/types/ApiMethodOptions.d.ts.map +1 -0
  92. package/dist/types/types/ApiMethodTypes.d.ts +47 -0
  93. package/dist/types/types/ApiMethodTypes.d.ts.map +1 -0
  94. package/dist/types/types/HttpResponse.d.ts +2 -0
  95. package/dist/types/types/HttpResponse.d.ts.map +1 -0
  96. package/dist/types/types/httpClientTypes.d.ts +2 -0
  97. package/dist/types/types/httpClientTypes.d.ts.map +1 -0
  98. package/dist/types/utils/SortTypeFromSortDirection.d.ts +13 -0
  99. package/dist/types/utils/SortTypeFromSortDirection.d.ts.map +1 -0
  100. package/dist/types/utils/buildQuery.d.ts +16 -0
  101. package/dist/types/utils/buildQuery.d.ts.map +1 -0
  102. package/dist/types/utils/extractArgsCallbacksAndParams.d.ts +22 -0
  103. package/dist/types/utils/extractArgsCallbacksAndParams.d.ts.map +1 -0
  104. package/dist/types/utils/extractArgsToastsAndParams.d.ts +20 -0
  105. package/dist/types/utils/extractArgsToastsAndParams.d.ts.map +1 -0
  106. package/dist/types/utils/handleApiResponse.d.ts +11 -0
  107. package/dist/types/utils/handleApiResponse.d.ts.map +1 -0
  108. package/dist/types/utils/toFormData.d.ts +10 -0
  109. package/dist/types/utils/toFormData.d.ts.map +1 -0
  110. package/dist/types/utils/wireMapping.d.ts +30 -0
  111. package/dist/types/utils/wireMapping.d.ts.map +1 -0
  112. package/package.json +90 -84
  113. package/scripts/build.mjs +74 -0
  114. package/scripts/generate-api-minimal.mjs +568 -476
  115. package/scripts/openapi-generator/controller-template.mjs +1 -1
  116. package/scripts/openapi-generator/index.mjs +357 -113
  117. package/scripts/openapi-generator/method-template.mjs +201 -244
  118. package/scripts/openapi-generator/names.mjs +37 -86
  119. package/scripts/openapi-generator/openapi-utils.mjs +411 -147
  120. package/scripts/openapi-generator/schema.mjs +518 -238
  121. package/dist/index.cjs +0 -536
  122. package/dist/index.d.cts +0 -285
  123. package/dist/index.d.ts +0 -285
  124. package/dist/index.js +0 -495
@@ -1,78 +1,14 @@
1
1
  const reservedWords = new Set([
2
- "abstract",
3
- "any",
4
- "as",
5
- "asserts",
6
- "async",
7
- "await",
8
- "boolean",
9
- "break",
10
- "case",
11
- "catch",
12
- "class",
13
- "const",
14
- "constructor",
15
- "continue",
16
- "debugger",
17
- "declare",
18
- "default",
19
- "delete",
20
- "do",
21
- "else",
22
- "enum",
23
- "export",
24
- "extends",
25
- "false",
26
- "finally",
27
- "for",
28
- "from",
29
- "function",
30
- "get",
31
- "if",
32
- "implements",
33
- "import",
34
- "in",
35
- "infer",
36
- "instanceof",
37
- "interface",
38
- "is",
39
- "keyof",
40
- "let",
41
- "module",
42
- "namespace",
43
- "never",
44
- "new",
45
- "null",
46
- "number",
47
- "object",
48
- "of",
49
- "package",
50
- "private",
51
- "protected",
52
- "public",
53
- "readonly",
54
- "require",
55
- "return",
56
- "set",
57
- "static",
58
- "string",
59
- "super",
60
- "switch",
61
- "symbol",
62
- "this",
63
- "throw",
64
- "true",
65
- "try",
66
- "type",
67
- "typeof",
68
- "undefined",
69
- "unique",
70
- "unknown",
71
- "var",
72
- "void",
73
- "while",
74
- "with",
75
- "yield",
2
+ "abstract", "any", "as", "asserts", "async", "await", "boolean", "break",
3
+ "case", "catch", "class", "const", "constructor", "continue", "debugger",
4
+ "declare", "default", "delete", "do", "else", "enum", "export", "extends",
5
+ "false", "finally", "for", "from", "function", "get", "if", "implements",
6
+ "import", "in", "infer", "instanceof", "interface", "is", "keyof", "let",
7
+ "module", "namespace", "never", "new", "null", "number", "object", "of",
8
+ "package", "private", "protected", "public", "readonly", "require", "return",
9
+ "set", "static", "string", "super", "switch", "symbol", "this", "throw",
10
+ "true", "try", "type", "typeof", "undefined", "unique", "unknown", "var",
11
+ "void", "while", "with", "yield",
76
12
  ]);
77
13
 
78
14
  export function pascalCase(value, fallback = "Anonymous") {
@@ -86,12 +22,14 @@ export function pascalCase(value, fallback = "Anonymous") {
86
22
  .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
87
23
  .join("");
88
24
 
89
- return name || fallback;
25
+ const resolved = name || fallback;
26
+ return /^[0-9]/.test(resolved) ? `_${resolved}` : resolved;
90
27
  }
91
28
 
92
29
  export function camelCase(value, fallback = "value") {
93
30
  const pascal = pascalCase(value, pascalCase(fallback));
94
- return pascal.charAt(0).toLowerCase() + pascal.slice(1);
31
+ const candidate = pascal.charAt(0).toLowerCase() + pascal.slice(1);
32
+ return sanitizeIdentifier(candidate, fallback);
95
33
  }
96
34
 
97
35
  export function lowerFirst(value) {
@@ -99,22 +37,35 @@ export function lowerFirst(value) {
99
37
  return text.charAt(0).toLowerCase() + text.slice(1);
100
38
  }
101
39
 
40
+ /**
41
+ * Converts an OpenAPI member name to the public TypeScript member name.
42
+ * Only the first character is lowercased; the remainder is preserved exactly.
43
+ */
44
+ export function typePropertyName(value) {
45
+ return lowerFirst(value);
46
+ }
47
+
48
+ /** Returns a safe bracket-access expression for a generated member. */
49
+ export function propertyAccess(baseExpression, value) {
50
+ return `${baseExpression}[${JSON.stringify(typePropertyName(value))}]`;
51
+ }
52
+
102
53
  export function sanitizeIdentifier(value, fallback = "value") {
103
54
  let name = String(value ?? "").replace(/[^A-Za-z0-9_$]/g, "_");
104
55
 
105
- if (!name) {
106
- name = fallback;
107
- }
56
+ if (!name) name = fallback;
57
+ if (/^[0-9]/.test(name)) name = `_${name}`;
58
+ if (reservedWords.has(name)) name = `${name}_`;
108
59
 
109
- if (/^[0-9]/.test(name)) {
110
- name = `_${name}`;
111
- }
60
+ return name;
61
+ }
112
62
 
113
- if (reservedWords.has(name)) {
114
- name = `${name}_`;
115
- }
63
+ export function operationTypeName(value) {
64
+ return sanitizeIdentifier(pascalCase(value, "Operation"), "Operation");
65
+ }
116
66
 
117
- return name;
67
+ export function operationMethodName(value) {
68
+ return camelCase(value, "operation");
118
69
  }
119
70
 
120
71
  export function propertyKey(value) {