@kubb/plugin-client 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
@@ -300,12 +300,13 @@ var URLPath = class {
300
300
  * @example
301
301
  * new URLPath('/pet/{petId}').toTemplateString() // '`/pet/${petId}`'
302
302
  */
303
- toTemplateString({ prefix = "", replacer } = {}) {
304
- return `\`${prefix}${this.path.split(/\{([^}]+)\}/).map((part, i) => {
303
+ toTemplateString({ prefix, replacer } = {}) {
304
+ const result = this.path.split(/\{([^}]+)\}/).map((part, i) => {
305
305
  if (i % 2 === 0) return part;
306
306
  const param = this.#transformParam(part);
307
307
  return `\${${replacer ? replacer(param) : param}}`;
308
- }).join("")}\``;
308
+ }).join("");
309
+ return `\`${prefix ?? ""}${result}\``;
309
310
  }
310
311
  /**
311
312
  * Extracts all `{param}` segments from the path and returns them as a key-value map.
@@ -401,7 +402,17 @@ function resolveErrorNames(node, resolver) {
401
402
  function resolveStatusCodeNames(node, resolver) {
402
403
  return node.responses.map((response) => resolver.resolveResponseStatusName(node, response.statusCode));
403
404
  }
405
+ const typeNamesByResolver = /* @__PURE__ */ new WeakMap();
404
406
  function resolveOperationTypeNames(node, resolver, options = {}) {
407
+ const cacheKey = `${node.operationId}\0${options.paramsCasing ?? ""}\0${options.order ?? ""}\0${options.responseStatusNames ?? ""}\0${(options.exclude ?? []).join(",")}`;
408
+ let byResolver = typeNamesByResolver.get(resolver);
409
+ if (byResolver) {
410
+ const cached = byResolver.get(cacheKey);
411
+ if (cached) return cached;
412
+ } else {
413
+ byResolver = /* @__PURE__ */ new Map();
414
+ typeNamesByResolver.set(resolver, byResolver);
415
+ }
405
416
  const { path, query, header } = getOperationParameters(node, { paramsCasing: options.paramsCasing });
406
417
  const responseStatusNames = options.responseStatusNames === "error" ? resolveErrorNames(node, resolver) : options.responseStatusNames === false ? [] : resolveStatusCodeNames(node, resolver);
407
418
  const exclude = new Set(options.exclude ?? []);
@@ -411,7 +422,7 @@ function resolveOperationTypeNames(node, resolver, options = {}) {
411
422
  ...header.map((param) => resolver.resolveHeaderParamsName(node, param))
412
423
  ];
413
424
  const bodyAndResponseNames = [node.requestBody?.content?.[0]?.schema ? resolver.resolveDataName(node) : void 0, resolver.resolveResponseName(node)];
414
- return (options.order === "body-response-first" ? [
425
+ const result = (options.order === "body-response-first" ? [
415
426
  ...bodyAndResponseNames,
416
427
  ...paramNames,
417
428
  ...responseStatusNames
@@ -420,6 +431,8 @@ function resolveOperationTypeNames(node, resolver, options = {}) {
420
431
  ...bodyAndResponseNames,
421
432
  ...responseStatusNames
422
433
  ]).filter((name) => Boolean(name) && !exclude.has(name));
434
+ byResolver.set(cacheKey, result);
435
+ return result;
423
436
  }
424
437
  //#endregion
425
438
  //#region ../../internals/shared/src/params.ts
@@ -854,11 +867,11 @@ function resolveZodImportNames$1(node, zodResolver) {
854
867
  require_chunk.__name(resolveZodImportNames$1, "resolveZodImportNames");
855
868
  const classClientGenerator = (0, _kubb_core.defineGenerator)({
856
869
  name: "classClient",
857
- renderer: _kubb_renderer_jsx.jsxRenderer,
870
+ renderer: _kubb_renderer_jsx.jsxRendererSync,
858
871
  operations(nodes, ctx) {
859
- const { adapter, config, driver, resolver, root } = ctx;
872
+ const { config, driver, resolver, root } = ctx;
860
873
  const { output, group, dataReturnType, paramsCasing, paramsType, pathParamsType, parser, importPath, sdk } = ctx.options;
861
- const baseURL = ctx.options.baseURL ?? adapter.inputNode?.meta?.baseURL;
874
+ const baseURL = ctx.options.baseURL ?? ctx.meta.baseURL;
862
875
  const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
863
876
  if (!pluginTs) return null;
864
877
  const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
@@ -917,7 +930,9 @@ const classClientGenerator = (0, _kubb_core.defineGenerator)({
917
930
  file,
918
931
  operations: [operationData]
919
932
  });
920
- } else if (tag) {
933
+ return acc;
934
+ }
935
+ if (tag) {
921
936
  const name = groupName;
922
937
  const file = resolver.resolveFile({
923
938
  name,
@@ -986,11 +1001,11 @@ const classClientGenerator = (0, _kubb_core.defineGenerator)({
986
1001
  baseName: file.baseName,
987
1002
  path: file.path,
988
1003
  meta: file.meta,
989
- banner: resolver.resolveBanner(adapter.inputNode, {
1004
+ banner: resolver.resolveBanner(ctx.meta, {
990
1005
  output,
991
1006
  config
992
1007
  }),
993
- footer: resolver.resolveFooter(adapter.inputNode, {
1008
+ footer: resolver.resolveFooter(ctx.meta, {
994
1009
  output,
995
1010
  config
996
1011
  }),
@@ -1089,11 +1104,11 @@ const classClientGenerator = (0, _kubb_core.defineGenerator)({
1089
1104
  baseName: sdkFile.baseName,
1090
1105
  path: sdkFile.path,
1091
1106
  meta: sdkFile.meta,
1092
- banner: resolver.resolveBanner(adapter.inputNode, {
1107
+ banner: resolver.resolveBanner(ctx.meta, {
1093
1108
  output,
1094
1109
  config
1095
1110
  }),
1096
- footer: resolver.resolveFooter(adapter.inputNode, {
1111
+ footer: resolver.resolveFooter(ctx.meta, {
1097
1112
  output,
1098
1113
  config
1099
1114
  }),
@@ -1130,11 +1145,11 @@ const classClientGenerator = (0, _kubb_core.defineGenerator)({
1130
1145
  //#region src/generators/clientGenerator.tsx
1131
1146
  const clientGenerator = (0, _kubb_core.defineGenerator)({
1132
1147
  name: "client",
1133
- renderer: _kubb_renderer_jsx.jsxRenderer,
1148
+ renderer: _kubb_renderer_jsx.jsxRendererSync,
1134
1149
  operation(node, ctx) {
1135
- const { adapter, config, driver, resolver, root } = ctx;
1150
+ const { config, driver, resolver, root } = ctx;
1136
1151
  const { output, urlType, dataReturnType, paramsCasing, paramsType, pathParamsType, parser, importPath, group } = ctx.options;
1137
- const baseURL = ctx.options.baseURL ?? adapter.inputNode?.meta?.baseURL;
1152
+ const baseURL = ctx.options.baseURL ?? ctx.meta.baseURL;
1138
1153
  const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
1139
1154
  if (!pluginTs) return null;
1140
1155
  const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
@@ -1181,11 +1196,11 @@ const clientGenerator = (0, _kubb_core.defineGenerator)({
1181
1196
  baseName: meta.file.baseName,
1182
1197
  path: meta.file.path,
1183
1198
  meta: meta.file.meta,
1184
- banner: resolver.resolveBanner(adapter.inputNode, {
1199
+ banner: resolver.resolveBanner(ctx.meta, {
1185
1200
  output,
1186
1201
  config
1187
1202
  }),
1188
- footer: resolver.resolveFooter(adapter.inputNode, {
1203
+ footer: resolver.resolveFooter(ctx.meta, {
1189
1204
  output,
1190
1205
  config
1191
1206
  }),
@@ -1263,9 +1278,9 @@ const clientGenerator = (0, _kubb_core.defineGenerator)({
1263
1278
  //#region src/generators/groupedClientGenerator.tsx
1264
1279
  const groupedClientGenerator = (0, _kubb_core.defineGenerator)({
1265
1280
  name: "groupedClient",
1266
- renderer: _kubb_renderer_jsx.jsxRenderer,
1281
+ renderer: _kubb_renderer_jsx.jsxRendererSync,
1267
1282
  operations(nodes, ctx) {
1268
- const { config, resolver, adapter, root } = ctx;
1283
+ const { config, resolver, root } = ctx;
1269
1284
  const { output, group } = ctx.options;
1270
1285
  return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: nodes.reduce((acc, operationNode) => {
1271
1286
  if (group?.type === "tag") {
@@ -1309,11 +1324,11 @@ const groupedClientGenerator = (0, _kubb_core.defineGenerator)({
1309
1324
  baseName: file.baseName,
1310
1325
  path: file.path,
1311
1326
  meta: file.meta,
1312
- banner: resolver.resolveBanner(adapter.inputNode, {
1327
+ banner: resolver.resolveBanner(ctx.meta, {
1313
1328
  output,
1314
1329
  config
1315
1330
  }),
1316
- footer: resolver.resolveFooter(adapter.inputNode, {
1331
+ footer: resolver.resolveFooter(ctx.meta, {
1317
1332
  output,
1318
1333
  config
1319
1334
  }),
@@ -1360,9 +1375,9 @@ function Operations({ name, nodes }) {
1360
1375
  //#region src/generators/operationsGenerator.tsx
1361
1376
  const operationsGenerator = (0, _kubb_core.defineGenerator)({
1362
1377
  name: "client",
1363
- renderer: _kubb_renderer_jsx.jsxRenderer,
1378
+ renderer: _kubb_renderer_jsx.jsxRendererSync,
1364
1379
  operations(nodes, ctx) {
1365
- const { config, resolver, adapter, root } = ctx;
1380
+ const { config, resolver, root } = ctx;
1366
1381
  const { output, group } = ctx.options;
1367
1382
  const name = "operations";
1368
1383
  const file = resolver.resolveFile({
@@ -1377,11 +1392,11 @@ const operationsGenerator = (0, _kubb_core.defineGenerator)({
1377
1392
  baseName: file.baseName,
1378
1393
  path: file.path,
1379
1394
  meta: file.meta,
1380
- banner: resolver.resolveBanner(adapter.inputNode, {
1395
+ banner: resolver.resolveBanner(ctx.meta, {
1381
1396
  output,
1382
1397
  config
1383
1398
  }),
1384
- footer: resolver.resolveFooter(adapter.inputNode, {
1399
+ footer: resolver.resolveFooter(ctx.meta, {
1385
1400
  output,
1386
1401
  config
1387
1402
  }),
@@ -1478,11 +1493,11 @@ function resolveZodImportNames(node, zodResolver) {
1478
1493
  }
1479
1494
  const staticClassClientGenerator = (0, _kubb_core.defineGenerator)({
1480
1495
  name: "staticClassClient",
1481
- renderer: _kubb_renderer_jsx.jsxRenderer,
1496
+ renderer: _kubb_renderer_jsx.jsxRendererSync,
1482
1497
  operations(nodes, ctx) {
1483
- const { adapter, config, driver, resolver, root } = ctx;
1498
+ const { config, driver, resolver, root } = ctx;
1484
1499
  const { output, group, dataReturnType, paramsCasing, paramsType, pathParamsType, parser, importPath } = ctx.options;
1485
- const baseURL = ctx.options.baseURL ?? adapter.inputNode?.meta?.baseURL;
1500
+ const baseURL = ctx.options.baseURL ?? ctx.meta.baseURL;
1486
1501
  const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
1487
1502
  if (!pluginTs) return null;
1488
1503
  const tsResolver = driver.getResolver(_kubb_plugin_ts.pluginTsName);
@@ -1540,7 +1555,9 @@ const staticClassClientGenerator = (0, _kubb_core.defineGenerator)({
1540
1555
  file,
1541
1556
  operations: [operationData]
1542
1557
  });
1543
- } else if (tag) {
1558
+ return acc;
1559
+ }
1560
+ if (tag) {
1544
1561
  const name = groupName;
1545
1562
  const file = resolver.resolveFile({
1546
1563
  name,
@@ -1608,11 +1625,11 @@ const staticClassClientGenerator = (0, _kubb_core.defineGenerator)({
1608
1625
  baseName: file.baseName,
1609
1626
  path: file.path,
1610
1627
  meta: file.meta,
1611
- banner: resolver.resolveBanner(adapter.inputNode, {
1628
+ banner: resolver.resolveBanner(ctx.meta, {
1612
1629
  output,
1613
1630
  config
1614
1631
  }),
1615
- footer: resolver.resolveFooter(adapter.inputNode, {
1632
+ footer: resolver.resolveFooter(ctx.meta, {
1616
1633
  output,
1617
1634
  config
1618
1635
  }),