typetify 0.1.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/LICENSE +21 -0
- package/README.md +327 -0
- package/dist/async/index.d.mts +152 -0
- package/dist/async/index.d.ts +152 -0
- package/dist/async/index.js +49 -0
- package/dist/async/index.js.map +1 -0
- package/dist/async/index.mjs +4 -0
- package/dist/async/index.mjs.map +1 -0
- package/dist/chunk-2LJ6NZ6K.js +108 -0
- package/dist/chunk-2LJ6NZ6K.js.map +1 -0
- package/dist/chunk-44Y5JSGU.js +145 -0
- package/dist/chunk-44Y5JSGU.js.map +1 -0
- package/dist/chunk-4NXETABV.mjs +116 -0
- package/dist/chunk-4NXETABV.mjs.map +1 -0
- package/dist/chunk-6ZBTL74K.js +129 -0
- package/dist/chunk-6ZBTL74K.js.map +1 -0
- package/dist/chunk-CN3GYRJN.mjs +137 -0
- package/dist/chunk-CN3GYRJN.mjs.map +1 -0
- package/dist/chunk-CNTE6ZVH.js +359 -0
- package/dist/chunk-CNTE6ZVH.js.map +1 -0
- package/dist/chunk-DBENOSTA.js +156 -0
- package/dist/chunk-DBENOSTA.js.map +1 -0
- package/dist/chunk-DWIG5GF2.js +135 -0
- package/dist/chunk-DWIG5GF2.js.map +1 -0
- package/dist/chunk-EAUTTWTQ.mjs +231 -0
- package/dist/chunk-EAUTTWTQ.mjs.map +1 -0
- package/dist/chunk-FXWYPHA3.mjs +13 -0
- package/dist/chunk-FXWYPHA3.mjs.map +1 -0
- package/dist/chunk-GS3PP67B.js +200 -0
- package/dist/chunk-GS3PP67B.js.map +1 -0
- package/dist/chunk-J5LGTIGS.mjs +9 -0
- package/dist/chunk-J5LGTIGS.mjs.map +1 -0
- package/dist/chunk-JAOGY4JO.mjs +1007 -0
- package/dist/chunk-JAOGY4JO.mjs.map +1 -0
- package/dist/chunk-JB6UXRKD.mjs +97 -0
- package/dist/chunk-JB6UXRKD.mjs.map +1 -0
- package/dist/chunk-JQHUBZ4M.js +88 -0
- package/dist/chunk-JQHUBZ4M.js.map +1 -0
- package/dist/chunk-L3M7LGKL.mjs +128 -0
- package/dist/chunk-L3M7LGKL.mjs.map +1 -0
- package/dist/chunk-LT7JK7RJ.js +87 -0
- package/dist/chunk-LT7JK7RJ.js.map +1 -0
- package/dist/chunk-OEJK37LO.mjs +328 -0
- package/dist/chunk-OEJK37LO.mjs.map +1 -0
- package/dist/chunk-OPVES6W2.js +16 -0
- package/dist/chunk-OPVES6W2.js.map +1 -0
- package/dist/chunk-OWNUKWXV.js +291 -0
- package/dist/chunk-OWNUKWXV.js.map +1 -0
- package/dist/chunk-PQTXSQ4P.js +369 -0
- package/dist/chunk-PQTXSQ4P.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +11 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/chunk-QFR7DVAJ.mjs +63 -0
- package/dist/chunk-QFR7DVAJ.mjs.map +1 -0
- package/dist/chunk-SGQNLTRK.js +73 -0
- package/dist/chunk-SGQNLTRK.js.map +1 -0
- package/dist/chunk-SIA5BSVY.js +1054 -0
- package/dist/chunk-SIA5BSVY.js.map +1 -0
- package/dist/chunk-SRDWUHDY.mjs +188 -0
- package/dist/chunk-SRDWUHDY.mjs.map +1 -0
- package/dist/chunk-TXU7NTT4.js +249 -0
- package/dist/chunk-TXU7NTT4.js.map +1 -0
- package/dist/chunk-TZEWREAC.mjs +277 -0
- package/dist/chunk-TZEWREAC.mjs.map +1 -0
- package/dist/chunk-V6CWFDIJ.mjs +123 -0
- package/dist/chunk-V6CWFDIJ.mjs.map +1 -0
- package/dist/chunk-YBJC5WMX.mjs +341 -0
- package/dist/chunk-YBJC5WMX.mjs.map +1 -0
- package/dist/chunk-YOPAXITF.mjs +75 -0
- package/dist/chunk-YOPAXITF.mjs.map +1 -0
- package/dist/chunk-ZE4FDBRI.mjs +79 -0
- package/dist/chunk-ZE4FDBRI.mjs.map +1 -0
- package/dist/collection/index.d.mts +291 -0
- package/dist/collection/index.d.ts +291 -0
- package/dist/collection/index.js +125 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/index.mjs +4 -0
- package/dist/collection/index.mjs.map +1 -0
- package/dist/core/index.d.mts +85 -0
- package/dist/core/index.d.ts +85 -0
- package/dist/core/index.js +41 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/index.mjs +4 -0
- package/dist/core/index.mjs.map +1 -0
- package/dist/decorator/index.d.mts +165 -0
- package/dist/decorator/index.d.ts +165 -0
- package/dist/decorator/index.js +57 -0
- package/dist/decorator/index.js.map +1 -0
- package/dist/decorator/index.mjs +4 -0
- package/dist/decorator/index.mjs.map +1 -0
- package/dist/dx/index.d.mts +125 -0
- package/dist/dx/index.d.ts +125 -0
- package/dist/dx/index.js +53 -0
- package/dist/dx/index.js.map +1 -0
- package/dist/dx/index.mjs +4 -0
- package/dist/dx/index.mjs.map +1 -0
- package/dist/flow/index.d.mts +165 -0
- package/dist/flow/index.d.ts +165 -0
- package/dist/flow/index.js +50 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/flow/index.mjs +5 -0
- package/dist/flow/index.mjs.map +1 -0
- package/dist/fn/index.d.mts +77 -0
- package/dist/fn/index.d.ts +77 -0
- package/dist/fn/index.js +37 -0
- package/dist/fn/index.js.map +1 -0
- package/dist/fn/index.mjs +4 -0
- package/dist/fn/index.mjs.map +1 -0
- package/dist/guards/index.d.mts +165 -0
- package/dist/guards/index.d.ts +165 -0
- package/dist/guards/index.js +69 -0
- package/dist/guards/index.js.map +1 -0
- package/dist/guards/index.mjs +4 -0
- package/dist/guards/index.mjs.map +1 -0
- package/dist/index.d.mts +228 -0
- package/dist/index.d.ts +228 -0
- package/dist/index.js +775 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +51 -0
- package/dist/index.mjs.map +1 -0
- package/dist/input/index.d.mts +185 -0
- package/dist/input/index.d.ts +185 -0
- package/dist/input/index.js +74 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input/index.mjs +5 -0
- package/dist/input/index.mjs.map +1 -0
- package/dist/iterator/index.d.mts +209 -0
- package/dist/iterator/index.d.ts +209 -0
- package/dist/iterator/index.js +522 -0
- package/dist/iterator/index.js.map +1 -0
- package/dist/iterator/index.mjs +502 -0
- package/dist/iterator/index.mjs.map +1 -0
- package/dist/logic/index.d.mts +531 -0
- package/dist/logic/index.d.ts +531 -0
- package/dist/logic/index.js +416 -0
- package/dist/logic/index.js.map +1 -0
- package/dist/logic/index.mjs +367 -0
- package/dist/logic/index.mjs.map +1 -0
- package/dist/math/index.d.mts +86 -0
- package/dist/math/index.d.ts +86 -0
- package/dist/math/index.js +45 -0
- package/dist/math/index.js.map +1 -0
- package/dist/math/index.mjs +4 -0
- package/dist/math/index.mjs.map +1 -0
- package/dist/narrowing/index.d.mts +429 -0
- package/dist/narrowing/index.d.ts +429 -0
- package/dist/narrowing/index.js +220 -0
- package/dist/narrowing/index.js.map +1 -0
- package/dist/narrowing/index.mjs +186 -0
- package/dist/narrowing/index.mjs.map +1 -0
- package/dist/object/index.d.mts +327 -0
- package/dist/object/index.d.ts +327 -0
- package/dist/object/index.js +113 -0
- package/dist/object/index.js.map +1 -0
- package/dist/object/index.mjs +4 -0
- package/dist/object/index.mjs.map +1 -0
- package/dist/result/index.d.mts +201 -0
- package/dist/result/index.d.ts +201 -0
- package/dist/result/index.js +86 -0
- package/dist/result/index.js.map +1 -0
- package/dist/result/index.mjs +5 -0
- package/dist/result/index.mjs.map +1 -0
- package/dist/schema/index.d.mts +216 -0
- package/dist/schema/index.d.ts +216 -0
- package/dist/schema/index.js +410 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/index.mjs +384 -0
- package/dist/schema/index.mjs.map +1 -0
- package/dist/string/index.d.mts +102 -0
- package/dist/string/index.d.ts +102 -0
- package/dist/string/index.js +49 -0
- package/dist/string/index.js.map +1 -0
- package/dist/string/index.mjs +4 -0
- package/dist/string/index.mjs.map +1 -0
- package/dist/typed/index.d.mts +1962 -0
- package/dist/typed/index.d.ts +1962 -0
- package/dist/typed/index.js +193 -0
- package/dist/typed/index.js.map +1 -0
- package/dist/typed/index.mjs +4 -0
- package/dist/typed/index.mjs.map +1 -0
- package/dist/types-Db0vauC3.d.mts +258 -0
- package/dist/types-Db0vauC3.d.ts +258 -0
- package/dist/types-VsDp2t8s.d.mts +30 -0
- package/dist/types-VsDp2t8s.d.ts +30 -0
- package/package.json +157 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { __export } from './chunk-J5LGTIGS.mjs';
|
|
2
|
+
|
|
3
|
+
// src/guards/index.ts
|
|
4
|
+
var guards_exports = {};
|
|
5
|
+
__export(guards_exports, {
|
|
6
|
+
hasKey: () => hasKey,
|
|
7
|
+
hasKeys: () => hasKeys,
|
|
8
|
+
isArray: () => isArray,
|
|
9
|
+
isBoolean: () => isBoolean,
|
|
10
|
+
isDate: () => isDate,
|
|
11
|
+
isEmpty: () => isEmpty,
|
|
12
|
+
isError: () => isError,
|
|
13
|
+
isFunction: () => isFunction,
|
|
14
|
+
isNonEmpty: () => isNonEmpty,
|
|
15
|
+
isNumber: () => isNumber,
|
|
16
|
+
isObject: () => isObject,
|
|
17
|
+
isPlainObject: () => isPlainObject,
|
|
18
|
+
isPromise: () => isPromise,
|
|
19
|
+
isString: () => isString,
|
|
20
|
+
isSymbol: () => isSymbol
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// src/guards/isObject.ts
|
|
24
|
+
function isObject(value) {
|
|
25
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// src/guards/isPlainObject.ts
|
|
29
|
+
function isPlainObject(value) {
|
|
30
|
+
if (typeof value !== "object" || value === null) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const prototype = Object.getPrototypeOf(value);
|
|
34
|
+
return prototype === null || prototype === Object.prototype;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// src/guards/isString.ts
|
|
38
|
+
function isString(value) {
|
|
39
|
+
return typeof value === "string";
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// src/guards/isNumber.ts
|
|
43
|
+
function isNumber(value) {
|
|
44
|
+
return typeof value === "number" && !Number.isNaN(value);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// src/guards/isBoolean.ts
|
|
48
|
+
function isBoolean(value) {
|
|
49
|
+
return typeof value === "boolean";
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// src/guards/isFunction.ts
|
|
53
|
+
function isFunction(value) {
|
|
54
|
+
return typeof value === "function";
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// src/guards/isArray.ts
|
|
58
|
+
function isArray(value, guard) {
|
|
59
|
+
if (!Array.isArray(value)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
if (guard) {
|
|
63
|
+
return value.every(guard);
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// src/guards/isDate.ts
|
|
69
|
+
function isDate(value) {
|
|
70
|
+
return value instanceof Date && !Number.isNaN(value.getTime());
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// src/guards/isPromise.ts
|
|
74
|
+
function isPromise(value) {
|
|
75
|
+
return value instanceof Promise || value !== null && typeof value === "object" && "then" in value && typeof value.then === "function";
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// src/guards/isError.ts
|
|
79
|
+
function isError(value) {
|
|
80
|
+
return value instanceof Error;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// src/guards/isSymbol.ts
|
|
84
|
+
function isSymbol(value) {
|
|
85
|
+
return typeof value === "symbol";
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// src/guards/hasKey.ts
|
|
89
|
+
function hasKey(obj, key) {
|
|
90
|
+
return obj !== null && typeof obj === "object" && key in obj;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// src/guards/hasKeys.ts
|
|
94
|
+
function hasKeys(obj, keys) {
|
|
95
|
+
if (obj === null || typeof obj !== "object") {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
return keys.every((key) => key in obj);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// src/guards/isEmpty.ts
|
|
102
|
+
function isEmpty(value) {
|
|
103
|
+
if (value === null || value === void 0) {
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
if (typeof value === "string") {
|
|
107
|
+
return value.trim().length === 0;
|
|
108
|
+
}
|
|
109
|
+
if (Array.isArray(value)) {
|
|
110
|
+
return value.length === 0;
|
|
111
|
+
}
|
|
112
|
+
if (value instanceof Map || value instanceof Set) {
|
|
113
|
+
return value.size === 0;
|
|
114
|
+
}
|
|
115
|
+
if (typeof value === "object") {
|
|
116
|
+
return Object.keys(value).length === 0;
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// src/guards/isNonEmpty.ts
|
|
122
|
+
function isNonEmpty(value) {
|
|
123
|
+
return !isEmpty(value);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export { guards_exports, hasKey, hasKeys, isArray, isBoolean, isDate, isEmpty, isError, isFunction, isNonEmpty, isNumber, isObject, isPlainObject, isPromise, isString, isSymbol };
|
|
127
|
+
//# sourceMappingURL=chunk-L3M7LGKL.mjs.map
|
|
128
|
+
//# sourceMappingURL=chunk-L3M7LGKL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/guards/index.ts","../src/guards/isObject.ts","../src/guards/isPlainObject.ts","../src/guards/isString.ts","../src/guards/isNumber.ts","../src/guards/isBoolean.ts","../src/guards/isFunction.ts","../src/guards/isArray.ts","../src/guards/isDate.ts","../src/guards/isPromise.ts","../src/guards/isError.ts","../src/guards/isSymbol.ts","../src/guards/hasKey.ts","../src/guards/hasKeys.ts","../src/guards/isEmpty.ts","../src/guards/isNonEmpty.ts"],"names":[],"mappings":"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","file":"chunk-L3M7LGKL.mjs","sourcesContent":["export { isObject } from './isObject'\nexport { isPlainObject } from './isPlainObject'\nexport { isString } from './isString'\nexport { isNumber } from './isNumber'\nexport { isBoolean } from './isBoolean'\nexport { isFunction } from './isFunction'\nexport { isArray } from './isArray'\nexport { isDate } from './isDate'\nexport { isPromise } from './isPromise'\nexport { isError } from './isError'\nexport { isSymbol } from './isSymbol'\nexport { hasKey } from './hasKey'\nexport { hasKeys } from './hasKeys'\nexport { isEmpty } from './isEmpty'\nexport { isNonEmpty } from './isNonEmpty'\n","/**\n * Checks if a value is an object (not null, not an array).\n *\n * @example\n * if (isObject(value)) {\n * // value is Record<string, unknown>\n * }\n */\nexport function isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n","/**\n * Checks if a value is a plain object (created by {} or Object.create(null)).\n * Excludes class instances, arrays, and other object types.\n *\n * @example\n * isPlainObject({}) // true\n * isPlainObject(new Date()) // false\n * isPlainObject([]) // false\n */\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n if (typeof value !== 'object' || value === null) {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n","/**\n * Checks if a value is a string.\n *\n * @example\n * if (isString(value)) {\n * console.log(value.toUpperCase())\n * }\n */\nexport function isString(value: unknown): value is string {\n return typeof value === 'string'\n}\n","/**\n * Checks if a value is a number (excludes NaN).\n *\n * @example\n * isNumber(42) // true\n * isNumber(NaN) // false\n * isNumber('42') // false\n */\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number' && !Number.isNaN(value)\n}\n","/**\n * Checks if a value is a boolean.\n *\n * @example\n * isBoolean(true) // true\n * isBoolean(1) // false\n */\nexport function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean'\n}\n","/**\n * Checks if a value is a function.\n *\n * @example\n * isFunction(() => {}) // true\n * isFunction(console.log) // true\n */\nexport function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function'\n}\n","/**\n * Checks if a value is an array.\n * Optionally checks if all elements match a guard function.\n *\n * @example\n * isArray([1, 2, 3]) // true\n * isArray([1, 2, 3], isNumber) // true\n * isArray([1, '2', 3], isNumber) // false\n */\nexport function isArray(value: unknown): value is unknown[]\nexport function isArray<T>(\n value: unknown,\n guard: (item: unknown) => item is T\n): value is T[]\nexport function isArray<T>(\n value: unknown,\n guard?: (item: unknown) => item is T\n): value is T[] {\n if (!Array.isArray(value)) {\n return false\n }\n\n if (guard) {\n return value.every(guard)\n }\n\n return true\n}\n","/**\n * Checks if a value is a valid Date object.\n * Returns false for invalid dates (e.g., new Date('invalid')).\n *\n * @example\n * isDate(new Date()) // true\n * isDate(new Date('invalid')) // false\n * isDate('2024-01-01') // false\n */\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date && !Number.isNaN(value.getTime())\n}\n","/**\n * Checks if a value is a Promise or Promise-like object.\n *\n * @example\n * isPromise(Promise.resolve()) // true\n * isPromise({ then: () => {} }) // true\n * isPromise({}) // false\n */\nexport function isPromise<T = unknown>(value: unknown): value is Promise<T> {\n return (\n value instanceof Promise ||\n (value !== null &&\n typeof value === 'object' &&\n 'then' in value &&\n typeof (value as Record<string, unknown>).then === 'function')\n )\n}\n","/**\n * Checks if a value is an Error instance.\n *\n * @example\n * isError(new Error('oops')) // true\n * isError(new TypeError('bad')) // true\n * isError({ message: 'fake' }) // false\n */\nexport function isError(value: unknown): value is Error {\n return value instanceof Error\n}\n","/**\n * Checks if a value is a symbol.\n *\n * @example\n * isSymbol(Symbol('test')) // true\n * isSymbol('symbol') // false\n */\nexport function isSymbol(value: unknown): value is symbol {\n return typeof value === 'symbol'\n}\n","/**\n * Checks if an object has a specific key.\n * Narrows the type to include that key.\n *\n * @example\n * const obj: unknown = { name: 'John' }\n * if (hasKey(obj, 'name')) {\n * console.log(obj.name) // safe access\n * }\n */\nexport function hasKey<K extends PropertyKey>(\n obj: unknown,\n key: K\n): obj is Record<K, unknown> {\n return obj !== null && typeof obj === 'object' && key in obj\n}\n","/**\n * Checks if an object has all specified keys.\n * Narrows the type to include those keys.\n *\n * @example\n * const obj: unknown = { name: 'John', age: 30 }\n * if (hasKeys(obj, ['name', 'age'])) {\n * console.log(obj.name, obj.age) // safe access\n * }\n */\nexport function hasKeys<K extends PropertyKey>(\n obj: unknown,\n keys: readonly K[]\n): obj is Record<K, unknown> {\n if (obj === null || typeof obj !== 'object') {\n return false\n }\n\n return keys.every((key) => key in obj)\n}\n","/**\n * Checks if a value is empty.\n * - String: empty or whitespace only\n * - Array: length is 0\n * - Object: no own enumerable keys\n * - null/undefined: true\n * - Map/Set: size is 0\n *\n * @example\n * isEmpty('') // true\n * isEmpty(' ') // true\n * isEmpty([]) // true\n * isEmpty({}) // true\n * isEmpty(null) // true\n * isEmpty([1]) // false\n */\nexport function isEmpty(value: unknown): boolean {\n if (value === null || value === undefined) {\n return true\n }\n\n if (typeof value === 'string') {\n return value.trim().length === 0\n }\n\n if (Array.isArray(value)) {\n return value.length === 0\n }\n\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0\n }\n\n if (typeof value === 'object') {\n return Object.keys(value).length === 0\n }\n\n return false\n}\n","import { isEmpty } from './isEmpty'\n\n/**\n * Checks if a value is not empty.\n * Opposite of isEmpty.\n *\n * @example\n * isNonEmpty('hello') // true\n * isNonEmpty([1, 2]) // true\n * isNonEmpty({}) // false\n */\nexport function isNonEmpty(value: unknown): boolean {\n return !isEmpty(value)\n}\n"]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkPZ5AY32C_js = require('./chunk-PZ5AY32C.js');
|
|
4
|
+
|
|
5
|
+
// src/string/index.ts
|
|
6
|
+
var string_exports = {};
|
|
7
|
+
chunkPZ5AY32C_js.__export(string_exports, {
|
|
8
|
+
camelCase: () => camelCase,
|
|
9
|
+
capitalize: () => capitalize,
|
|
10
|
+
kebabCase: () => kebabCase,
|
|
11
|
+
pascalCase: () => pascalCase,
|
|
12
|
+
slugify: () => slugify,
|
|
13
|
+
snakeCase: () => snakeCase,
|
|
14
|
+
template: () => template,
|
|
15
|
+
truncate: () => truncate,
|
|
16
|
+
uncapitalize: () => uncapitalize,
|
|
17
|
+
words: () => words
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
// src/string/capitalize.ts
|
|
21
|
+
function capitalize(str) {
|
|
22
|
+
if (str.length === 0) return "";
|
|
23
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// src/string/uncapitalize.ts
|
|
27
|
+
function uncapitalize(str) {
|
|
28
|
+
if (str.length === 0) return "";
|
|
29
|
+
return str.charAt(0).toLowerCase() + str.slice(1);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// src/string/camelCase.ts
|
|
33
|
+
function camelCase(str) {
|
|
34
|
+
return str.replace(/[-_\s]+(.)?/g, (_, char) => char ? char.toUpperCase() : "").replace(/^[A-Z]/, (char) => char.toLowerCase());
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// src/string/kebabCase.ts
|
|
38
|
+
function kebabCase(str) {
|
|
39
|
+
return str.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// src/string/snakeCase.ts
|
|
43
|
+
function snakeCase(str) {
|
|
44
|
+
return str.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[\s-]+/g, "_").toLowerCase();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// src/string/pascalCase.ts
|
|
48
|
+
function pascalCase(str) {
|
|
49
|
+
return str.replace(/[-_\s]+(.)?/g, (_, char) => char ? char.toUpperCase() : "").replace(/^[a-z]/, (char) => char.toUpperCase());
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// src/string/truncate.ts
|
|
53
|
+
function truncate(str, length, suffix = "...") {
|
|
54
|
+
if (str.length <= length) return str;
|
|
55
|
+
return str.slice(0, length) + suffix;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// src/string/slugify.ts
|
|
59
|
+
function slugify(str) {
|
|
60
|
+
return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/[\s_]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// src/string/template.ts
|
|
64
|
+
function template(str, vars) {
|
|
65
|
+
return str.replace(/\{\{(\w+)\}\}/g, (_, key) => {
|
|
66
|
+
return key in vars ? String(vars[key]) : `{{${key}}}`;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// src/string/words.ts
|
|
71
|
+
function words(str) {
|
|
72
|
+
return str.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/[-_]+/g, " ").trim().split(/\s+/).filter(Boolean);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
exports.camelCase = camelCase;
|
|
76
|
+
exports.capitalize = capitalize;
|
|
77
|
+
exports.kebabCase = kebabCase;
|
|
78
|
+
exports.pascalCase = pascalCase;
|
|
79
|
+
exports.slugify = slugify;
|
|
80
|
+
exports.snakeCase = snakeCase;
|
|
81
|
+
exports.string_exports = string_exports;
|
|
82
|
+
exports.template = template;
|
|
83
|
+
exports.truncate = truncate;
|
|
84
|
+
exports.uncapitalize = uncapitalize;
|
|
85
|
+
exports.words = words;
|
|
86
|
+
//# sourceMappingURL=chunk-LT7JK7RJ.js.map
|
|
87
|
+
//# sourceMappingURL=chunk-LT7JK7RJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/string/index.ts","../src/string/capitalize.ts","../src/string/uncapitalize.ts","../src/string/camelCase.ts","../src/string/kebabCase.ts","../src/string/snakeCase.ts","../src/string/pascalCase.ts","../src/string/truncate.ts","../src/string/slugify.ts","../src/string/template.ts","../src/string/words.ts"],"names":["__export"],"mappings":";;;;;AAAA,IAAA,cAAA,GAAA;AAAAA,yBAAA,CAAA,cAAA,EAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,KAAA,EAAA,MAAA;AAAA,CAAA,CAAA;;;ACQO,SAAS,WAA6B,GAAA,EAAuB;AAClE,EAAA,IAAI,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG,OAAO,EAAA;AAC7B,EAAA,OAAQ,GAAA,CAAI,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,GAAA,CAAI,MAAM,CAAC,CAAA;AACnD;;;ACHO,SAAS,aAA+B,GAAA,EAAyB;AACtE,EAAA,IAAI,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG,OAAO,EAAA;AAC7B,EAAA,OAAQ,GAAA,CAAI,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,GAAA,CAAI,MAAM,CAAC,CAAA;AACnD;;;ACHO,SAAS,UAAU,GAAA,EAAqB;AAC7C,EAAA,OAAO,IACJ,OAAA,CAAQ,cAAA,EAAgB,CAAC,CAAA,EAAG,IAAA,KAAU,OAAO,IAAA,CAAK,WAAA,EAAY,GAAI,EAAG,EACrE,OAAA,CAAQ,QAAA,EAAU,CAAC,IAAA,KAAS,IAAA,CAAK,aAAa,CAAA;AACnD;;;ACJO,SAAS,UAAU,GAAA,EAAqB;AAC7C,EAAA,OAAO,GAAA,CACJ,QAAQ,iBAAA,EAAmB,OAAO,EAClC,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAA,CACtB,WAAA,EAAY;AACjB;;;ACLO,SAAS,UAAU,GAAA,EAAqB;AAC7C,EAAA,OAAO,GAAA,CACJ,QAAQ,iBAAA,EAAmB,OAAO,EAClC,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAA,CACtB,WAAA,EAAY;AACjB;;;ACLO,SAAS,WAAW,GAAA,EAAqB;AAC9C,EAAA,OAAO,IACJ,OAAA,CAAQ,cAAA,EAAgB,CAAC,CAAA,EAAG,IAAA,KAAU,OAAO,IAAA,CAAK,WAAA,EAAY,GAAI,EAAG,EACrE,OAAA,CAAQ,QAAA,EAAU,CAAC,IAAA,KAAS,IAAA,CAAK,aAAa,CAAA;AACnD;;;ACJO,SAAS,QAAA,CACd,GAAA,EACA,MAAA,EACA,MAAA,GAAiB,KAAA,EACT;AACR,EAAA,IAAI,GAAA,CAAI,MAAA,IAAU,MAAA,EAAQ,OAAO,GAAA;AACjC,EAAA,OAAO,GAAA,CAAI,KAAA,CAAM,CAAA,EAAG,MAAM,CAAA,GAAI,MAAA;AAChC;;;ACPO,SAAS,QAAQ,GAAA,EAAqB;AAC3C,EAAA,OAAO,GAAA,CACJ,SAAA,CAAU,KAAK,CAAA,CACf,OAAA,CAAQ,kBAAA,EAAoB,EAAE,CAAA,CAC9B,WAAA,EAAY,CACZ,IAAA,EAAK,CACL,OAAA,CAAQ,iBAAiB,EAAE,CAAA,CAC3B,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAA,CACtB,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAA,CAClB,OAAA,CAAQ,QAAA,EAAU,EAAE,CAAA;AACzB;;;ACVO,SAAS,QAAA,CACd,KACA,IAAA,EACQ;AACR,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,gBAAA,EAAkB,CAAC,GAAG,GAAA,KAAgB;AACvD,IAAA,OAAO,GAAA,IAAO,OAAO,MAAA,CAAO,IAAA,CAAK,GAAG,CAAC,CAAA,GAAI,KAAK,GAAG,CAAA,EAAA,CAAA;AAAA,EACnD,CAAC,CAAA;AACH;;;ACNO,SAAS,MAAM,GAAA,EAAuB;AAC3C,EAAA,OAAO,GAAA,CACJ,OAAA,CAAQ,iBAAA,EAAmB,OAAO,EAClC,OAAA,CAAQ,QAAA,EAAU,GAAG,CAAA,CACrB,MAAK,CACL,KAAA,CAAM,KAAK,CAAA,CACX,OAAO,OAAO,CAAA;AACnB","file":"chunk-LT7JK7RJ.js","sourcesContent":["export { capitalize } from './capitalize'\nexport { uncapitalize } from './uncapitalize'\nexport { camelCase } from './camelCase'\nexport { kebabCase } from './kebabCase'\nexport { snakeCase } from './snakeCase'\nexport { pascalCase } from './pascalCase'\nexport { truncate } from './truncate'\nexport { slugify } from './slugify'\nexport { template } from './template'\nexport { words } from './words'\n","/**\n * Capitalizes the first letter of a string.\n * Returns the string with proper TypeScript literal type.\n *\n * @example\n * capitalize('hello') // 'Hello'\n * capitalize('WORLD') // 'WORLD'\n */\nexport function capitalize<T extends string>(str: T): Capitalize<T> {\n if (str.length === 0) return '' as Capitalize<T>\n return (str.charAt(0).toUpperCase() + str.slice(1)) as Capitalize<T>\n}\n","/**\n * Uncapitalizes the first letter of a string.\n * Returns the string with proper TypeScript literal type.\n *\n * @example\n * uncapitalize('Hello') // 'hello'\n * uncapitalize('WORLD') // 'wORLD'\n */\nexport function uncapitalize<T extends string>(str: T): Uncapitalize<T> {\n if (str.length === 0) return '' as Uncapitalize<T>\n return (str.charAt(0).toLowerCase() + str.slice(1)) as Uncapitalize<T>\n}\n","/**\n * Converts a string to camelCase.\n *\n * @example\n * camelCase('hello world') // 'helloWorld'\n * camelCase('foo-bar') // 'fooBar'\n * camelCase('FooBar') // 'fooBar'\n */\nexport function camelCase(str: string): string {\n return str\n .replace(/[-_\\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))\n .replace(/^[A-Z]/, (char) => char.toLowerCase())\n}\n","/**\n * Converts a string to kebab-case.\n *\n * @example\n * kebabCase('helloWorld') // 'hello-world'\n * kebabCase('foo_bar') // 'foo-bar'\n * kebabCase('FooBar') // 'foo-bar'\n */\nexport function kebabCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_]+/g, '-')\n .toLowerCase()\n}\n","/**\n * Converts a string to snake_case.\n *\n * @example\n * snakeCase('helloWorld') // 'hello_world'\n * snakeCase('foo-bar') // 'foo_bar'\n * snakeCase('FooBar') // 'foo_bar'\n */\nexport function snakeCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1_$2')\n .replace(/[\\s-]+/g, '_')\n .toLowerCase()\n}\n","/**\n * Converts a string to PascalCase.\n *\n * @example\n * pascalCase('hello world') // 'HelloWorld'\n * pascalCase('foo-bar') // 'FooBar'\n * pascalCase('fooBar') // 'FooBar'\n */\nexport function pascalCase(str: string): string {\n return str\n .replace(/[-_\\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))\n .replace(/^[a-z]/, (char) => char.toUpperCase())\n}\n","/**\n * Truncates a string to a specified length, adding a suffix if truncated.\n *\n * @example\n * truncate('Hello World', 5) // 'Hello...'\n * truncate('Hello World', 5, '…') // 'Hello…'\n * truncate('Hi', 10) // 'Hi'\n */\nexport function truncate(\n str: string,\n length: number,\n suffix: string = '...'\n): string {\n if (str.length <= length) return str\n return str.slice(0, length) + suffix\n}\n","/**\n * Converts a string to a URL-friendly slug.\n *\n * @example\n * slugify('Hello World!') // 'hello-world'\n * slugify('Café Résumé') // 'cafe-resume'\n * slugify(' Multiple Spaces ') // 'multiple-spaces'\n */\nexport function slugify(str: string): string {\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase()\n .trim()\n .replace(/[^a-z0-9\\s-]/g, '')\n .replace(/[\\s_]+/g, '-')\n .replace(/-+/g, '-')\n .replace(/^-|-$/g, '')\n}\n","/**\n * Simple template string interpolation.\n * Replaces {{key}} with values from the vars object.\n *\n * @example\n * template('Hello {{name}}!', { name: 'World' }) // 'Hello World!'\n * template('{{a}} + {{b}} = {{c}}', { a: 1, b: 2, c: 3 }) // '1 + 2 = 3'\n */\nexport function template(\n str: string,\n vars: Record<string, unknown>\n): string {\n return str.replace(/\\{\\{(\\w+)\\}\\}/g, (_, key: string) => {\n return key in vars ? String(vars[key]) : `{{${key}}}`\n })\n}\n","/**\n * Splits a string into an array of words.\n * Handles camelCase, PascalCase, snake_case, kebab-case, and spaces.\n *\n * @example\n * words('helloWorld') // ['hello', 'World']\n * words('foo-bar_baz') // ['foo', 'bar', 'baz']\n * words('Hello World') // ['Hello', 'World']\n */\nexport function words(str: string): string[] {\n return str\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/[-_]+/g, ' ')\n .trim()\n .split(/\\s+/)\n .filter(Boolean)\n}\n"]}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
import { __export } from './chunk-J5LGTIGS.mjs';
|
|
2
|
+
|
|
3
|
+
// src/collection/index.ts
|
|
4
|
+
var collection_exports = {};
|
|
5
|
+
__export(collection_exports, {
|
|
6
|
+
chunk: () => chunk,
|
|
7
|
+
compact: () => compact,
|
|
8
|
+
countBy: () => countBy,
|
|
9
|
+
difference: () => difference,
|
|
10
|
+
drop: () => drop,
|
|
11
|
+
dropWhile: () => dropWhile,
|
|
12
|
+
findLast: () => findLast,
|
|
13
|
+
first: () => first,
|
|
14
|
+
flatten: () => flatten,
|
|
15
|
+
groupBy: () => groupBy,
|
|
16
|
+
head: () => head,
|
|
17
|
+
indexBy: () => indexBy,
|
|
18
|
+
init: () => init,
|
|
19
|
+
intersection: () => intersection,
|
|
20
|
+
last: () => last,
|
|
21
|
+
maxBy: () => maxBy,
|
|
22
|
+
minBy: () => minBy,
|
|
23
|
+
partition: () => partition,
|
|
24
|
+
range: () => range,
|
|
25
|
+
sample: () => sample,
|
|
26
|
+
shuffle: () => shuffle,
|
|
27
|
+
sortBy: () => sortBy,
|
|
28
|
+
sumBy: () => sumBy,
|
|
29
|
+
tail: () => tail,
|
|
30
|
+
take: () => take,
|
|
31
|
+
takeWhile: () => takeWhile,
|
|
32
|
+
unique: () => unique,
|
|
33
|
+
unzip: () => unzip,
|
|
34
|
+
zip: () => zip
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// src/collection/unique.ts
|
|
38
|
+
function unique(array, keyFn) {
|
|
39
|
+
if (!keyFn) {
|
|
40
|
+
return [...new Set(array)];
|
|
41
|
+
}
|
|
42
|
+
const seen = /* @__PURE__ */ new Set();
|
|
43
|
+
const result = [];
|
|
44
|
+
for (const item of array) {
|
|
45
|
+
const key = keyFn(item);
|
|
46
|
+
if (!seen.has(key)) {
|
|
47
|
+
seen.add(key);
|
|
48
|
+
result.push(item);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// src/collection/groupBy.ts
|
|
55
|
+
function groupBy(array, keyFn) {
|
|
56
|
+
const result = {};
|
|
57
|
+
for (const item of array) {
|
|
58
|
+
const key = keyFn(item);
|
|
59
|
+
if (!(key in result)) {
|
|
60
|
+
result[key] = [];
|
|
61
|
+
}
|
|
62
|
+
result[key].push(item);
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// src/collection/indexBy.ts
|
|
68
|
+
function indexBy(array, keyFn) {
|
|
69
|
+
const result = {};
|
|
70
|
+
for (const item of array) {
|
|
71
|
+
const key = keyFn(item);
|
|
72
|
+
result[key] = item;
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// src/collection/partition.ts
|
|
78
|
+
function partition(array, predicate) {
|
|
79
|
+
const pass = [];
|
|
80
|
+
const fail = [];
|
|
81
|
+
for (const item of array) {
|
|
82
|
+
if (predicate(item)) {
|
|
83
|
+
pass.push(item);
|
|
84
|
+
} else {
|
|
85
|
+
fail.push(item);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return [pass, fail];
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// src/collection/chunk.ts
|
|
92
|
+
function chunk(array, size) {
|
|
93
|
+
if (size <= 0) {
|
|
94
|
+
throw new Error("Chunk size must be greater than 0");
|
|
95
|
+
}
|
|
96
|
+
const result = [];
|
|
97
|
+
for (let i = 0; i < array.length; i += size) {
|
|
98
|
+
result.push(array.slice(i, i + size));
|
|
99
|
+
}
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// src/collection/compact.ts
|
|
104
|
+
function compact(array) {
|
|
105
|
+
return array.filter((item) => item !== null && item !== void 0);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// src/collection/flatten.ts
|
|
109
|
+
function flatten(array) {
|
|
110
|
+
const result = [];
|
|
111
|
+
for (const item of array) {
|
|
112
|
+
if (Array.isArray(item)) {
|
|
113
|
+
result.push(...item);
|
|
114
|
+
} else {
|
|
115
|
+
result.push(item);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// src/collection/sortBy.ts
|
|
122
|
+
function sortBy(array, keyFn, order = "asc") {
|
|
123
|
+
const sorted = [...array].sort((a, b) => {
|
|
124
|
+
const keyA = keyFn(a);
|
|
125
|
+
const keyB = keyFn(b);
|
|
126
|
+
if (keyA < keyB) return -1;
|
|
127
|
+
if (keyA > keyB) return 1;
|
|
128
|
+
return 0;
|
|
129
|
+
});
|
|
130
|
+
return order === "desc" ? sorted.reverse() : sorted;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// src/collection/first.ts
|
|
134
|
+
function first(array) {
|
|
135
|
+
return array[0];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// src/collection/last.ts
|
|
139
|
+
function last(array) {
|
|
140
|
+
return array[array.length - 1];
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// src/collection/range.ts
|
|
144
|
+
function range(start, end, step = 1) {
|
|
145
|
+
if (step === 0) {
|
|
146
|
+
throw new Error("Step cannot be 0");
|
|
147
|
+
}
|
|
148
|
+
const result = [];
|
|
149
|
+
if (step > 0) {
|
|
150
|
+
for (let i = start; i < end; i += step) {
|
|
151
|
+
result.push(i);
|
|
152
|
+
}
|
|
153
|
+
} else {
|
|
154
|
+
for (let i = start; i > end; i += step) {
|
|
155
|
+
result.push(i);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// src/collection/shuffle.ts
|
|
162
|
+
function shuffle(array) {
|
|
163
|
+
const result = [...array];
|
|
164
|
+
for (let i = result.length - 1; i > 0; i--) {
|
|
165
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
166
|
+
const temp = result[i];
|
|
167
|
+
result[i] = result[j];
|
|
168
|
+
result[j] = temp;
|
|
169
|
+
}
|
|
170
|
+
return result;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// src/collection/sample.ts
|
|
174
|
+
function sample(array) {
|
|
175
|
+
if (array.length === 0) {
|
|
176
|
+
return void 0;
|
|
177
|
+
}
|
|
178
|
+
const index = Math.floor(Math.random() * array.length);
|
|
179
|
+
return array[index];
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// src/collection/zip.ts
|
|
183
|
+
function zip(a, b) {
|
|
184
|
+
const length = Math.min(a.length, b.length);
|
|
185
|
+
const result = [];
|
|
186
|
+
for (let i = 0; i < length; i++) {
|
|
187
|
+
result.push([a[i], b[i]]);
|
|
188
|
+
}
|
|
189
|
+
return result;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// src/collection/unzip.ts
|
|
193
|
+
function unzip(array) {
|
|
194
|
+
const a = [];
|
|
195
|
+
const b = [];
|
|
196
|
+
for (const [first2, second] of array) {
|
|
197
|
+
a.push(first2);
|
|
198
|
+
b.push(second);
|
|
199
|
+
}
|
|
200
|
+
return [a, b];
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// src/collection/difference.ts
|
|
204
|
+
function difference(a, b) {
|
|
205
|
+
const setB = new Set(b);
|
|
206
|
+
return a.filter((item) => !setB.has(item));
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// src/collection/intersection.ts
|
|
210
|
+
function intersection(a, b) {
|
|
211
|
+
const setB = new Set(b);
|
|
212
|
+
return a.filter((item) => setB.has(item));
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// src/collection/take.ts
|
|
216
|
+
function take(arr, n) {
|
|
217
|
+
if (n <= 0) return [];
|
|
218
|
+
return arr.slice(0, n);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// src/collection/drop.ts
|
|
222
|
+
function drop(arr, n) {
|
|
223
|
+
if (n <= 0) return [...arr];
|
|
224
|
+
return arr.slice(n);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// src/collection/takeWhile.ts
|
|
228
|
+
function takeWhile(arr, predicate) {
|
|
229
|
+
const result = [];
|
|
230
|
+
for (let i = 0; i < arr.length; i++) {
|
|
231
|
+
const item = arr[i];
|
|
232
|
+
if (!predicate(item, i)) break;
|
|
233
|
+
result.push(item);
|
|
234
|
+
}
|
|
235
|
+
return result;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// src/collection/dropWhile.ts
|
|
239
|
+
function dropWhile(arr, predicate) {
|
|
240
|
+
let startIndex = 0;
|
|
241
|
+
for (let i = 0; i < arr.length; i++) {
|
|
242
|
+
if (!predicate(arr[i], i)) {
|
|
243
|
+
startIndex = i;
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
startIndex = arr.length;
|
|
247
|
+
}
|
|
248
|
+
return arr.slice(startIndex);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// src/collection/findLast.ts
|
|
252
|
+
function findLast(arr, predicate) {
|
|
253
|
+
for (let i = arr.length - 1; i >= 0; i--) {
|
|
254
|
+
const item = arr[i];
|
|
255
|
+
if (predicate(item, i)) return item;
|
|
256
|
+
}
|
|
257
|
+
return void 0;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// src/collection/countBy.ts
|
|
261
|
+
function countBy(arr, fn) {
|
|
262
|
+
const result = {};
|
|
263
|
+
for (const item of arr) {
|
|
264
|
+
const key = fn(item);
|
|
265
|
+
result[key] = (result[key] ?? 0) + 1;
|
|
266
|
+
}
|
|
267
|
+
return result;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// src/collection/maxBy.ts
|
|
271
|
+
function maxBy(arr, fn) {
|
|
272
|
+
if (arr.length === 0) return void 0;
|
|
273
|
+
let maxItem = arr[0];
|
|
274
|
+
let maxValue = fn(maxItem);
|
|
275
|
+
for (let i = 1; i < arr.length; i++) {
|
|
276
|
+
const item = arr[i];
|
|
277
|
+
const value = fn(item);
|
|
278
|
+
if (value > maxValue) {
|
|
279
|
+
maxValue = value;
|
|
280
|
+
maxItem = item;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return maxItem;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// src/collection/minBy.ts
|
|
287
|
+
function minBy(arr, fn) {
|
|
288
|
+
if (arr.length === 0) return void 0;
|
|
289
|
+
let minItem = arr[0];
|
|
290
|
+
let minValue = fn(minItem);
|
|
291
|
+
for (let i = 1; i < arr.length; i++) {
|
|
292
|
+
const item = arr[i];
|
|
293
|
+
const value = fn(item);
|
|
294
|
+
if (value < minValue) {
|
|
295
|
+
minValue = value;
|
|
296
|
+
minItem = item;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return minItem;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// src/collection/sumBy.ts
|
|
303
|
+
function sumBy(arr, fn) {
|
|
304
|
+
let sum = 0;
|
|
305
|
+
for (const item of arr) {
|
|
306
|
+
sum += fn(item);
|
|
307
|
+
}
|
|
308
|
+
return sum;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// src/collection/head.ts
|
|
312
|
+
function head(arr) {
|
|
313
|
+
return arr[0];
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
// src/collection/tail.ts
|
|
317
|
+
function tail(arr) {
|
|
318
|
+
return arr.slice(1);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
// src/collection/init.ts
|
|
322
|
+
function init(arr) {
|
|
323
|
+
return arr.slice(0, -1);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
export { chunk, collection_exports, compact, countBy, difference, drop, dropWhile, findLast, first, flatten, groupBy, head, indexBy, init, intersection, last, maxBy, minBy, partition, range, sample, shuffle, sortBy, sumBy, tail, take, takeWhile, unique, unzip, zip };
|
|
327
|
+
//# sourceMappingURL=chunk-OEJK37LO.mjs.map
|
|
328
|
+
//# sourceMappingURL=chunk-OEJK37LO.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/collection/index.ts","../src/collection/unique.ts","../src/collection/groupBy.ts","../src/collection/indexBy.ts","../src/collection/partition.ts","../src/collection/chunk.ts","../src/collection/compact.ts","../src/collection/flatten.ts","../src/collection/sortBy.ts","../src/collection/first.ts","../src/collection/last.ts","../src/collection/range.ts","../src/collection/shuffle.ts","../src/collection/sample.ts","../src/collection/zip.ts","../src/collection/unzip.ts","../src/collection/difference.ts","../src/collection/intersection.ts","../src/collection/take.ts","../src/collection/drop.ts","../src/collection/takeWhile.ts","../src/collection/dropWhile.ts","../src/collection/findLast.ts","../src/collection/countBy.ts","../src/collection/maxBy.ts","../src/collection/minBy.ts","../src/collection/sumBy.ts","../src/collection/head.ts","../src/collection/tail.ts","../src/collection/init.ts"],"names":["first"],"mappings":"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","file":"chunk-OEJK37LO.mjs","sourcesContent":["export { unique } from './unique'\nexport { groupBy } from './groupBy'\nexport { indexBy } from './indexBy'\nexport { partition } from './partition'\nexport { chunk } from './chunk'\nexport { compact } from './compact'\nexport { flatten } from './flatten'\nexport { sortBy } from './sortBy'\nexport { first } from './first'\nexport { last } from './last'\nexport { range } from './range'\nexport { shuffle } from './shuffle'\nexport { sample } from './sample'\nexport { zip } from './zip'\nexport { unzip } from './unzip'\nexport { difference } from './difference'\nexport { intersection } from './intersection'\nexport { take } from './take'\nexport { drop } from './drop'\nexport { takeWhile } from './takeWhile'\nexport { dropWhile } from './dropWhile'\nexport { findLast } from './findLast'\nexport { countBy } from './countBy'\nexport { maxBy } from './maxBy'\nexport { minBy } from './minBy'\nexport { sumBy } from './sumBy'\nexport { head } from './head'\nexport { tail } from './tail'\nexport { init } from './init'\n","/**\n * Returns an array with unique values.\n * Optionally accepts a key function to determine uniqueness.\n *\n * @example\n * unique([1, 2, 2, 3]) // [1, 2, 3]\n * unique([{ id: 1 }, { id: 1 }, { id: 2 }], item => item.id) // [{ id: 1 }, { id: 2 }]\n */\nexport function unique<T>(array: readonly T[]): T[]\nexport function unique<T, K>(\n array: readonly T[],\n keyFn: (item: T) => K\n): T[]\nexport function unique<T, K>(\n array: readonly T[],\n keyFn?: (item: T) => K\n): T[] {\n if (!keyFn) {\n return [...new Set(array)]\n }\n\n const seen = new Set<K>()\n const result: T[] = []\n\n for (const item of array) {\n const key = keyFn(item)\n if (!seen.has(key)) {\n seen.add(key)\n result.push(item)\n }\n }\n\n return result\n}\n","/**\n * Groups array elements by a key function.\n *\n * @example\n * const users = [\n * { name: 'Alice', role: 'admin' },\n * { name: 'Bob', role: 'user' },\n * { name: 'Charlie', role: 'admin' },\n * ]\n * groupBy(users, user => user.role)\n * // { admin: [{ name: 'Alice', ... }, { name: 'Charlie', ... }], user: [{ name: 'Bob', ... }] }\n */\nexport function groupBy<T, K extends PropertyKey>(\n array: readonly T[],\n keyFn: (item: T) => K\n): Record<K, T[]> {\n const result = {} as Record<K, T[]>\n\n for (const item of array) {\n const key = keyFn(item)\n if (!(key in result)) {\n result[key] = []\n }\n result[key].push(item)\n }\n\n return result\n}\n","/**\n * Creates an object indexed by a key function.\n * If multiple items have the same key, the last one wins.\n *\n * @example\n * const users = [\n * { id: 1, name: 'Alice' },\n * { id: 2, name: 'Bob' },\n * ]\n * indexBy(users, user => user.id)\n * // { 1: { id: 1, name: 'Alice' }, 2: { id: 2, name: 'Bob' } }\n */\nexport function indexBy<T, K extends PropertyKey>(\n array: readonly T[],\n keyFn: (item: T) => K\n): Record<K, T> {\n const result = {} as Record<K, T>\n\n for (const item of array) {\n const key = keyFn(item)\n result[key] = item\n }\n\n return result\n}\n","/**\n * Splits an array into two arrays based on a predicate.\n * First array contains items that pass, second contains items that fail.\n *\n * @example\n * const [evens, odds] = partition([1, 2, 3, 4], n => n % 2 === 0)\n * // evens: [2, 4], odds: [1, 3]\n */\nexport function partition<T>(\n array: readonly T[],\n predicate: (item: T) => boolean\n): [T[], T[]] {\n const pass: T[] = []\n const fail: T[] = []\n\n for (const item of array) {\n if (predicate(item)) {\n pass.push(item)\n } else {\n fail.push(item)\n }\n }\n\n return [pass, fail]\n}\n","/**\n * Splits an array into chunks of the specified size.\n *\n * @example\n * chunk([1, 2, 3, 4, 5], 2)\n * // [[1, 2], [3, 4], [5]]\n */\nexport function chunk<T>(array: readonly T[], size: number): T[][] {\n if (size <= 0) {\n throw new Error('Chunk size must be greater than 0')\n }\n\n const result: T[][] = []\n\n for (let i = 0; i < array.length; i += size) {\n result.push(array.slice(i, i + size))\n }\n\n return result\n}\n","/**\n * Removes null and undefined values from an array.\n * Properly narrows the type.\n *\n * @example\n * compact([1, null, 2, undefined, 3])\n * // [1, 2, 3] with type number[]\n */\nexport function compact<T>(array: readonly (T | null | undefined)[]): T[] {\n return array.filter((item): item is T => item !== null && item !== undefined)\n}\n","/**\n * Flattens an array one level deep.\n *\n * @example\n * flatten([[1, 2], [3, 4], [5]])\n * // [1, 2, 3, 4, 5]\n */\nexport function flatten<T>(array: readonly (T | readonly T[])[]): T[] {\n const result: T[] = []\n\n for (const item of array) {\n if (Array.isArray(item)) {\n result.push(...item)\n } else {\n result.push(item as T)\n }\n }\n\n return result\n}\n","/**\n * Sorts an array by a key function. Returns a new array.\n *\n * @example\n * const users = [{ name: 'Bob' }, { name: 'Alice' }]\n * sortBy(users, user => user.name)\n * // [{ name: 'Alice' }, { name: 'Bob' }]\n */\nexport function sortBy<T>(\n array: readonly T[],\n keyFn: (item: T) => string | number,\n order: 'asc' | 'desc' = 'asc'\n): T[] {\n const sorted = [...array].sort((a, b) => {\n const keyA = keyFn(a)\n const keyB = keyFn(b)\n\n if (keyA < keyB) return -1\n if (keyA > keyB) return 1\n return 0\n })\n\n return order === 'desc' ? sorted.reverse() : sorted\n}\n","/**\n * Returns the first element of an array, or undefined if empty.\n *\n * @example\n * first([1, 2, 3]) // 1\n * first([]) // undefined\n */\nexport function first<T>(array: readonly T[]): T | undefined {\n return array[0]\n}\n","/**\n * Returns the last element of an array, or undefined if empty.\n *\n * @example\n * last([1, 2, 3]) // 3\n * last([]) // undefined\n */\nexport function last<T>(array: readonly T[]): T | undefined {\n return array[array.length - 1]\n}\n","/**\n * Creates an array of numbers from start to end (exclusive).\n *\n * @example\n * range(0, 5) // [0, 1, 2, 3, 4]\n * range(1, 10, 2) // [1, 3, 5, 7, 9]\n */\nexport function range(start: number, end: number, step: number = 1): number[] {\n if (step === 0) {\n throw new Error('Step cannot be 0')\n }\n\n const result: number[] = []\n\n if (step > 0) {\n for (let i = start; i < end; i += step) {\n result.push(i)\n }\n } else {\n for (let i = start; i > end; i += step) {\n result.push(i)\n }\n }\n\n return result\n}\n","/**\n * Returns a new array with elements randomly shuffled.\n * Uses Fisher-Yates algorithm.\n *\n * @example\n * shuffle([1, 2, 3, 4, 5])\n * // [3, 1, 5, 2, 4] (random order)\n */\nexport function shuffle<T>(array: readonly T[]): T[] {\n const result = [...array]\n\n for (let i = result.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1))\n const temp = result[i]\n result[i] = result[j]!\n result[j] = temp!\n }\n\n return result\n}\n","/**\n * Returns a random element from an array.\n *\n * @example\n * sample([1, 2, 3, 4, 5]) // random element\n * sample([]) // undefined\n */\nexport function sample<T>(array: readonly T[]): T | undefined {\n if (array.length === 0) {\n return undefined\n }\n\n const index = Math.floor(Math.random() * array.length)\n return array[index]\n}\n","/**\n * Zips two arrays together into an array of tuples.\n * Stops at the shorter array.\n *\n * @example\n * zip([1, 2, 3], ['a', 'b', 'c'])\n * // [[1, 'a'], [2, 'b'], [3, 'c']]\n */\nexport function zip<A, B>(a: readonly A[], b: readonly B[]): [A, B][] {\n const length = Math.min(a.length, b.length)\n const result: [A, B][] = []\n\n for (let i = 0; i < length; i++) {\n result.push([a[i]!, b[i]!])\n }\n\n return result\n}\n","/**\n * Unzips an array of tuples into two arrays.\n *\n * @example\n * unzip([[1, 'a'], [2, 'b'], [3, 'c']])\n * // [[1, 2, 3], ['a', 'b', 'c']]\n */\nexport function unzip<A, B>(array: readonly (readonly [A, B])[]): [A[], B[]] {\n const a: A[] = []\n const b: B[] = []\n\n for (const [first, second] of array) {\n a.push(first)\n b.push(second)\n }\n\n return [a, b]\n}\n","/**\n * Returns elements in the first array that are not in the second.\n *\n * @example\n * difference([1, 2, 3, 4], [2, 4])\n * // [1, 3]\n */\nexport function difference<T>(a: readonly T[], b: readonly T[]): T[] {\n const setB = new Set(b)\n return a.filter((item) => !setB.has(item))\n}\n","/**\n * Returns elements that exist in both arrays.\n *\n * @example\n * intersection([1, 2, 3], [2, 3, 4])\n * // [2, 3]\n */\nexport function intersection<T>(a: readonly T[], b: readonly T[]): T[] {\n const setB = new Set(b)\n return a.filter((item) => setB.has(item))\n}\n","/**\n * Returns the first n elements of an array.\n *\n * @example\n * take([1, 2, 3, 4, 5], 3) // [1, 2, 3]\n * take([1, 2], 5) // [1, 2]\n */\nexport function take<T>(arr: readonly T[], n: number): T[] {\n if (n <= 0) return []\n return arr.slice(0, n)\n}\n","/**\n * Returns all but the first n elements of an array.\n *\n * @example\n * drop([1, 2, 3, 4, 5], 2) // [3, 4, 5]\n * drop([1, 2], 5) // []\n */\nexport function drop<T>(arr: readonly T[], n: number): T[] {\n if (n <= 0) return [...arr]\n return arr.slice(n)\n}\n","/**\n * Returns elements from the beginning of an array while the predicate returns true.\n *\n * @example\n * takeWhile([1, 2, 3, 4, 1], n => n < 3) // [1, 2]\n * takeWhile([5, 1, 2], n => n < 3) // []\n */\nexport function takeWhile<T>(\n arr: readonly T[],\n predicate: (item: T, index: number) => boolean\n): T[] {\n const result: T[] = []\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i]!\n if (!predicate(item, i)) break\n result.push(item)\n }\n return result\n}\n","/**\n * Drops elements from the beginning of an array while the predicate returns true.\n *\n * @example\n * dropWhile([1, 2, 3, 4, 1], n => n < 3) // [3, 4, 1]\n * dropWhile([5, 1, 2], n => n < 3) // [5, 1, 2]\n */\nexport function dropWhile<T>(\n arr: readonly T[],\n predicate: (item: T, index: number) => boolean\n): T[] {\n let startIndex = 0\n for (let i = 0; i < arr.length; i++) {\n if (!predicate(arr[i]!, i)) {\n startIndex = i\n break\n }\n startIndex = arr.length\n }\n return arr.slice(startIndex)\n}\n","/**\n * Returns the last element in an array that satisfies the predicate.\n *\n * @example\n * findLast([1, 2, 3, 4], n => n % 2 === 0) // 4\n * findLast([1, 3, 5], n => n % 2 === 0) // undefined\n */\nexport function findLast<T>(\n arr: readonly T[],\n predicate: (item: T, index: number) => boolean\n): T | undefined {\n for (let i = arr.length - 1; i >= 0; i--) {\n const item = arr[i]!\n if (predicate(item, i)) return item\n }\n return undefined\n}\n","/**\n * Creates an object counting occurrences of each key returned by the function.\n *\n * @example\n * countBy([1, 2, 3, 4, 5], n => n % 2 === 0 ? 'even' : 'odd')\n * // { odd: 3, even: 2 }\n *\n * countBy(['one', 'two', 'three'], s => s.length)\n * // { 3: 2, 5: 1 }\n */\nexport function countBy<T>(\n arr: readonly T[],\n fn: (item: T) => PropertyKey\n): Record<PropertyKey, number> {\n const result: Record<PropertyKey, number> = {}\n for (const item of arr) {\n const key = fn(item)\n result[key] = (result[key] ?? 0) + 1\n }\n return result\n}\n","/**\n * Returns the element with the maximum value according to the function.\n *\n * @example\n * maxBy([{ age: 20 }, { age: 30 }, { age: 25 }], u => u.age)\n * // { age: 30 }\n *\n * maxBy([], u => u.age) // undefined\n */\nexport function maxBy<T>(\n arr: readonly T[],\n fn: (item: T) => number\n): T | undefined {\n if (arr.length === 0) return undefined\n\n let maxItem = arr[0]!\n let maxValue = fn(maxItem)\n\n for (let i = 1; i < arr.length; i++) {\n const item = arr[i]!\n const value = fn(item)\n if (value > maxValue) {\n maxValue = value\n maxItem = item\n }\n }\n\n return maxItem\n}\n","/**\n * Returns the element with the minimum value according to the function.\n *\n * @example\n * minBy([{ age: 20 }, { age: 30 }, { age: 25 }], u => u.age)\n * // { age: 20 }\n *\n * minBy([], u => u.age) // undefined\n */\nexport function minBy<T>(\n arr: readonly T[],\n fn: (item: T) => number\n): T | undefined {\n if (arr.length === 0) return undefined\n\n let minItem = arr[0]!\n let minValue = fn(minItem)\n\n for (let i = 1; i < arr.length; i++) {\n const item = arr[i]!\n const value = fn(item)\n if (value < minValue) {\n minValue = value\n minItem = item\n }\n }\n\n return minItem\n}\n","/**\n * Sums the values returned by the function for each element.\n *\n * @example\n * sumBy([{ price: 10 }, { price: 20 }, { price: 30 }], item => item.price)\n * // 60\n *\n * sumBy([], item => item.price) // 0\n */\nexport function sumBy<T>(\n arr: readonly T[],\n fn: (item: T) => number\n): number {\n let sum = 0\n for (const item of arr) {\n sum += fn(item)\n }\n return sum\n}\n","/**\n * Returns the first element of an array, or undefined if empty.\n * Alias for first().\n *\n * @example\n * head([1, 2, 3]) // 1\n * head([]) // undefined\n */\nexport function head<T>(arr: readonly T[]): T | undefined {\n return arr[0]\n}\n","/**\n * Returns all elements except the first.\n *\n * @example\n * tail([1, 2, 3]) // [2, 3]\n * tail([1]) // []\n * tail([]) // []\n */\nexport function tail<T>(arr: readonly T[]): T[] {\n return arr.slice(1)\n}\n","/**\n * Returns all elements except the last.\n *\n * @example\n * init([1, 2, 3]) // [1, 2]\n * init([1]) // []\n * init([]) // []\n */\nexport function init<T>(arr: readonly T[]): T[] {\n return arr.slice(0, -1)\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/result/ok.ts
|
|
4
|
+
function ok(value) {
|
|
5
|
+
return { ok: true, value };
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// src/result/err.ts
|
|
9
|
+
function err(error) {
|
|
10
|
+
return { ok: false, error };
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
exports.err = err;
|
|
14
|
+
exports.ok = ok;
|
|
15
|
+
//# sourceMappingURL=chunk-OPVES6W2.js.map
|
|
16
|
+
//# sourceMappingURL=chunk-OPVES6W2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/result/ok.ts","../src/result/err.ts"],"names":[],"mappings":";;;AAUO,SAAS,GAAM,KAAA,EAAiB;AACrC,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAM;AAC3B;;;ACFO,SAAS,IAAO,KAAA,EAAkB;AACvC,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,KAAA,EAAM;AAC5B","file":"chunk-OPVES6W2.js","sourcesContent":["import type { Ok } from './types'\n\n/**\n * Creates an Ok result containing a success value.\n *\n * @example\n * const result = ok(42)\n * result.ok // true\n * result.value // 42\n */\nexport function ok<T>(value: T): Ok<T> {\n return { ok: true, value }\n}\n","import type { Err } from './types'\n\n/**\n * Creates an Err result containing an error value.\n *\n * @example\n * const result = err(new Error('failed'))\n * result.ok // false\n * result.error // Error: failed\n */\nexport function err<E>(error: E): Err<E> {\n return { ok: false, error }\n}\n"]}
|