@kubb/plugin-ts 5.3.2 → 5.3.3

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.js CHANGED
@@ -1,5 +1,5 @@
1
+ import { Resolver, addGenerator, ast, camelCase, createResolver, defineExtension, defineGenerator, isStringType, pascalCase, setMacros, setResolver, syncSchemaRef } from "kubb/kit";
1
2
  import { File, jsxRenderer } from "kubb/jsx";
2
- import { Resolver, addGenerator, ast, createResolver, defineExtension, defineGenerator, isStringType, setMacros, setResolver, syncSchemaRef } from "kubb/kit";
3
3
  import { generate } from "yuku-codegen";
4
4
  import { Fragment, jsx, jsxs } from "kubb/jsx/jsx-runtime";
5
5
  import { parserTs } from "@kubb/parser-ts";
@@ -29,53 +29,6 @@ function words(text) {
29
29
  return text.split(/[\s\-_./\\:]+/).filter(Boolean).flatMap((segment) => segment === segment.toUpperCase() ? segment : segment.split(wordStart));
30
30
  }
31
31
  /**
32
- * Shared implementation for camelCase and PascalCase conversion.
33
- * Capitalizes each word from {@link words} according to `pascal`.
34
- *
35
- * When `pascal` is `true` the first word is also capitalized (PascalCase), otherwise only subsequent words are.
36
- */
37
- function convert(text, pascal) {
38
- return words(text).flatMap((word) => word.split(/(?<=\d)(?=[a-z])|(?<=[A-Z])(?=[A-Z][a-z])/)).map((word, i) => {
39
- if (word.length > 1 && word === word.toUpperCase()) return word;
40
- return (i === 0 && !pascal ? word.charAt(0).toLowerCase() : word.charAt(0).toUpperCase()) + word.slice(1);
41
- }).join("").replace(/[^a-zA-Z0-9]/g, "");
42
- }
43
- const cache = /* @__PURE__ */ new Map();
44
- const cacheLimit = 1e4;
45
- function toCamelOrPascal(text, pascal) {
46
- const key = `${pascal ? "P" : "c"}${text}`;
47
- const cached = cache.get(key);
48
- if (cached !== void 0) return cached;
49
- const result = convert(text, pascal);
50
- if (cache.size >= cacheLimit) cache.clear();
51
- cache.set(key, result);
52
- return result;
53
- }
54
- /**
55
- * Converts `text` to camelCase.
56
- *
57
- * @example Word boundaries
58
- * `camelCase('hello-world') // 'helloWorld'`
59
- *
60
- * @example With a prefix
61
- * `camelCase('tag', { prefix: 'create' }) // 'createTag'`
62
- */
63
- function camelCase(text, { prefix = "", suffix = "" } = {}) {
64
- return toCamelOrPascal(`${prefix} ${text} ${suffix}`, false);
65
- }
66
- /**
67
- * Converts `text` to PascalCase.
68
- *
69
- * @example Word boundaries
70
- * `pascalCase('hello-world') // 'HelloWorld'`
71
- *
72
- * @example With a suffix
73
- * `pascalCase('tag', { suffix: 'schema' }) // 'TagSchema'`
74
- */
75
- function pascalCase(text, { prefix = "", suffix = "" } = {}) {
76
- return toCamelOrPascal(`${prefix} ${text} ${suffix}`, true);
77
- }
78
- /**
79
32
  * Converts `text` to snake_case.
80
33
  *
81
34
  * @example From camelCase
@@ -1215,7 +1168,7 @@ function createOperationResponseResolver() {
1215
1168
  */
1216
1169
  function createCasedFile(caseLast) {
1217
1170
  return { baseName({ name, extname }) {
1218
- return `${toFilePath(name, caseLast)}${extname}`;
1171
+ return this.memo(`file:${name}\0${extname}`, () => `${toFilePath(name, caseLast)}${extname}`);
1219
1172
  } };
1220
1173
  }
1221
1174
  // ../../internals/shared/src/group.ts
@@ -1922,7 +1875,7 @@ var compatibility = {
1922
1875
  "node": ">=22.22"
1923
1876
  };
1924
1877
  // package.json
1925
- var version = "5.3.2";
1878
+ var version = "5.3.3";
1926
1879
  // src/resolvers/resolverTs.ts
1927
1880
  /**
1928
1881
  * Default resolver used by `@kubb/plugin-ts`. Decides the names and file paths
@@ -1945,7 +1898,7 @@ var version = "5.3.2";
1945
1898
  const resolverTs = createResolver({
1946
1899
  pluginName: "plugin-ts",
1947
1900
  name(name) {
1948
- return ensureValidVarName(pascalCase(name));
1901
+ return this.memo(`name:${name}`, () => ensureValidVarName(pascalCase(name)));
1949
1902
  },
1950
1903
  file: createCasedFile(pascalCase),
1951
1904
  param: createOperationParamResolver(),