@kubb/core 2.8.2 → 2.9.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.
@@ -2,17 +2,66 @@ import {
2
2
  searchAndReplace,
3
3
  transformReservedWord,
4
4
  trim,
5
- trimExtName
6
- } from "./chunk-L3XMZMJ5.js";
5
+ trimExtName,
6
+ trimQuotes
7
+ } from "./chunk-S3BHD7DW.js";
7
8
  import {
8
9
  camelCase,
9
10
  pascalCase,
10
11
  pathCase
11
12
  } from "./chunk-SV7GUBBD.js";
12
13
  import {
14
+ __commonJS,
15
+ __toESM,
13
16
  init_esm_shims
14
17
  } from "./chunk-77TYOFGF.js";
15
18
 
19
+ // ../../node_modules/.pnpm/lodash.tonumber@4.0.3/node_modules/lodash.tonumber/index.js
20
+ var require_lodash = __commonJS({
21
+ "../../node_modules/.pnpm/lodash.tonumber@4.0.3/node_modules/lodash.tonumber/index.js"(exports, module) {
22
+ "use strict";
23
+ init_esm_shims();
24
+ var NAN = 0 / 0;
25
+ var symbolTag = "[object Symbol]";
26
+ var reTrim = /^\s+|\s+$/g;
27
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
28
+ var reIsBinary = /^0b[01]+$/i;
29
+ var reIsOctal = /^0o[0-7]+$/i;
30
+ var freeParseInt = parseInt;
31
+ var objectProto = Object.prototype;
32
+ var objectToString = objectProto.toString;
33
+ function isObject(value) {
34
+ var type = typeof value;
35
+ return !!value && (type == "object" || type == "function");
36
+ }
37
+ function isObjectLike(value) {
38
+ return !!value && typeof value == "object";
39
+ }
40
+ function isSymbol(value) {
41
+ return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag;
42
+ }
43
+ function toNumber2(value) {
44
+ if (typeof value == "number") {
45
+ return value;
46
+ }
47
+ if (isSymbol(value)) {
48
+ return NAN;
49
+ }
50
+ if (isObject(value)) {
51
+ var other = typeof value.valueOf == "function" ? value.valueOf() : value;
52
+ value = isObject(other) ? other + "" : other;
53
+ }
54
+ if (typeof value != "string") {
55
+ return value === 0 ? value : +value;
56
+ }
57
+ value = value.replace(reTrim, "");
58
+ var isBinary = reIsBinary.test(value);
59
+ return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
60
+ }
61
+ module.exports = toNumber2;
62
+ }
63
+ });
64
+
16
65
  // src/transformers/index.ts
17
66
  init_esm_shims();
18
67
 
@@ -78,6 +127,52 @@ function nameSorter(a, b) {
78
127
  return 0;
79
128
  }
80
129
 
130
+ // src/transformers/stringify.ts
131
+ init_esm_shims();
132
+ function stringify(text) {
133
+ if (text === void 0) {
134
+ return '""';
135
+ }
136
+ return JSON.stringify(trimQuotes(text.toString()));
137
+ }
138
+
139
+ // src/transformers/toNumber.ts
140
+ init_esm_shims();
141
+ var import_lodash = __toESM(require_lodash(), 1);
142
+ function isNumber(value) {
143
+ if (typeof value === "string") {
144
+ if (value === "") {
145
+ return false;
146
+ }
147
+ return !isNaN(toNumber(value));
148
+ }
149
+ return typeof value === "number";
150
+ }
151
+ var toNumber = import_lodash.default;
152
+
153
+ // src/transformers/toRegExp.ts
154
+ init_esm_shims();
155
+ function stringToRegex(text) {
156
+ const isStartWithSlash = text.startsWith("/");
157
+ const isEndWithSlash = text.endsWith("/");
158
+ return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0));
159
+ }
160
+ function toRegExp(text) {
161
+ if (typeof text === "string") {
162
+ const source = trimQuotes(text);
163
+ return stringToRegex(source);
164
+ }
165
+ return stringToRegex(text.toString());
166
+ }
167
+ function toRegExpString(text) {
168
+ const isStartWithSlash = text.startsWith("/");
169
+ const isEndWithSlash = text.endsWith("/");
170
+ const regexp = `new RegExp('${jsStringEscape(
171
+ text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0)
172
+ )}')`;
173
+ return regexp;
174
+ }
175
+
81
176
  // src/transformers/index.ts
82
177
  var transformers_default = {
83
178
  combineCodes,
@@ -87,7 +182,13 @@ var transformers_default = {
87
182
  transformReservedWord,
88
183
  nameSorter,
89
184
  searchAndReplace,
185
+ toNumber,
186
+ isNumber,
187
+ stringify,
188
+ toRegExp,
189
+ toRegExpString,
90
190
  trim,
191
+ trimQuotes,
91
192
  trimExtName,
92
193
  JSDoc: {
93
194
  createJSDocBlockText
@@ -103,13 +204,19 @@ export {
103
204
  createJSDocBlockText,
104
205
  transformers_default as default,
105
206
  escape,
207
+ isNumber,
106
208
  jsStringEscape,
107
209
  nameSorter,
108
210
  pascalCase,
109
211
  pathCase,
110
212
  searchAndReplace,
213
+ stringify,
214
+ toNumber,
215
+ toRegExp,
216
+ toRegExpString,
111
217
  transformReservedWord,
112
218
  trim,
113
- trimExtName
219
+ trimExtName,
220
+ trimQuotes
114
221
  };
115
222
  //# sourceMappingURL=transformers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/transformers/index.ts","../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts"],"sourcesContent":["import { camelCase, pascalCase, pathCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName } from './trim.ts'\n\nexport { camelCase, pascalCase, pathCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName } from './trim.ts'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n trim,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n camelCase,\n pascalCase,\n pathCase,\n} as const\n","export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return '\\\\' + character\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;;;ACAA;AAAO,SAAS,aAAa,OAAyB;AACpD,SAAO,MAAM,KAAK,IAAI;AACxB;;;ACFA;AAAO,SAAS,qBAAqB,EAAE,SAAS,GAAwC;AACtF,QAAM,mBAAmB,SAAS,OAAO,OAAO;AAEhD,MAAI,CAAC,iBAAiB,QAAQ;AAC5B,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,KAAW,iBAAiB,KAAK,OAAO,CAAC;AAAA;AAClD;;;ACRA;AAAO,SAAS,OAAO,MAAuB;AAC5C,SAAO,OAAO,KAAK,WAAW,KAAK,KAAK,IAAI;AAC9C;AAQO,SAAS,eAAe,OAAoB;AACjD,SAAO,GAAG,KAAK,GAAG,QAAQ,2BAA2B,CAAC,cAAc;AAClE,YAAQ,WAAW;AAAA,MACjB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO,OAAO;AAAA,MAEhB,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF,CAAC;AACH;;;AC9BA;AAAO,SAAS,aAAa,MAAsB;AACjD,SAAO,MAAM,KAAK,EAAE,QAAQ,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG;AAClD;;;ACFA;AAAO,SAAS,WAAuC,GAAM,GAAkB;AAC7E,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ALYA,IAAO,uBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/lodash.tonumber@4.0.3/node_modules/lodash.tonumber/index.js","../src/transformers/index.ts","../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts","../src/transformers/stringify.ts","../src/transformers/toNumber.ts","../src/transformers/toRegExp.ts"],"sourcesContent":["/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","import { camelCase, pascalCase, pathCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { stringify } from './stringify.ts'\nimport { isNumber, toNumber } from './toNumber.ts'\nimport { toRegExp, toRegExpString } from './toRegExp.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName, trimQuotes } from './trim.ts'\n\nexport { camelCase, pascalCase, pathCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { stringify } from './stringify.ts'\nexport { isNumber, toNumber } from './toNumber.ts'\nexport { toRegExp, toRegExpString } from './toRegExp.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName, trimQuotes } from './trim.ts'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n toNumber,\n isNumber,\n stringify,\n toRegExp,\n toRegExpString,\n trim,\n trimQuotes,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n camelCase,\n pascalCase,\n pathCase,\n} as const\n","export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return '\\\\' + character\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n\nexport function escapeStringRegexp(string: string) {\n if (typeof string !== 'string') {\n throw new TypeError('Expected a string')\n }\n\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n .replace(/-/g, '\\\\x2d')\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n","import { trimQuotes } from './trim'\n\nexport function stringify(text: string | number | undefined): string {\n if (text === undefined) {\n return '\"\"'\n }\n return JSON.stringify(trimQuotes(text.toString()))\n}\n","import _toNumber from 'lodash.tonumber'\n\nexport function isNumber(value: unknown): value is number {\n if (typeof value === 'string') {\n if (value === '') {\n return false\n }\n\n return !isNaN(toNumber(value))\n }\n return typeof value === 'number'\n}\nexport const toNumber = _toNumber\n","import { jsStringEscape } from './escape'\nimport { trimQuotes } from './trim'\n\nfunction stringToRegex(text: string) {\n const isStartWithSlash = text.startsWith('/')\n const isEndWithSlash = text.endsWith('/')\n\n return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined))\n}\n\n/**\n * @experimental\n */\nexport function toRegExp(text: string | RegExp): RegExp {\n if (typeof text === 'string') {\n const source = trimQuotes(text)\n\n return stringToRegex(source)\n }\n\n return stringToRegex(text.toString())\n}\n\nexport function toRegExpString(text: string): string {\n const isStartWithSlash = text.startsWith('/')\n const isEndWithSlash = text.endsWith('/')\n\n const regexp = `new RegExp('${\n jsStringEscape(\n text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined),\n )\n }')`\n\n return regexp\n}\n"],"mappings":"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","names":["toNumber","_toNumber"]}
package/dist/utils.cjs CHANGED
@@ -10,6 +10,9 @@ var _chunkGNWOOGXAcjs = require('./chunk-GNWOOGXA.cjs');
10
10
  var _chunkAWUFUNOJcjs = require('./chunk-AWUFUNOJ.cjs');
11
11
 
12
12
 
13
+
14
+
15
+
13
16
  var _chunkDJLNT4KCcjs = require('./chunk-DJLNT4KC.cjs');
14
17
 
15
18
  // src/utils/index.ts
@@ -18,49 +21,120 @@ _chunkDJLNT4KCcjs.init_cjs_shims.call(void 0, );
18
21
  // src/utils/FunctionParams.ts
19
22
  _chunkDJLNT4KCcjs.init_cjs_shims.call(void 0, );
20
23
  var _naturalorderby = require('natural-orderby');
21
- var FunctionParams = class {
24
+ var _items, _orderItems, orderItems_fn, _addParams, addParams_fn;
25
+ var _FunctionParams = class _FunctionParams {
22
26
  constructor(type) {
23
- this.items = [];
27
+ _chunkDJLNT4KCcjs.__privateAdd.call(void 0, this, _items, []);
24
28
  this.type = type;
25
29
  return this;
26
30
  }
31
+ get items() {
32
+ return _chunkDJLNT4KCcjs.__privateGet.call(void 0, this, _items).flat();
33
+ }
27
34
  add(item) {
28
35
  if (!item) {
29
36
  return this;
30
37
  }
31
38
  if (Array.isArray(item)) {
32
- item.filter(Boolean).forEach((it) => this.items.push(it));
39
+ item.filter(Boolean).forEach((it) => _chunkDJLNT4KCcjs.__privateGet.call(void 0, this, _items).push(it));
33
40
  return this;
34
41
  }
35
- this.items.push(item);
42
+ _chunkDJLNT4KCcjs.__privateGet.call(void 0, this, _items).push(item);
36
43
  return this;
37
44
  }
38
- toString() {
39
- const sortedData = _naturalorderby.orderBy.call(void 0, this.items.filter(Boolean), [(v) => !v.default, (v) => _nullishCoalesce(v.required, () => ( true))], ["desc", "desc"]);
40
- return sortedData.filter(({ enabled = true }) => enabled).reduce((acc, { name, type, required = true, ...rest }) => {
41
- if (!name) {
42
- acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
43
- return acc;
45
+ static toObject(items) {
46
+ let type = [];
47
+ let name = [];
48
+ const enabled = items.every((item) => item.enabled) ? _optionalChain([items, 'access', _ => _.at, 'call', _2 => _2(0), 'optionalAccess', _3 => _3.enabled]) : true;
49
+ const required = _nullishCoalesce(items.every((item) => item.required), () => ( true));
50
+ items.forEach((item) => {
51
+ var _a, _b;
52
+ name = _chunkDJLNT4KCcjs.__privateMethod.call(void 0, _a = _FunctionParams, _addParams, addParams_fn).call(_a, name, { ...item, type: void 0 });
53
+ if (items.some((item2) => item2.type)) {
54
+ type = _chunkDJLNT4KCcjs.__privateMethod.call(void 0, _b = _FunctionParams, _addParams, addParams_fn).call(_b, type, item);
44
55
  }
45
- const parameterName = name.startsWith("{") ? name : _chunkAWUFUNOJcjs.camelCase.call(void 0, name);
46
- if (type) {
47
- if (required) {
48
- acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
49
- } else {
50
- acc.push(`${parameterName}?: ${type}`);
51
- }
52
- } else {
53
- acc.push(`${parameterName}`);
56
+ });
57
+ return {
58
+ name: `{ ${name.join(", ")} }`,
59
+ type: type.length ? `{ ${type.join(", ")} }` : void 0,
60
+ enabled,
61
+ required
62
+ };
63
+ }
64
+ static toString(items) {
65
+ const sortedData = _chunkDJLNT4KCcjs.__privateMethod.call(void 0, this, _orderItems, orderItems_fn).call(this, items);
66
+ return sortedData.reduce((acc, item) => {
67
+ var _a, _b;
68
+ if (Array.isArray(item)) {
69
+ const subItems = _chunkDJLNT4KCcjs.__privateMethod.call(void 0, this, _orderItems, orderItems_fn).call(this, item);
70
+ const objectItem = _FunctionParams.toObject(subItems);
71
+ return _chunkDJLNT4KCcjs.__privateMethod.call(void 0, _a = _FunctionParams, _addParams, addParams_fn).call(_a, acc, objectItem);
54
72
  }
55
- return acc;
73
+ return _chunkDJLNT4KCcjs.__privateMethod.call(void 0, _b = _FunctionParams, _addParams, addParams_fn).call(_b, acc, item);
56
74
  }, []).join(", ");
57
75
  }
76
+ toObject() {
77
+ var _a;
78
+ const items = _chunkDJLNT4KCcjs.__privateMethod.call(void 0, _a = _FunctionParams, _orderItems, orderItems_fn).call(_a, _chunkDJLNT4KCcjs.__privateGet.call(void 0, this, _items)).flat();
79
+ return _FunctionParams.toObject(items);
80
+ }
81
+ toString() {
82
+ var _a;
83
+ const items = _chunkDJLNT4KCcjs.__privateMethod.call(void 0, _a = _FunctionParams, _orderItems, orderItems_fn).call(_a, _chunkDJLNT4KCcjs.__privateGet.call(void 0, this, _items));
84
+ return _FunctionParams.toString(items);
85
+ }
86
+ };
87
+ _items = new WeakMap();
88
+ _orderItems = new WeakSet();
89
+ orderItems_fn = function(items) {
90
+ return _naturalorderby.orderBy.call(void 0, items.filter(Boolean), [
91
+ (v) => {
92
+ if (Array.isArray(v)) {
93
+ return void 0;
94
+ }
95
+ return !v.default;
96
+ },
97
+ (v) => {
98
+ if (Array.isArray(v)) {
99
+ return void 0;
100
+ }
101
+ return _nullishCoalesce(v.required, () => ( true));
102
+ }
103
+ ], [
104
+ "desc",
105
+ "desc"
106
+ ]);
107
+ };
108
+ _addParams = new WeakSet();
109
+ addParams_fn = function(acc, item) {
110
+ const { enabled = true, name, type, required = true, ...rest } = item;
111
+ if (!enabled) {
112
+ return acc;
113
+ }
114
+ if (!name) {
115
+ acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
116
+ return acc;
117
+ }
118
+ const parameterName = name.startsWith("{") ? name : _chunkAWUFUNOJcjs.camelCase.call(void 0, name);
119
+ if (type) {
120
+ if (required) {
121
+ acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
122
+ } else {
123
+ acc.push(`${parameterName}?: ${type}`);
124
+ }
125
+ } else {
126
+ acc.push(`${parameterName}`);
127
+ }
128
+ return acc;
58
129
  };
130
+ _chunkDJLNT4KCcjs.__privateAdd.call(void 0, _FunctionParams, _orderItems);
131
+ _chunkDJLNT4KCcjs.__privateAdd.call(void 0, _FunctionParams, _addParams);
132
+ var FunctionParams = _FunctionParams;
59
133
 
60
134
  // src/utils/promise.ts
61
135
  _chunkDJLNT4KCcjs.init_cjs_shims.call(void 0, );
62
136
  function isPromise(result) {
63
- return !!result && typeof _optionalChain([result, 'optionalAccess', _ => _.then]) === "function";
137
+ return !!result && typeof _optionalChain([result, 'optionalAccess', _4 => _4.then]) === "function";
64
138
  }
65
139
  function isPromiseFulfilledResult(result) {
66
140
  return result.status === "fulfilled";
@@ -76,8 +150,8 @@ function renderTemplate(template, data = void 0) {
76
150
  return template.replace(/{{(.*?)}}/g, "");
77
151
  }
78
152
  const matches = template.match(/{{(.*?)}}/g);
79
- return _optionalChain([matches, 'optionalAccess', _2 => _2.reduce, 'call', _3 => _3((prev, curr) => {
80
- const index = _optionalChain([curr, 'access', _4 => _4.split, 'call', _5 => _5(/{{|}}/), 'access', _6 => _6.filter, 'call', _7 => _7(Boolean), 'access', _8 => _8[0], 'optionalAccess', _9 => _9.trim, 'call', _10 => _10()]);
153
+ return _optionalChain([matches, 'optionalAccess', _5 => _5.reduce, 'call', _6 => _6((prev, curr) => {
154
+ const index = _optionalChain([curr, 'access', _7 => _7.split, 'call', _8 => _8(/{{|}}/), 'access', _9 => _9.filter, 'call', _10 => _10(Boolean), 'access', _11 => _11[0], 'optionalAccess', _12 => _12.trim, 'call', _13 => _13()]);
81
155
  if (index === void 0) {
82
156
  return prev;
83
157
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/index.ts","../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;ACAA;AAAA,SAAS,eAAe;AAiCjB,IAAM,iBAAN,MAAqB;AAAA,EAG1B,YAAY,MAA6B;AADzC,SAAO,QAA6B,CAAC;AAEnC,SAAK,OAAO;AAEZ,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,MAA4F;AAC9F,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAK,OAAO,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,MAAM,KAAK,EAAE,CAAC;AACxD,aAAO;AAAA,IACT;AACA,SAAK,MAAM,KAAK,IAAI;AAEpB,WAAO;AAAA,EACT;AAAA,EAEA,WAAmB;AACjB,UAAM,aAAa,QAAQ,KAAK,MAAM,OAAO,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,YAAY,IAAI,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEvH,WAAO,WACJ,OAAO,CAAC,EAAE,UAAU,KAAK,MAAM,OAAO,EACtC,OAAO,CAAC,KAAK,EAAE,MAAM,MAAM,WAAW,MAAM,GAAG,KAAK,MAAM;AACzD,UAAI,CAAC,MAAM;AAET,YAAI,KAAK,GAAG,IAAI,GAAG,KAAK,UAAU,MAAM,KAAK,OAAO,KAAK,EAAE,EAAE;AAE7D,eAAO;AAAA,MACT;AAEA,YAAM,gBAAgB,KAAK,WAAW,GAAG,IAAI,OAAO,UAAU,IAAI;AAElE,UAAI,MAAM;AACR,YAAI,UAAU;AACZ,cAAI,KAAK,GAAG,aAAa,KAAK,IAAI,GAAG,KAAK,UAAU,MAAM,KAAK,OAAO,KAAK,EAAE,EAAE;AAAA,QACjF,OAAO;AACL,cAAI,KAAK,GAAG,aAAa,MAAM,IAAI,EAAE;AAAA,QACvC;AAAA,MACF,OAAO;AACL,YAAI,KAAK,GAAG,aAAa,EAAE;AAAA,MAC7B;AAEA,aAAO;AAAA,IACT,GAAG,CAAC,CAAa,EAChB,KAAK,IAAI;AAAA,EACd;AACF;;;ACrFA;AAEO,SAAS,UAAa,QAAkD;AAC7E,SAAO,CAAC,CAAC,UAAU,OAAQ,QAA6B,SAAS;AACnE;AAEO,SAAS,yBAAsC,QAA4E;AAChI,SAAO,OAAO,WAAW;AAC3B;AAEO,SAAS,wBAA2B,QAAwG;AACjJ,SAAO,OAAO,WAAW;AAC3B;;;ACZA;AAAO,SAAS,eAAgF,UAAkB,OAA0B,QAAmB;AAC7J,MAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,QAAQ;AACtC,WAAO,SAAS,QAAQ,cAAc,EAAE;AAAA,EAC1C;AAEA,QAAM,UAAU,SAAS,MAAM,YAAY;AAE3C,SACE,SAAS,OAAO,CAAC,MAAM,SAAS;AAC9B,UAAM,QAAQ,KAAK,MAAM,OAAO,EAAE,OAAO,OAAO,EAAE,CAAC,GAAG,KAAK;AAC3D,QAAI,UAAU,QAAW;AACvB,aAAO;AAAA,IACT;AACA,UAAM,QAAQ,KAAK,KAAK;AAExB,QAAI,UAAU,QAAW;AACvB,aAAO;AAAA,IACT;AAEA,WAAO,KACJ,QAAQ,MAAM,MAAM;AACnB,UAAI,OAAO,UAAU,WAAW;AAC9B,eAAO,GAAG,MAAM,SAAS,CAAC,MAAM;AAAA,MAClC;AAEA,aAAQ,SAAoB;AAAA,IAC9B,CAAC,EACA,KAAK;AAAA,EACV,GAAG,QAAQ,KAAK;AAEpB;;;AC9BA;AAAA,eAAsB,QAAQ,IAA8B;AAC1D,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,eAAW,MAAM;AACf,cAAQ,IAAI;AAAA,IACd,GAAG,EAAE;AAAA,EACP,CAAC;AACH","sourcesContent":["export type { FunctionParamsAST } from './FunctionParams.ts'\nexport { FunctionParams } from './FunctionParams.ts'\nexport { isPromise, isPromiseFulfilledResult, isPromiseRejectedResult } from './promise.ts'\nexport { renderTemplate } from './renderTemplate.ts'\nexport { timeout } from './timeout.ts'\nexport { getUniqueName, setUniqueName } from './uniqueName.ts'\nexport type { URLObject } from './URLPath.ts'\nexport { URLPath } from './URLPath.ts'\n","import { orderBy } from 'natural-orderby'\n\nimport { camelCase } from '../transformers/casing.ts'\n\ntype FunctionParamsASTWithoutType = {\n name?: string\n type?: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\ntype FunctionParamsASTWithType = {\n name?: never\n type: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\nexport class FunctionParams {\n public type?: 'generics' | 'typed'\n public items: FunctionParamsAST[] = []\n constructor(type?: 'generics' | 'typed') {\n this.type = type\n\n return this\n }\n\n add(item: FunctionParamsAST | Array<FunctionParamsAST | undefined> | undefined): FunctionParams {\n if (!item) {\n return this\n }\n\n if (Array.isArray(item)) {\n item.filter(Boolean).forEach((it) => this.items.push(it))\n return this\n }\n this.items.push(item)\n\n return this\n }\n\n toString(): string {\n const sortedData = orderBy(this.items.filter(Boolean), [(v) => !v.default, (v) => v.required ?? true], ['desc', 'desc'])\n\n return sortedData\n .filter(({ enabled = true }) => enabled)\n .reduce((acc, { name, type, required = true, ...rest }) => {\n if (!name) {\n // when name is not se we will use TypeScript generics\n acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)\n\n return acc\n }\n // TODO check whey we still need the camelcase here\n const parameterName = name.startsWith('{') ? name : camelCase(name)\n\n if (type) {\n if (required) {\n acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)\n } else {\n acc.push(`${parameterName}?: ${type}`)\n }\n } else {\n acc.push(`${parameterName}`)\n }\n\n return acc\n }, [] as string[])\n .join(', ')\n }\n}\n","import type { PossiblePromise } from '@kubb/types'\n\nexport function isPromise<T>(result: PossiblePromise<T>): result is Promise<T> {\n return !!result && typeof (result as Promise<unknown>)?.then === 'function'\n}\n\nexport function isPromiseFulfilledResult<T = unknown>(result: PromiseSettledResult<unknown>): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nexport function isPromiseRejectedResult<T>(result: PromiseSettledResult<unknown>): result is Omit<PromiseRejectedResult, 'reason'> & { reason: T } {\n return result.status === 'rejected'\n}\n","export function renderTemplate<TData extends Record<string, unknown> = Record<string, unknown>>(template: string, data: TData | undefined = undefined): string {\n if (!data || !Object.keys(data).length) {\n return template.replace(/{{(.*?)}}/g, '')\n }\n\n const matches = template.match(/{{(.*?)}}/g)\n\n return (\n matches?.reduce((prev, curr) => {\n const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim()\n if (index === undefined) {\n return prev\n }\n const value = data[index]\n\n if (value === undefined) {\n return prev\n }\n\n return prev\n .replace(curr, () => {\n if (typeof value === 'boolean') {\n return `${value.toString()}` || 'false'\n }\n\n return (value as string) || ''\n })\n .trim()\n }, template) || ''\n )\n}\n","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/utils/index.ts","../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts"],"names":["item"],"mappings":"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","sourcesContent":["export type { FunctionParamsAST } from './FunctionParams.ts'\nexport { FunctionParams } from './FunctionParams.ts'\nexport { isPromise, isPromiseFulfilledResult, isPromiseRejectedResult } from './promise.ts'\nexport { renderTemplate } from './renderTemplate.ts'\nexport { timeout } from './timeout.ts'\nexport { getUniqueName, setUniqueName } from './uniqueName.ts'\nexport type { URLObject } from './URLPath.ts'\nexport { URLPath } from './URLPath.ts'\n","import { orderBy } from 'natural-orderby'\n\nimport { camelCase } from '../transformers/casing.ts'\n\ntype FunctionParamsASTWithoutType = {\n name?: string\n type?: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\ntype FunctionParamsASTWithType = {\n name?: never\n type: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\nexport class FunctionParams {\n type?: 'generics' | 'typed'\n #items: Array<FunctionParamsAST | FunctionParamsAST[]> = []\n constructor(type?: 'generics' | 'typed') {\n this.type = type\n\n return this\n }\n\n get items(): FunctionParamsAST[] {\n return this.#items.flat()\n }\n\n add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams {\n if (!item) {\n return this\n }\n\n if (Array.isArray(item)) {\n item.filter(Boolean).forEach((it) => this.#items.push(it))\n return this\n }\n this.#items.push(item)\n\n return this\n }\n static #orderItems(items: Array<FunctionParamsAST | FunctionParamsAST[]>) {\n return orderBy(items.filter(Boolean), [\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return !v.default\n },\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return v.required ?? true\n },\n ], [\n 'desc',\n 'desc',\n ])\n }\n\n static #addParams(acc: string[], item: FunctionParamsAST) {\n const { enabled = true, name, type, required = true, ...rest } = item\n\n if (!enabled) {\n return acc\n }\n\n if (!name) {\n // when name is not se we will use TypeScript generics\n acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)\n\n return acc\n }\n // TODO check whey we still need the camelcase here\n const parameterName = name.startsWith('{') ? name : camelCase(name)\n\n if (type) {\n if (required) {\n acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)\n } else {\n acc.push(`${parameterName}?: ${type}`)\n }\n } else {\n acc.push(`${parameterName}`)\n }\n\n return acc\n }\n\n static toObject(items: FunctionParamsAST[]): FunctionParamsAST {\n let type: string[] = []\n let name: string[] = []\n\n const enabled = items.every(item => item.enabled) ? items.at(0)?.enabled : true\n const required = items.every(item => item.required) ?? true\n\n items.forEach(item => {\n name = FunctionParams.#addParams(name, { ...item, type: undefined })\n if (items.some(item => item.type)) {\n type = FunctionParams.#addParams(type, item)\n }\n })\n\n return {\n name: `{ ${name.join(', ')} }`,\n type: type.length ? `{ ${type.join(', ')} }` : undefined,\n enabled,\n required,\n }\n }\n\n static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string {\n const sortedData = this.#orderItems(items)\n\n return sortedData\n .reduce((acc, item) => {\n if (Array.isArray(item)) {\n const subItems = this.#orderItems(item) as FunctionParamsAST[]\n const objectItem = FunctionParams.toObject(subItems)\n\n return FunctionParams.#addParams(acc, objectItem)\n }\n\n return FunctionParams.#addParams(acc, item)\n }, [] as string[])\n .join(', ')\n }\n\n toObject(): FunctionParamsAST {\n const items = FunctionParams.#orderItems(this.#items).flat()\n\n return FunctionParams.toObject(items)\n }\n\n toString(): string {\n const items = FunctionParams.#orderItems(this.#items)\n\n return FunctionParams.toString(items)\n }\n}\n","import type { PossiblePromise } from '@kubb/types'\n\nexport function isPromise<T>(result: PossiblePromise<T>): result is Promise<T> {\n return !!result && typeof (result as Promise<unknown>)?.then === 'function'\n}\n\nexport function isPromiseFulfilledResult<T = unknown>(result: PromiseSettledResult<unknown>): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nexport function isPromiseRejectedResult<T>(result: PromiseSettledResult<unknown>): result is Omit<PromiseRejectedResult, 'reason'> & { reason: T } {\n return result.status === 'rejected'\n}\n","export function renderTemplate<TData extends Record<string, unknown> = Record<string, unknown>>(template: string, data: TData | undefined = undefined): string {\n if (!data || !Object.keys(data).length) {\n return template.replace(/{{(.*?)}}/g, '')\n }\n\n const matches = template.match(/{{(.*?)}}/g)\n\n return (\n matches?.reduce((prev, curr) => {\n const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim()\n if (index === undefined) {\n return prev\n }\n const value = data[index]\n\n if (value === undefined) {\n return prev\n }\n\n return prev\n .replace(curr, () => {\n if (typeof value === 'boolean') {\n return `${value.toString()}` || 'false'\n }\n\n return (value as string) || ''\n })\n .trim()\n }, template) || ''\n )\n}\n","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n"]}
package/dist/utils.d.cts CHANGED
@@ -28,10 +28,14 @@ type FunctionParamsASTWithType = {
28
28
  };
29
29
  type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType;
30
30
  declare class FunctionParams {
31
+ #private;
31
32
  type?: 'generics' | 'typed';
32
- items: FunctionParamsAST[];
33
33
  constructor(type?: 'generics' | 'typed');
34
- add(item: FunctionParamsAST | Array<FunctionParamsAST | undefined> | undefined): FunctionParams;
34
+ get items(): FunctionParamsAST[];
35
+ add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams;
36
+ static toObject(items: FunctionParamsAST[]): FunctionParamsAST;
37
+ static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string;
38
+ toObject(): FunctionParamsAST;
35
39
  toString(): string;
36
40
  }
37
41
 
package/dist/utils.d.ts CHANGED
@@ -28,10 +28,14 @@ type FunctionParamsASTWithType = {
28
28
  };
29
29
  type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType;
30
30
  declare class FunctionParams {
31
+ #private;
31
32
  type?: 'generics' | 'typed';
32
- items: FunctionParamsAST[];
33
33
  constructor(type?: 'generics' | 'typed');
34
- add(item: FunctionParamsAST | Array<FunctionParamsAST | undefined> | undefined): FunctionParams;
34
+ get items(): FunctionParamsAST[];
35
+ add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams;
36
+ static toObject(items: FunctionParamsAST[]): FunctionParamsAST;
37
+ static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string;
38
+ toObject(): FunctionParamsAST;
35
39
  toString(): string;
36
40
  }
37
41
 
package/dist/utils.js CHANGED
@@ -9,6 +9,9 @@ import {
9
9
  camelCase
10
10
  } from "./chunk-SV7GUBBD.js";
11
11
  import {
12
+ __privateAdd,
13
+ __privateGet,
14
+ __privateMethod,
12
15
  init_esm_shims
13
16
  } from "./chunk-77TYOFGF.js";
14
17
 
@@ -18,44 +21,115 @@ init_esm_shims();
18
21
  // src/utils/FunctionParams.ts
19
22
  init_esm_shims();
20
23
  import { orderBy } from "natural-orderby";
21
- var FunctionParams = class {
24
+ var _items, _orderItems, orderItems_fn, _addParams, addParams_fn;
25
+ var _FunctionParams = class _FunctionParams {
22
26
  constructor(type) {
23
- this.items = [];
27
+ __privateAdd(this, _items, []);
24
28
  this.type = type;
25
29
  return this;
26
30
  }
31
+ get items() {
32
+ return __privateGet(this, _items).flat();
33
+ }
27
34
  add(item) {
28
35
  if (!item) {
29
36
  return this;
30
37
  }
31
38
  if (Array.isArray(item)) {
32
- item.filter(Boolean).forEach((it) => this.items.push(it));
39
+ item.filter(Boolean).forEach((it) => __privateGet(this, _items).push(it));
33
40
  return this;
34
41
  }
35
- this.items.push(item);
42
+ __privateGet(this, _items).push(item);
36
43
  return this;
37
44
  }
38
- toString() {
39
- const sortedData = orderBy(this.items.filter(Boolean), [(v) => !v.default, (v) => v.required ?? true], ["desc", "desc"]);
40
- return sortedData.filter(({ enabled = true }) => enabled).reduce((acc, { name, type, required = true, ...rest }) => {
41
- if (!name) {
42
- acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
43
- return acc;
45
+ static toObject(items) {
46
+ let type = [];
47
+ let name = [];
48
+ const enabled = items.every((item) => item.enabled) ? items.at(0)?.enabled : true;
49
+ const required = items.every((item) => item.required) ?? true;
50
+ items.forEach((item) => {
51
+ var _a, _b;
52
+ name = __privateMethod(_a = _FunctionParams, _addParams, addParams_fn).call(_a, name, { ...item, type: void 0 });
53
+ if (items.some((item2) => item2.type)) {
54
+ type = __privateMethod(_b = _FunctionParams, _addParams, addParams_fn).call(_b, type, item);
44
55
  }
45
- const parameterName = name.startsWith("{") ? name : camelCase(name);
46
- if (type) {
47
- if (required) {
48
- acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
49
- } else {
50
- acc.push(`${parameterName}?: ${type}`);
51
- }
52
- } else {
53
- acc.push(`${parameterName}`);
56
+ });
57
+ return {
58
+ name: `{ ${name.join(", ")} }`,
59
+ type: type.length ? `{ ${type.join(", ")} }` : void 0,
60
+ enabled,
61
+ required
62
+ };
63
+ }
64
+ static toString(items) {
65
+ const sortedData = __privateMethod(this, _orderItems, orderItems_fn).call(this, items);
66
+ return sortedData.reduce((acc, item) => {
67
+ var _a, _b;
68
+ if (Array.isArray(item)) {
69
+ const subItems = __privateMethod(this, _orderItems, orderItems_fn).call(this, item);
70
+ const objectItem = _FunctionParams.toObject(subItems);
71
+ return __privateMethod(_a = _FunctionParams, _addParams, addParams_fn).call(_a, acc, objectItem);
54
72
  }
55
- return acc;
73
+ return __privateMethod(_b = _FunctionParams, _addParams, addParams_fn).call(_b, acc, item);
56
74
  }, []).join(", ");
57
75
  }
76
+ toObject() {
77
+ var _a;
78
+ const items = __privateMethod(_a = _FunctionParams, _orderItems, orderItems_fn).call(_a, __privateGet(this, _items)).flat();
79
+ return _FunctionParams.toObject(items);
80
+ }
81
+ toString() {
82
+ var _a;
83
+ const items = __privateMethod(_a = _FunctionParams, _orderItems, orderItems_fn).call(_a, __privateGet(this, _items));
84
+ return _FunctionParams.toString(items);
85
+ }
86
+ };
87
+ _items = new WeakMap();
88
+ _orderItems = new WeakSet();
89
+ orderItems_fn = function(items) {
90
+ return orderBy(items.filter(Boolean), [
91
+ (v) => {
92
+ if (Array.isArray(v)) {
93
+ return void 0;
94
+ }
95
+ return !v.default;
96
+ },
97
+ (v) => {
98
+ if (Array.isArray(v)) {
99
+ return void 0;
100
+ }
101
+ return v.required ?? true;
102
+ }
103
+ ], [
104
+ "desc",
105
+ "desc"
106
+ ]);
107
+ };
108
+ _addParams = new WeakSet();
109
+ addParams_fn = function(acc, item) {
110
+ const { enabled = true, name, type, required = true, ...rest } = item;
111
+ if (!enabled) {
112
+ return acc;
113
+ }
114
+ if (!name) {
115
+ acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
116
+ return acc;
117
+ }
118
+ const parameterName = name.startsWith("{") ? name : camelCase(name);
119
+ if (type) {
120
+ if (required) {
121
+ acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
122
+ } else {
123
+ acc.push(`${parameterName}?: ${type}`);
124
+ }
125
+ } else {
126
+ acc.push(`${parameterName}`);
127
+ }
128
+ return acc;
58
129
  };
130
+ __privateAdd(_FunctionParams, _orderItems);
131
+ __privateAdd(_FunctionParams, _addParams);
132
+ var FunctionParams = _FunctionParams;
59
133
 
60
134
  // src/utils/promise.ts
61
135
  init_esm_shims();
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/index.ts","../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts"],"sourcesContent":["export type { FunctionParamsAST } from './FunctionParams.ts'\nexport { FunctionParams } from './FunctionParams.ts'\nexport { isPromise, isPromiseFulfilledResult, isPromiseRejectedResult } from './promise.ts'\nexport { renderTemplate } from './renderTemplate.ts'\nexport { timeout } from './timeout.ts'\nexport { getUniqueName, setUniqueName } from './uniqueName.ts'\nexport type { URLObject } from './URLPath.ts'\nexport { URLPath } from './URLPath.ts'\n","import { orderBy } from 'natural-orderby'\n\nimport { camelCase } from '../transformers/casing.ts'\n\ntype FunctionParamsASTWithoutType = {\n name?: string\n type?: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\ntype FunctionParamsASTWithType = {\n name?: never\n type: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\nexport class FunctionParams {\n public type?: 'generics' | 'typed'\n public items: FunctionParamsAST[] = []\n constructor(type?: 'generics' | 'typed') {\n this.type = type\n\n return this\n }\n\n add(item: FunctionParamsAST | Array<FunctionParamsAST | undefined> | undefined): FunctionParams {\n if (!item) {\n return this\n }\n\n if (Array.isArray(item)) {\n item.filter(Boolean).forEach((it) => this.items.push(it))\n return this\n }\n this.items.push(item)\n\n return this\n }\n\n toString(): string {\n const sortedData = orderBy(this.items.filter(Boolean), [(v) => !v.default, (v) => v.required ?? true], ['desc', 'desc'])\n\n return sortedData\n .filter(({ enabled = true }) => enabled)\n .reduce((acc, { name, type, required = true, ...rest }) => {\n if (!name) {\n // when name is not se we will use TypeScript generics\n acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)\n\n return acc\n }\n // TODO check whey we still need the camelcase here\n const parameterName = name.startsWith('{') ? name : camelCase(name)\n\n if (type) {\n if (required) {\n acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)\n } else {\n acc.push(`${parameterName}?: ${type}`)\n }\n } else {\n acc.push(`${parameterName}`)\n }\n\n return acc\n }, [] as string[])\n .join(', ')\n }\n}\n","import type { PossiblePromise } from '@kubb/types'\n\nexport function isPromise<T>(result: PossiblePromise<T>): result is Promise<T> {\n return !!result && typeof (result as Promise<unknown>)?.then === 'function'\n}\n\nexport function isPromiseFulfilledResult<T = unknown>(result: PromiseSettledResult<unknown>): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nexport function isPromiseRejectedResult<T>(result: PromiseSettledResult<unknown>): result is Omit<PromiseRejectedResult, 'reason'> & { reason: T } {\n return result.status === 'rejected'\n}\n","export function renderTemplate<TData extends Record<string, unknown> = Record<string, unknown>>(template: string, data: TData | undefined = undefined): string {\n if (!data || !Object.keys(data).length) {\n return template.replace(/{{(.*?)}}/g, '')\n }\n\n const matches = template.match(/{{(.*?)}}/g)\n\n return (\n matches?.reduce((prev, curr) => {\n const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim()\n if (index === undefined) {\n return prev\n }\n const value = data[index]\n\n if (value === undefined) {\n return prev\n }\n\n return prev\n .replace(curr, () => {\n if (typeof value === 'boolean') {\n return `${value.toString()}` || 'false'\n }\n\n return (value as string) || ''\n })\n .trim()\n }, template) || ''\n )\n}\n","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;;ACAA;AAAA,SAAS,eAAe;AAiCjB,IAAM,iBAAN,MAAqB;AAAA,EAG1B,YAAY,MAA6B;AADzC,SAAO,QAA6B,CAAC;AAEnC,SAAK,OAAO;AAEZ,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,MAA4F;AAC9F,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAK,OAAO,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,MAAM,KAAK,EAAE,CAAC;AACxD,aAAO;AAAA,IACT;AACA,SAAK,MAAM,KAAK,IAAI;AAEpB,WAAO;AAAA,EACT;AAAA,EAEA,WAAmB;AACjB,UAAM,aAAa,QAAQ,KAAK,MAAM,OAAO,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,YAAY,IAAI,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEvH,WAAO,WACJ,OAAO,CAAC,EAAE,UAAU,KAAK,MAAM,OAAO,EACtC,OAAO,CAAC,KAAK,EAAE,MAAM,MAAM,WAAW,MAAM,GAAG,KAAK,MAAM;AACzD,UAAI,CAAC,MAAM;AAET,YAAI,KAAK,GAAG,IAAI,GAAG,KAAK,UAAU,MAAM,KAAK,OAAO,KAAK,EAAE,EAAE;AAE7D,eAAO;AAAA,MACT;AAEA,YAAM,gBAAgB,KAAK,WAAW,GAAG,IAAI,OAAO,UAAU,IAAI;AAElE,UAAI,MAAM;AACR,YAAI,UAAU;AACZ,cAAI,KAAK,GAAG,aAAa,KAAK,IAAI,GAAG,KAAK,UAAU,MAAM,KAAK,OAAO,KAAK,EAAE,EAAE;AAAA,QACjF,OAAO;AACL,cAAI,KAAK,GAAG,aAAa,MAAM,IAAI,EAAE;AAAA,QACvC;AAAA,MACF,OAAO;AACL,YAAI,KAAK,GAAG,aAAa,EAAE;AAAA,MAC7B;AAEA,aAAO;AAAA,IACT,GAAG,CAAC,CAAa,EAChB,KAAK,IAAI;AAAA,EACd;AACF;;;ACrFA;AAEO,SAAS,UAAa,QAAkD;AAC7E,SAAO,CAAC,CAAC,UAAU,OAAQ,QAA6B,SAAS;AACnE;AAEO,SAAS,yBAAsC,QAA4E;AAChI,SAAO,OAAO,WAAW;AAC3B;AAEO,SAAS,wBAA2B,QAAwG;AACjJ,SAAO,OAAO,WAAW;AAC3B;;;ACZA;AAAO,SAAS,eAAgF,UAAkB,OAA0B,QAAmB;AAC7J,MAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,QAAQ;AACtC,WAAO,SAAS,QAAQ,cAAc,EAAE;AAAA,EAC1C;AAEA,QAAM,UAAU,SAAS,MAAM,YAAY;AAE3C,SACE,SAAS,OAAO,CAAC,MAAM,SAAS;AAC9B,UAAM,QAAQ,KAAK,MAAM,OAAO,EAAE,OAAO,OAAO,EAAE,CAAC,GAAG,KAAK;AAC3D,QAAI,UAAU,QAAW;AACvB,aAAO;AAAA,IACT;AACA,UAAM,QAAQ,KAAK,KAAK;AAExB,QAAI,UAAU,QAAW;AACvB,aAAO;AAAA,IACT;AAEA,WAAO,KACJ,QAAQ,MAAM,MAAM;AACnB,UAAI,OAAO,UAAU,WAAW;AAC9B,eAAO,GAAG,MAAM,SAAS,CAAC,MAAM;AAAA,MAClC;AAEA,aAAQ,SAAoB;AAAA,IAC9B,CAAC,EACA,KAAK;AAAA,EACV,GAAG,QAAQ,KAAK;AAEpB;;;AC9BA;AAAA,eAAsB,QAAQ,IAA8B;AAC1D,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,eAAW,MAAM;AACf,cAAQ,IAAI;AAAA,IACd,GAAG,EAAE;AAAA,EACP,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../src/utils/index.ts","../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts"],"sourcesContent":["export type { FunctionParamsAST } from './FunctionParams.ts'\nexport { FunctionParams } from './FunctionParams.ts'\nexport { isPromise, isPromiseFulfilledResult, isPromiseRejectedResult } from './promise.ts'\nexport { renderTemplate } from './renderTemplate.ts'\nexport { timeout } from './timeout.ts'\nexport { getUniqueName, setUniqueName } from './uniqueName.ts'\nexport type { URLObject } from './URLPath.ts'\nexport { URLPath } from './URLPath.ts'\n","import { orderBy } from 'natural-orderby'\n\nimport { camelCase } from '../transformers/casing.ts'\n\ntype FunctionParamsASTWithoutType = {\n name?: string\n type?: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\ntype FunctionParamsASTWithType = {\n name?: never\n type: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\nexport class FunctionParams {\n type?: 'generics' | 'typed'\n #items: Array<FunctionParamsAST | FunctionParamsAST[]> = []\n constructor(type?: 'generics' | 'typed') {\n this.type = type\n\n return this\n }\n\n get items(): FunctionParamsAST[] {\n return this.#items.flat()\n }\n\n add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams {\n if (!item) {\n return this\n }\n\n if (Array.isArray(item)) {\n item.filter(Boolean).forEach((it) => this.#items.push(it))\n return this\n }\n this.#items.push(item)\n\n return this\n }\n static #orderItems(items: Array<FunctionParamsAST | FunctionParamsAST[]>) {\n return orderBy(items.filter(Boolean), [\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return !v.default\n },\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return v.required ?? true\n },\n ], [\n 'desc',\n 'desc',\n ])\n }\n\n static #addParams(acc: string[], item: FunctionParamsAST) {\n const { enabled = true, name, type, required = true, ...rest } = item\n\n if (!enabled) {\n return acc\n }\n\n if (!name) {\n // when name is not se we will use TypeScript generics\n acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)\n\n return acc\n }\n // TODO check whey we still need the camelcase here\n const parameterName = name.startsWith('{') ? name : camelCase(name)\n\n if (type) {\n if (required) {\n acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)\n } else {\n acc.push(`${parameterName}?: ${type}`)\n }\n } else {\n acc.push(`${parameterName}`)\n }\n\n return acc\n }\n\n static toObject(items: FunctionParamsAST[]): FunctionParamsAST {\n let type: string[] = []\n let name: string[] = []\n\n const enabled = items.every(item => item.enabled) ? items.at(0)?.enabled : true\n const required = items.every(item => item.required) ?? true\n\n items.forEach(item => {\n name = FunctionParams.#addParams(name, { ...item, type: undefined })\n if (items.some(item => item.type)) {\n type = FunctionParams.#addParams(type, item)\n }\n })\n\n return {\n name: `{ ${name.join(', ')} }`,\n type: type.length ? `{ ${type.join(', ')} }` : undefined,\n enabled,\n required,\n }\n }\n\n static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string {\n const sortedData = this.#orderItems(items)\n\n return sortedData\n .reduce((acc, item) => {\n if (Array.isArray(item)) {\n const subItems = this.#orderItems(item) as FunctionParamsAST[]\n const objectItem = FunctionParams.toObject(subItems)\n\n return FunctionParams.#addParams(acc, objectItem)\n }\n\n return FunctionParams.#addParams(acc, item)\n }, [] as string[])\n .join(', ')\n }\n\n toObject(): FunctionParamsAST {\n const items = FunctionParams.#orderItems(this.#items).flat()\n\n return FunctionParams.toObject(items)\n }\n\n toString(): string {\n const items = FunctionParams.#orderItems(this.#items)\n\n return FunctionParams.toString(items)\n }\n}\n","import type { PossiblePromise } from '@kubb/types'\n\nexport function isPromise<T>(result: PossiblePromise<T>): result is Promise<T> {\n return !!result && typeof (result as Promise<unknown>)?.then === 'function'\n}\n\nexport function isPromiseFulfilledResult<T = unknown>(result: PromiseSettledResult<unknown>): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nexport function isPromiseRejectedResult<T>(result: PromiseSettledResult<unknown>): result is Omit<PromiseRejectedResult, 'reason'> & { reason: T } {\n return result.status === 'rejected'\n}\n","export function renderTemplate<TData extends Record<string, unknown> = Record<string, unknown>>(template: string, data: TData | undefined = undefined): string {\n if (!data || !Object.keys(data).length) {\n return template.replace(/{{(.*?)}}/g, '')\n }\n\n const matches = template.match(/{{(.*?)}}/g)\n\n return (\n matches?.reduce((prev, curr) => {\n const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim()\n if (index === undefined) {\n return prev\n }\n const value = data[index]\n\n if (value === undefined) {\n return prev\n }\n\n return prev\n .replace(curr, () => {\n if (typeof value === 'boolean') {\n return `${value.toString()}` || 'false'\n }\n\n return (value as string) || ''\n })\n .trim()\n }, template) || ''\n )\n}\n","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n"],"mappings":"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","names":["item"]}