typetify 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +70 -0
- package/README.md +108 -0
- package/dist/async/index.js +1 -49
- package/dist/async/index.mjs +1 -4
- package/dist/chunk-272Z3AXV.js +1 -0
- package/dist/chunk-4HQERWI6.mjs +1 -0
- package/dist/chunk-4JG7CFRK.js +1 -0
- package/dist/chunk-5FBZYPQM.mjs +1 -0
- package/dist/chunk-5LWNMYHB.js +1 -0
- package/dist/chunk-5XQRYI2Q.mjs +1 -0
- package/dist/chunk-6HA2SN23.js +1 -0
- package/dist/chunk-6NWIIOHH.js +1 -0
- package/dist/chunk-7LBL6CYT.js +1 -0
- package/dist/chunk-7V3EDYJD.mjs +1 -0
- package/dist/chunk-B3R73UK5.mjs +1 -0
- package/dist/chunk-EAHFED6V.mjs +1 -0
- package/dist/chunk-EKSHS4DL.mjs +1 -0
- package/dist/chunk-FYQNKDT3.mjs +1 -0
- package/dist/chunk-GKOA3XGQ.js +1 -0
- package/dist/chunk-I4YSQ4HB.js +1 -0
- package/dist/chunk-JZXLCA2E.mjs +1 -0
- package/dist/chunk-M5OMYDI7.mjs +1 -0
- package/dist/chunk-MPY3WRLG.mjs +1 -0
- package/dist/chunk-MSOFO6QN.js +1 -0
- package/dist/chunk-NENRAPOL.mjs +1 -0
- package/dist/chunk-NOW4Q26G.mjs +1 -0
- package/dist/chunk-P4UNM7SF.js +1 -0
- package/dist/chunk-P5E2JDCX.mjs +1 -0
- package/dist/chunk-Q7SUL7MD.js +1 -0
- package/dist/chunk-QKNZICUO.mjs +1 -0
- package/dist/chunk-RHMANSTA.mjs +1 -0
- package/dist/chunk-SF64HETW.js +1 -0
- package/dist/chunk-T66YO63J.js +1 -0
- package/dist/chunk-TNK6EVQK.mjs +1 -0
- package/dist/chunk-TSJFKV3R.js +1 -0
- package/dist/chunk-TVCWWECJ.mjs +1 -0
- package/dist/chunk-W5I352FJ.js +1 -0
- package/dist/chunk-WAT4QJB2.js +1 -0
- package/dist/chunk-WCG5ODRX.mjs +1 -0
- package/dist/chunk-WDFIRO2J.js +1 -0
- package/dist/chunk-WOT6VMZA.js +1 -0
- package/dist/chunk-WQPSXQT5.js +1 -0
- package/dist/chunk-WS743BFA.js +1 -0
- package/dist/chunk-XPY5CWKZ.mjs +1 -0
- package/dist/collection/index.js +1 -125
- package/dist/collection/index.mjs +1 -4
- package/dist/core/index.js +1 -41
- package/dist/core/index.mjs +1 -4
- package/dist/decorator/index.js +1 -57
- package/dist/decorator/index.mjs +1 -4
- package/dist/dx/index.js +1 -53
- package/dist/dx/index.mjs +1 -4
- package/dist/flow/index.js +1 -50
- package/dist/flow/index.mjs +1 -5
- package/dist/fn/index.js +1 -37
- package/dist/fn/index.mjs +1 -4
- package/dist/guards/index.js +1 -233
- package/dist/guards/index.mjs +1 -4
- package/dist/index.js +3 -2507
- package/dist/index.mjs +3 -1546
- package/dist/input/index.js +1 -74
- package/dist/input/index.mjs +1 -5
- package/dist/iterator/index.js +1 -85
- package/dist/iterator/index.mjs +1 -4
- package/dist/logic/index.js +1 -201
- package/dist/logic/index.mjs +1 -4
- package/dist/math/index.js +1 -45
- package/dist/math/index.mjs +1 -4
- package/dist/narrowing/index.js +1 -141
- package/dist/narrowing/index.mjs +1 -4
- package/dist/object/index.js +1 -113
- package/dist/object/index.mjs +1 -4
- package/dist/result/index.js +1 -86
- package/dist/result/index.mjs +1 -5
- package/dist/schema/index.js +1 -110
- package/dist/schema/index.mjs +1 -5
- package/dist/string/index.js +1 -49
- package/dist/string/index.mjs +1 -4
- package/dist/typed/index.js +1 -193
- package/dist/typed/index.mjs +1 -4
- package/package.json +8 -3
- package/dist/async/index.js.map +0 -1
- package/dist/async/index.mjs.map +0 -1
- package/dist/chunk-2LJ6NZ6K.js +0 -108
- package/dist/chunk-2LJ6NZ6K.js.map +0 -1
- package/dist/chunk-4NXETABV.mjs +0 -116
- package/dist/chunk-4NXETABV.mjs.map +0 -1
- package/dist/chunk-6ZBTL74K.js +0 -129
- package/dist/chunk-6ZBTL74K.js.map +0 -1
- package/dist/chunk-7G4ZSMQX.js +0 -470
- package/dist/chunk-7G4ZSMQX.js.map +0 -1
- package/dist/chunk-CN3GYRJN.mjs +0 -137
- package/dist/chunk-CN3GYRJN.mjs.map +0 -1
- package/dist/chunk-CNTE6ZVH.js +0 -359
- package/dist/chunk-CNTE6ZVH.js.map +0 -1
- package/dist/chunk-CWHYQWNU.mjs +0 -224
- package/dist/chunk-CWHYQWNU.mjs.map +0 -1
- package/dist/chunk-DBENOSTA.js +0 -156
- package/dist/chunk-DBENOSTA.js.map +0 -1
- package/dist/chunk-DWIG5GF2.js +0 -135
- package/dist/chunk-DWIG5GF2.js.map +0 -1
- package/dist/chunk-EAUTTWTQ.mjs +0 -231
- package/dist/chunk-EAUTTWTQ.mjs.map +0 -1
- package/dist/chunk-FEX5C4OH.mjs +0 -1007
- package/dist/chunk-FEX5C4OH.mjs.map +0 -1
- package/dist/chunk-FN553YPU.js +0 -441
- package/dist/chunk-FN553YPU.js.map +0 -1
- package/dist/chunk-FT2EK4AM.mjs +0 -420
- package/dist/chunk-FT2EK4AM.mjs.map +0 -1
- package/dist/chunk-FXWYPHA3.mjs +0 -13
- package/dist/chunk-FXWYPHA3.mjs.map +0 -1
- package/dist/chunk-GS3PP67B.js +0 -200
- package/dist/chunk-GS3PP67B.js.map +0 -1
- package/dist/chunk-IGA3VEZM.mjs +0 -503
- package/dist/chunk-IGA3VEZM.mjs.map +0 -1
- package/dist/chunk-J5LGTIGS.mjs +0 -9
- package/dist/chunk-J5LGTIGS.mjs.map +0 -1
- package/dist/chunk-JB6UXRKD.mjs +0 -97
- package/dist/chunk-JB6UXRKD.mjs.map +0 -1
- package/dist/chunk-JQAQV75V.js +0 -561
- package/dist/chunk-JQAQV75V.js.map +0 -1
- package/dist/chunk-JQHUBZ4M.js +0 -88
- package/dist/chunk-JQHUBZ4M.js.map +0 -1
- package/dist/chunk-LT7JK7RJ.js +0 -87
- package/dist/chunk-LT7JK7RJ.js.map +0 -1
- package/dist/chunk-N6IUADIP.mjs +0 -414
- package/dist/chunk-N6IUADIP.mjs.map +0 -1
- package/dist/chunk-OEJK37LO.mjs +0 -328
- package/dist/chunk-OEJK37LO.mjs.map +0 -1
- package/dist/chunk-OKB3MS5F.js +0 -547
- package/dist/chunk-OKB3MS5F.js.map +0 -1
- package/dist/chunk-OPVES6W2.js +0 -16
- package/dist/chunk-OPVES6W2.js.map +0 -1
- package/dist/chunk-OWNUKWXV.js +0 -291
- package/dist/chunk-OWNUKWXV.js.map +0 -1
- package/dist/chunk-POD52NJ3.mjs +0 -526
- package/dist/chunk-POD52NJ3.mjs.map +0 -1
- package/dist/chunk-PQTXSQ4P.js +0 -369
- package/dist/chunk-PQTXSQ4P.js.map +0 -1
- package/dist/chunk-PZ5AY32C.js +0 -11
- package/dist/chunk-PZ5AY32C.js.map +0 -1
- package/dist/chunk-QFR7DVAJ.mjs +0 -63
- package/dist/chunk-QFR7DVAJ.mjs.map +0 -1
- package/dist/chunk-S535LAXW.js +0 -1054
- package/dist/chunk-S535LAXW.js.map +0 -1
- package/dist/chunk-SGQNLTRK.js +0 -73
- package/dist/chunk-SGQNLTRK.js.map +0 -1
- package/dist/chunk-SRDWUHDY.mjs +0 -188
- package/dist/chunk-SRDWUHDY.mjs.map +0 -1
- package/dist/chunk-TXU7NTT4.js +0 -249
- package/dist/chunk-TXU7NTT4.js.map +0 -1
- package/dist/chunk-TZEWREAC.mjs +0 -277
- package/dist/chunk-TZEWREAC.mjs.map +0 -1
- package/dist/chunk-V6CWFDIJ.mjs +0 -123
- package/dist/chunk-V6CWFDIJ.mjs.map +0 -1
- package/dist/chunk-X55EORNF.js +0 -259
- package/dist/chunk-X55EORNF.js.map +0 -1
- package/dist/chunk-YBJC5WMX.mjs +0 -341
- package/dist/chunk-YBJC5WMX.mjs.map +0 -1
- package/dist/chunk-YOPAXITF.mjs +0 -75
- package/dist/chunk-YOPAXITF.mjs.map +0 -1
- package/dist/chunk-ZE4FDBRI.mjs +0 -79
- package/dist/chunk-ZE4FDBRI.mjs.map +0 -1
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/index.mjs.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/core/index.mjs.map +0 -1
- package/dist/decorator/index.js.map +0 -1
- package/dist/decorator/index.mjs.map +0 -1
- package/dist/dx/index.js.map +0 -1
- package/dist/dx/index.mjs.map +0 -1
- package/dist/flow/index.js.map +0 -1
- package/dist/flow/index.mjs.map +0 -1
- package/dist/fn/index.js.map +0 -1
- package/dist/fn/index.mjs.map +0 -1
- package/dist/guards/index.js.map +0 -1
- package/dist/guards/index.mjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/input/index.js.map +0 -1
- package/dist/input/index.mjs.map +0 -1
- package/dist/iterator/index.js.map +0 -1
- package/dist/iterator/index.mjs.map +0 -1
- package/dist/logic/index.js.map +0 -1
- package/dist/logic/index.mjs.map +0 -1
- package/dist/math/index.js.map +0 -1
- package/dist/math/index.mjs.map +0 -1
- package/dist/narrowing/index.js.map +0 -1
- package/dist/narrowing/index.mjs.map +0 -1
- package/dist/object/index.js.map +0 -1
- package/dist/object/index.mjs.map +0 -1
- package/dist/result/index.js.map +0 -1
- package/dist/result/index.mjs.map +0 -1
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/index.mjs.map +0 -1
- package/dist/string/index.js.map +0 -1
- package/dist/string/index.mjs.map +0 -1
- package/dist/typed/index.js.map +0 -1
- package/dist/typed/index.mjs.map +0 -1
package/dist/chunk-YBJC5WMX.mjs
DELETED
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
import { __export } from './chunk-J5LGTIGS.mjs';
|
|
2
|
-
|
|
3
|
-
// src/object/index.ts
|
|
4
|
-
var object_exports = {};
|
|
5
|
-
__export(object_exports, {
|
|
6
|
-
clone: () => clone,
|
|
7
|
-
cloneDeep: () => cloneDeep,
|
|
8
|
-
deepGet: () => deepGet,
|
|
9
|
-
deepGetOr: () => deepGetOr,
|
|
10
|
-
deepHas: () => deepHas,
|
|
11
|
-
deepMerge: () => deepMerge,
|
|
12
|
-
deepPath: () => deepPath,
|
|
13
|
-
deepPluck: () => deepPluck,
|
|
14
|
-
deepSet: () => deepSet,
|
|
15
|
-
entriesTyped: () => entriesTyped,
|
|
16
|
-
filterObject: () => filterObject,
|
|
17
|
-
fromEntriesTyped: () => fromEntriesTyped,
|
|
18
|
-
get: () => get,
|
|
19
|
-
has: () => has,
|
|
20
|
-
invert: () => invert,
|
|
21
|
-
isEqual: () => isEqual,
|
|
22
|
-
keysTyped: () => keysTyped,
|
|
23
|
-
mapObject: () => mapObject,
|
|
24
|
-
mergeShallow: () => mergeShallow,
|
|
25
|
-
omit: () => omit,
|
|
26
|
-
paths: () => paths,
|
|
27
|
-
pick: () => pick,
|
|
28
|
-
set: () => set,
|
|
29
|
-
transform: () => transform,
|
|
30
|
-
unset: () => unset,
|
|
31
|
-
valuesTyped: () => valuesTyped
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
// src/object/pick.ts
|
|
35
|
-
function pick(obj, keys) {
|
|
36
|
-
const result = {};
|
|
37
|
-
for (const key of keys) {
|
|
38
|
-
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
39
|
-
result[key] = obj[key];
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// src/object/omit.ts
|
|
46
|
-
function omit(obj, keys) {
|
|
47
|
-
const result = { ...obj };
|
|
48
|
-
const keysSet = new Set(keys);
|
|
49
|
-
for (const key of keysSet) {
|
|
50
|
-
delete result[key];
|
|
51
|
-
}
|
|
52
|
-
return result;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// src/object/keysTyped.ts
|
|
56
|
-
function keysTyped(obj) {
|
|
57
|
-
return Object.keys(obj);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// src/object/valuesTyped.ts
|
|
61
|
-
function valuesTyped(obj) {
|
|
62
|
-
return Object.values(obj);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// src/object/entriesTyped.ts
|
|
66
|
-
function entriesTyped(obj) {
|
|
67
|
-
return Object.entries(obj);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// src/object/fromEntriesTyped.ts
|
|
71
|
-
function fromEntriesTyped(entries) {
|
|
72
|
-
return Object.fromEntries(entries);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// src/object/mapObject.ts
|
|
76
|
-
function mapObject(obj, fn) {
|
|
77
|
-
const result = {};
|
|
78
|
-
for (const key of Object.keys(obj)) {
|
|
79
|
-
result[key] = fn(obj[key], key);
|
|
80
|
-
}
|
|
81
|
-
return result;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// src/object/filterObject.ts
|
|
85
|
-
function filterObject(obj, predicate) {
|
|
86
|
-
const result = {};
|
|
87
|
-
for (const key of Object.keys(obj)) {
|
|
88
|
-
if (predicate(obj[key], key)) {
|
|
89
|
-
result[key] = obj[key];
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return result;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// src/object/mergeShallow.ts
|
|
96
|
-
function mergeShallow(target, source) {
|
|
97
|
-
return { ...target, ...source };
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// src/object/clone.ts
|
|
101
|
-
function clone(obj) {
|
|
102
|
-
if (Array.isArray(obj)) {
|
|
103
|
-
return [...obj];
|
|
104
|
-
}
|
|
105
|
-
return { ...obj };
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// src/object/cloneDeep.ts
|
|
109
|
-
function cloneDeep(obj) {
|
|
110
|
-
return structuredClone(obj);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// src/object/get.ts
|
|
114
|
-
function get(obj, path) {
|
|
115
|
-
let current = obj;
|
|
116
|
-
for (const key of path) {
|
|
117
|
-
if (current === null || current === void 0) {
|
|
118
|
-
return void 0;
|
|
119
|
-
}
|
|
120
|
-
if (typeof current !== "object") {
|
|
121
|
-
return void 0;
|
|
122
|
-
}
|
|
123
|
-
current = current[key];
|
|
124
|
-
}
|
|
125
|
-
return current;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// src/object/set.ts
|
|
129
|
-
function set(obj, path, value) {
|
|
130
|
-
if (path.length === 0) {
|
|
131
|
-
return value;
|
|
132
|
-
}
|
|
133
|
-
const [head, ...rest] = path;
|
|
134
|
-
if (head === void 0) {
|
|
135
|
-
return obj;
|
|
136
|
-
}
|
|
137
|
-
const currentValue = obj[head];
|
|
138
|
-
const newValue = rest.length === 0 ? value : set(
|
|
139
|
-
typeof currentValue === "object" && currentValue !== null ? currentValue : {},
|
|
140
|
-
rest,
|
|
141
|
-
value
|
|
142
|
-
);
|
|
143
|
-
if (Array.isArray(obj)) {
|
|
144
|
-
const result = [...obj];
|
|
145
|
-
result[head] = newValue;
|
|
146
|
-
return result;
|
|
147
|
-
}
|
|
148
|
-
return {
|
|
149
|
-
...obj,
|
|
150
|
-
[head]: newValue
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// src/object/invert.ts
|
|
155
|
-
function invert(obj) {
|
|
156
|
-
const result = {};
|
|
157
|
-
for (const key of Object.keys(obj)) {
|
|
158
|
-
const value = obj[key];
|
|
159
|
-
if (value !== void 0) {
|
|
160
|
-
result[String(value)] = key;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return result;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// src/object/deepMerge.ts
|
|
167
|
-
function deepMerge(target, source) {
|
|
168
|
-
const result = { ...target };
|
|
169
|
-
for (const key of Object.keys(source)) {
|
|
170
|
-
const sourceValue = source[key];
|
|
171
|
-
const targetValue = target[key];
|
|
172
|
-
if (isPlainObject(sourceValue) && isPlainObject(targetValue)) {
|
|
173
|
-
result[key] = deepMerge(targetValue, sourceValue);
|
|
174
|
-
} else {
|
|
175
|
-
result[key] = sourceValue;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
return result;
|
|
179
|
-
}
|
|
180
|
-
function isPlainObject(value) {
|
|
181
|
-
if (value === null || typeof value !== "object") return false;
|
|
182
|
-
const proto = Object.getPrototypeOf(value);
|
|
183
|
-
return proto === null || proto === Object.prototype;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// src/object/isEqual.ts
|
|
187
|
-
function isEqual(a, b) {
|
|
188
|
-
if (a === b) return true;
|
|
189
|
-
if (a === null || b === null) return a === b;
|
|
190
|
-
if (typeof a !== typeof b) return false;
|
|
191
|
-
if (typeof a !== "object" || typeof b !== "object") {
|
|
192
|
-
return a === b;
|
|
193
|
-
}
|
|
194
|
-
if (Array.isArray(a) !== Array.isArray(b)) return false;
|
|
195
|
-
if (Array.isArray(a) && Array.isArray(b)) {
|
|
196
|
-
if (a.length !== b.length) return false;
|
|
197
|
-
for (let i = 0; i < a.length; i++) {
|
|
198
|
-
if (!isEqual(a[i], b[i])) return false;
|
|
199
|
-
}
|
|
200
|
-
return true;
|
|
201
|
-
}
|
|
202
|
-
if (a instanceof Date && b instanceof Date) {
|
|
203
|
-
return a.getTime() === b.getTime();
|
|
204
|
-
}
|
|
205
|
-
if (a instanceof RegExp && b instanceof RegExp) {
|
|
206
|
-
return a.toString() === b.toString();
|
|
207
|
-
}
|
|
208
|
-
const keysA = Object.keys(a);
|
|
209
|
-
const keysB = Object.keys(b);
|
|
210
|
-
if (keysA.length !== keysB.length) return false;
|
|
211
|
-
for (const key of keysA) {
|
|
212
|
-
if (!keysB.includes(key)) return false;
|
|
213
|
-
if (!isEqual(a[key], b[key])) return false;
|
|
214
|
-
}
|
|
215
|
-
return true;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
// src/object/has.ts
|
|
219
|
-
function has(obj, path) {
|
|
220
|
-
if (path.length === 0) return true;
|
|
221
|
-
let current = obj;
|
|
222
|
-
for (const key of path) {
|
|
223
|
-
if (current === null || current === void 0) return false;
|
|
224
|
-
if (typeof current !== "object") return false;
|
|
225
|
-
if (!(key in current)) return false;
|
|
226
|
-
current = current[key];
|
|
227
|
-
}
|
|
228
|
-
return true;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// src/object/unset.ts
|
|
232
|
-
function unset(obj, path) {
|
|
233
|
-
if (path.length === 0) return obj;
|
|
234
|
-
const head = path[0];
|
|
235
|
-
const rest = path.slice(1);
|
|
236
|
-
if (rest.length === 0) {
|
|
237
|
-
const result = { ...obj };
|
|
238
|
-
delete result[head];
|
|
239
|
-
return result;
|
|
240
|
-
}
|
|
241
|
-
const value = obj[head];
|
|
242
|
-
if (value === null || value === void 0 || typeof value !== "object") {
|
|
243
|
-
return obj;
|
|
244
|
-
}
|
|
245
|
-
return {
|
|
246
|
-
...obj,
|
|
247
|
-
[head]: unset(value, rest)
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
// src/object/paths.ts
|
|
252
|
-
function paths(obj) {
|
|
253
|
-
const result = [];
|
|
254
|
-
function traverse(current, path) {
|
|
255
|
-
if (current === null || typeof current !== "object") {
|
|
256
|
-
if (path.length > 0) {
|
|
257
|
-
result.push(path);
|
|
258
|
-
}
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
if (Array.isArray(current)) {
|
|
262
|
-
if (current.length === 0) {
|
|
263
|
-
result.push(path);
|
|
264
|
-
} else {
|
|
265
|
-
current.forEach((item, index) => {
|
|
266
|
-
traverse(item, [...path, index]);
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
const keys = Object.keys(current);
|
|
272
|
-
if (keys.length === 0) {
|
|
273
|
-
result.push(path);
|
|
274
|
-
} else {
|
|
275
|
-
for (const key of keys) {
|
|
276
|
-
traverse(current[key], [...path, key]);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
traverse(obj, []);
|
|
281
|
-
return result;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
// src/object/transform.ts
|
|
285
|
-
function transform(obj, fn) {
|
|
286
|
-
const result = {};
|
|
287
|
-
for (const key of Object.keys(obj)) {
|
|
288
|
-
result[key] = fn(obj[key], key);
|
|
289
|
-
}
|
|
290
|
-
return result;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
// src/object/deepGet.ts
|
|
294
|
-
function deepGet(obj, path) {
|
|
295
|
-
const keys = path.split(".");
|
|
296
|
-
let current = obj;
|
|
297
|
-
for (const key of keys) {
|
|
298
|
-
if (current === null || current === void 0) {
|
|
299
|
-
return void 0;
|
|
300
|
-
}
|
|
301
|
-
if (typeof current !== "object") {
|
|
302
|
-
return void 0;
|
|
303
|
-
}
|
|
304
|
-
current = current[key];
|
|
305
|
-
}
|
|
306
|
-
return current;
|
|
307
|
-
}
|
|
308
|
-
function deepGetOr(obj, path, defaultValue) {
|
|
309
|
-
const value = deepGet(obj, path);
|
|
310
|
-
return value ?? defaultValue;
|
|
311
|
-
}
|
|
312
|
-
function deepSet(obj, path, value) {
|
|
313
|
-
const keys = path.split(".");
|
|
314
|
-
const result = structuredClone(obj);
|
|
315
|
-
let current = result;
|
|
316
|
-
for (let i = 0; i < keys.length - 1; i++) {
|
|
317
|
-
const key = keys[i];
|
|
318
|
-
if (current[key] === void 0 || current[key] === null) {
|
|
319
|
-
current[key] = {};
|
|
320
|
-
}
|
|
321
|
-
current = current[key];
|
|
322
|
-
}
|
|
323
|
-
const lastKey = keys[keys.length - 1];
|
|
324
|
-
current[lastKey] = value;
|
|
325
|
-
return result;
|
|
326
|
-
}
|
|
327
|
-
function deepHas(obj, path) {
|
|
328
|
-
return deepGet(obj, path) !== void 0;
|
|
329
|
-
}
|
|
330
|
-
function deepPath() {
|
|
331
|
-
return (path) => {
|
|
332
|
-
return (obj) => deepGet(obj, path);
|
|
333
|
-
};
|
|
334
|
-
}
|
|
335
|
-
function deepPluck(array, path) {
|
|
336
|
-
return array.map((obj) => deepGet(obj, path));
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
export { clone, cloneDeep, deepGet, deepGetOr, deepHas, deepMerge, deepPath, deepPluck, deepSet, entriesTyped, filterObject, fromEntriesTyped, get, has, invert, isEqual, keysTyped, mapObject, mergeShallow, object_exports, omit, paths, pick, set, transform, unset, valuesTyped };
|
|
340
|
-
//# sourceMappingURL=chunk-YBJC5WMX.mjs.map
|
|
341
|
-
//# sourceMappingURL=chunk-YBJC5WMX.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/object/index.ts","../src/object/pick.ts","../src/object/omit.ts","../src/object/keysTyped.ts","../src/object/valuesTyped.ts","../src/object/entriesTyped.ts","../src/object/fromEntriesTyped.ts","../src/object/mapObject.ts","../src/object/filterObject.ts","../src/object/mergeShallow.ts","../src/object/clone.ts","../src/object/cloneDeep.ts","../src/object/get.ts","../src/object/set.ts","../src/object/invert.ts","../src/object/deepMerge.ts","../src/object/isEqual.ts","../src/object/has.ts","../src/object/unset.ts","../src/object/paths.ts","../src/object/transform.ts","../src/object/deepGet.ts"],"names":[],"mappings":"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","file":"chunk-YBJC5WMX.mjs","sourcesContent":["export { pick } from './pick'\nexport { omit } from './omit'\nexport { keysTyped } from './keysTyped'\nexport { valuesTyped } from './valuesTyped'\nexport { entriesTyped } from './entriesTyped'\nexport { fromEntriesTyped } from './fromEntriesTyped'\nexport { mapObject } from './mapObject'\nexport { filterObject } from './filterObject'\nexport { mergeShallow } from './mergeShallow'\nexport { clone } from './clone'\nexport { cloneDeep } from './cloneDeep'\nexport { get } from './get'\nexport { set } from './set'\nexport { invert } from './invert'\nexport { deepMerge } from './deepMerge'\nexport { isEqual } from './isEqual'\nexport { has } from './has'\nexport { unset } from './unset'\nexport { paths } from './paths'\nexport { transform } from './transform'\nexport { deepGet, deepGetOr, deepSet, deepHas, deepPath, deepPluck } from './deepGet'\nexport type { Paths, PathValue } from './deepGet'\n","/**\n * Creates a new object with only the specified keys.\n * Type-safe alternative to lodash pick.\n *\n * @example\n * const user = { id: 1, name: 'John', email: 'john@example.com' }\n * const picked = pick(user, ['id', 'name'])\n * // { id: 1, name: 'John' }\n */\nexport function pick<T extends object, K extends keyof T>(\n obj: T,\n keys: readonly K[]\n): Pick<T, K> {\n const result = {} as Pick<T, K>\n\n for (const key of keys) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[key] = obj[key]\n }\n }\n\n return result\n}\n","/**\n * Creates a new object without the specified keys.\n * Type-safe alternative to lodash omit.\n *\n * @example\n * const user = { id: 1, name: 'John', password: 'secret' }\n * const safe = omit(user, ['password'])\n * // { id: 1, name: 'John' }\n */\nexport function omit<T extends object, K extends keyof T>(\n obj: T,\n keys: readonly K[]\n): Omit<T, K> {\n const result = { ...obj }\n const keysSet = new Set<PropertyKey>(keys)\n\n for (const key of keysSet) {\n delete (result as Record<PropertyKey, unknown>)[key]\n }\n\n return result as Omit<T, K>\n}\n","/**\n * Returns the keys of an object with proper typing.\n * Unlike Object.keys(), this returns (keyof T)[] instead of string[].\n *\n * @example\n * const user = { id: 1, name: 'John' }\n * const keys = keysTyped(user) // ('id' | 'name')[]\n */\nexport function keysTyped<T extends object>(obj: T): (keyof T)[] {\n return Object.keys(obj) as (keyof T)[]\n}\n","/**\n * Returns the values of an object with proper typing.\n * Unlike Object.values(), this returns T[keyof T][] instead of unknown[].\n *\n * @example\n * const user = { id: 1, name: 'John' }\n * const values = valuesTyped(user) // (number | string)[]\n */\nexport function valuesTyped<T extends object>(obj: T): T[keyof T][] {\n return Object.values(obj) as T[keyof T][]\n}\n","/**\n * Returns the entries of an object with proper typing.\n * Unlike Object.entries(), this returns [keyof T, T[keyof T]][] instead of [string, unknown][].\n *\n * @example\n * const user = { id: 1, name: 'John' }\n * for (const [key, value] of entriesTyped(user)) {\n * // key is 'id' | 'name', value is number | string\n * }\n */\nexport function entriesTyped<T extends object>(\n obj: T\n): [keyof T, T[keyof T]][] {\n return Object.entries(obj) as [keyof T, T[keyof T]][]\n}\n","/**\n * Creates an object from entries with proper typing.\n * Unlike Object.fromEntries(), this preserves the key-value types.\n *\n * @example\n * const entries = [['id', 1], ['name', 'John']] as const\n * const obj = fromEntriesTyped(entries)\n * // { id: number, name: string }\n */\nexport function fromEntriesTyped<K extends PropertyKey, V>(\n entries: readonly (readonly [K, V])[]\n): Record<K, V> {\n return Object.fromEntries(entries) as Record<K, V>\n}\n","/**\n * Maps over the values of an object, returning a new object with the same keys.\n *\n * @example\n * const prices = { apple: 1, banana: 2 }\n * const doubled = mapObject(prices, (value) => value * 2)\n * // { apple: 2, banana: 4 }\n */\nexport function mapObject<T extends object, U>(\n obj: T,\n fn: (value: T[keyof T], key: keyof T) => U\n): { [K in keyof T]: U } {\n const result = {} as { [K in keyof T]: U }\n\n for (const key of Object.keys(obj) as (keyof T)[]) {\n result[key] = fn(obj[key], key)\n }\n\n return result\n}\n","/**\n * Filters an object's entries based on a predicate function.\n *\n * @example\n * const user = { name: 'John', age: 30, email: null }\n * const defined = filterObject(user, (value) => value !== null)\n * // { name: 'John', age: 30 }\n */\nexport function filterObject<T extends object>(\n obj: T,\n predicate: (value: T[keyof T], key: keyof T) => boolean\n): Partial<T> {\n const result = {} as Partial<T>\n\n for (const key of Object.keys(obj) as (keyof T)[]) {\n if (predicate(obj[key], key)) {\n result[key] = obj[key]\n }\n }\n\n return result\n}\n","/**\n * Shallow merges two objects. Properties from the second object override the first.\n * Type-safe alternative to Object.assign or spread.\n *\n * @example\n * const defaults = { theme: 'light', lang: 'en' }\n * const user = { theme: 'dark' }\n * const config = mergeShallow(defaults, user)\n * // { theme: 'dark', lang: 'en' }\n */\nexport function mergeShallow<T extends object, U extends object>(\n target: T,\n source: U\n): T & U {\n return { ...target, ...source }\n}\n","/**\n * Creates a shallow clone of an object.\n *\n * @example\n * const original = { name: 'John', settings: { theme: 'dark' } }\n * const copy = clone(original)\n * copy.name = 'Jane' // doesn't affect original\n * copy.settings.theme = 'light' // DOES affect original (shallow clone)\n */\nexport function clone<T extends object>(obj: T): T {\n if (Array.isArray(obj)) {\n return [...obj] as unknown as T\n }\n\n return { ...obj }\n}\n","/**\n * Creates a deep clone of an object using structuredClone.\n * Works with most built-in types including Date, Map, Set, ArrayBuffer, etc.\n *\n * @example\n * const original = { name: 'John', settings: { theme: 'dark' } }\n * const copy = cloneDeep(original)\n * copy.settings.theme = 'light' // doesn't affect original\n */\nexport function cloneDeep<T>(obj: T): T {\n return structuredClone(obj)\n}\n","/**\n * Safely gets a nested property from an object.\n * Returns undefined if the path doesn't exist.\n *\n * @example\n * const user = { profile: { name: 'John' } }\n * get(user, ['profile', 'name']) // 'John'\n * get(user, ['profile', 'age']) // undefined\n */\nexport function get<T>(\n obj: unknown,\n path: readonly PropertyKey[]\n): T | undefined {\n let current: unknown = obj\n\n for (const key of path) {\n if (current === null || current === undefined) {\n return undefined\n }\n\n if (typeof current !== 'object') {\n return undefined\n }\n\n current = (current as Record<PropertyKey, unknown>)[key]\n }\n\n return current as T | undefined\n}\n","/**\n * Sets a nested property on an object, creating intermediate objects as needed.\n * Returns a new object (immutable).\n *\n * @example\n * const user = { profile: { name: 'John' } }\n * const updated = set(user, ['profile', 'age'], 30)\n * // { profile: { name: 'John', age: 30 } }\n */\nexport function set<T extends object>(\n obj: T,\n path: readonly PropertyKey[],\n value: unknown\n): T {\n if (path.length === 0) {\n return value as T\n }\n\n const [head, ...rest] = path\n\n if (head === undefined) {\n return obj\n }\n\n const currentValue = (obj as Record<PropertyKey, unknown>)[head]\n\n const newValue =\n rest.length === 0\n ? value\n : set(\n (typeof currentValue === 'object' && currentValue !== null\n ? currentValue\n : {}) as object,\n rest,\n value\n )\n\n if (Array.isArray(obj)) {\n const result = [...obj] as unknown as T\n ;(result as Record<PropertyKey, unknown>)[head] = newValue\n return result\n }\n\n return {\n ...obj,\n [head]: newValue,\n }\n}\n","/**\n * Inverts the keys and values of an object.\n * Values must be strings or numbers.\n *\n * @example\n * const roles = { admin: 1, user: 2 }\n * const inverted = invert(roles)\n * // { '1': 'admin', '2': 'user' }\n */\nexport function invert<T extends Record<string, string | number>>(\n obj: T\n): Record<string, keyof T> {\n const result: Record<string, keyof T> = {}\n\n for (const key of Object.keys(obj)) {\n const value = obj[key]\n if (value !== undefined) {\n result[String(value)] = key\n }\n }\n\n return result\n}\n","/**\n * Deeply merges two objects. Arrays are replaced, not merged.\n * Returns a new object without mutating the originals.\n *\n * @example\n * const a = { user: { name: 'John', age: 30 } }\n * const b = { user: { age: 31, city: 'NYC' } }\n * deepMerge(a, b) // { user: { name: 'John', age: 31, city: 'NYC' } }\n */\nexport function deepMerge<T extends object, U extends object>(\n target: T,\n source: U\n): T & U {\n const result = { ...target } as T & U\n\n for (const key of Object.keys(source) as (keyof U)[]) {\n const sourceValue = source[key]\n const targetValue = (target as any)[key]\n\n if (\n isPlainObject(sourceValue) &&\n isPlainObject(targetValue)\n ) {\n (result as any)[key] = deepMerge(targetValue, sourceValue)\n } else {\n (result as any)[key] = sourceValue\n }\n }\n\n return result\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') return false\n const proto = Object.getPrototypeOf(value)\n return proto === null || proto === Object.prototype\n}\n","/**\n * Performs a deep equality comparison between two values.\n *\n * @example\n * isEqual({ a: 1 }, { a: 1 }) // true\n * isEqual([1, 2, 3], [1, 2, 3]) // true\n * isEqual({ a: { b: 1 } }, { a: { b: 2 } }) // false\n */\nexport function isEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true\n\n if (a === null || b === null) return a === b\n if (typeof a !== typeof b) return false\n\n if (typeof a !== 'object' || typeof b !== 'object') {\n return a === b\n }\n\n if (Array.isArray(a) !== Array.isArray(b)) return false\n\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) {\n if (!isEqual(a[i], b[i])) return false\n }\n return true\n }\n\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n }\n\n if (a instanceof RegExp && b instanceof RegExp) {\n return a.toString() === b.toString()\n }\n\n const keysA = Object.keys(a as object)\n const keysB = Object.keys(b as object)\n\n if (keysA.length !== keysB.length) return false\n\n for (const key of keysA) {\n if (!keysB.includes(key)) return false\n if (!isEqual((a as any)[key], (b as any)[key])) return false\n }\n\n return true\n}\n","/**\n * Checks if a nested path exists in an object.\n *\n * @example\n * has({ a: { b: { c: 1 } } }, ['a', 'b', 'c']) // true\n * has({ a: { b: 1 } }, ['a', 'c']) // false\n * has({ a: null }, ['a', 'b']) // false\n */\nexport function has(obj: unknown, path: readonly PropertyKey[]): boolean {\n if (path.length === 0) return true\n\n let current: unknown = obj\n\n for (const key of path) {\n if (current === null || current === undefined) return false\n if (typeof current !== 'object') return false\n if (!(key in (current as object))) return false\n current = (current as Record<PropertyKey, unknown>)[key]\n }\n\n return true\n}\n","/**\n * Removes a property at a nested path. Returns a new object (immutable).\n *\n * @example\n * unset({ a: { b: 1, c: 2 } }, ['a', 'b']) // { a: { c: 2 } }\n * unset({ a: 1 }, ['b']) // { a: 1 }\n */\nexport function unset<T extends object>(\n obj: T,\n path: readonly PropertyKey[]\n): T {\n if (path.length === 0) return obj\n\n const head = path[0] as PropertyKey\n const rest = path.slice(1)\n\n if (rest.length === 0) {\n const result = { ...obj }\n delete (result as Record<PropertyKey, unknown>)[head]\n return result\n }\n\n const value = (obj as Record<PropertyKey, unknown>)[head]\n if (value === null || value === undefined || typeof value !== 'object') {\n return obj\n }\n\n return {\n ...obj,\n [head as string]: unset(value as object, rest),\n } as T\n}\n","/**\n * Returns all paths in an object as arrays of keys.\n *\n * @example\n * paths({ a: 1, b: { c: 2, d: 3 } })\n * // [['a'], ['b', 'c'], ['b', 'd']]\n */\nexport function paths(obj: object): PropertyKey[][] {\n const result: PropertyKey[][] = []\n\n function traverse(current: unknown, path: PropertyKey[]): void {\n if (current === null || typeof current !== 'object') {\n if (path.length > 0) {\n result.push(path)\n }\n return\n }\n\n if (Array.isArray(current)) {\n if (current.length === 0) {\n result.push(path)\n } else {\n current.forEach((item, index) => {\n traverse(item, [...path, index])\n })\n }\n return\n }\n\n const keys = Object.keys(current)\n if (keys.length === 0) {\n result.push(path)\n } else {\n for (const key of keys) {\n traverse((current as Record<string, unknown>)[key], [...path, key])\n }\n }\n }\n\n traverse(obj, [])\n return result\n}\n","/**\n * Transforms object values using a function.\n *\n * @example\n * transform({ a: 1, b: 2 }, (value, key) => value * 2)\n * // { a: 2, b: 4 }\n */\nexport function transform<T extends object, U>(\n obj: T,\n fn: (value: T[keyof T], key: keyof T) => U\n): Record<keyof T, U> {\n const result = {} as Record<keyof T, U>\n\n for (const key of Object.keys(obj) as (keyof T)[]) {\n result[key] = fn(obj[key], key)\n }\n\n return result\n}\n","/**\n * Deep Path Access with Full Type Safety\n * \n * This is the most technically complex feature in Typetify.\n * It provides type-safe access to nested properties using string paths like \"user.profile.settings.theme\"\n */\n\n/**\n * Splits a dot-separated path string into a tuple of keys.\n * \"a.b.c\" -> [\"a\", \"b\", \"c\"]\n */\ntype Split<S extends string, D extends string = '.'> = \n S extends `${infer T}${D}${infer U}` \n ? [T, ...Split<U, D>] \n : [S]\n\n/**\n * Gets the type at a specific path in an object.\n * Handles optional properties, arrays, and nested objects.\n */\ntype GetByPath<T, Path extends readonly string[]> = \n Path extends readonly [] \n ? T\n : Path extends readonly [infer First extends string, ...infer Rest extends string[]]\n ? First extends keyof NonNullable<T>\n ? T extends null | undefined\n ? GetByPath<NonNullable<T>[First], Rest> | undefined\n : GetByPath<NonNullable<T>[First], Rest>\n : undefined\n : never\n\n/**\n * Gets the type at a dot-separated string path.\n */\ntype PathValue<T, P extends string> = GetByPath<T, Split<P>>\n\n/**\n * Generates all valid paths for an object type.\n * Limited depth to prevent infinite recursion.\n */\ntype Paths<T, Depth extends number = 5> = Depth extends 0\n ? never\n : T extends object\n ? {\n [K in keyof T & string]: T[K] extends object\n ? K | `${K}.${Paths<T[K], Prev[Depth]>}`\n : K\n }[keyof T & string]\n : never\n\ntype Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n\n/**\n * Type-safe deep property access using dot notation.\n * \n * This solves the pain point of accessing nested properties safely\n * while maintaining full type inference.\n * \n * @example\n * interface User {\n * id: number\n * profile: {\n * name: string\n * settings: {\n * theme: 'light' | 'dark'\n * notifications: boolean\n * }\n * }\n * }\n * \n * const user: User = { ... }\n * \n * // Fully type-safe!\n * const theme = deepGet(user, 'profile.settings.theme')\n * // Type: 'light' | 'dark'\n * \n * // TypeScript error: invalid path\n * const invalid = deepGet(user, 'profile.invalid.path')\n * \n * @example\n * // With optional properties\n * interface Config {\n * database?: {\n * host: string\n * port: number\n * }\n * }\n * \n * const host = deepGet(config, 'database.host')\n * // Type: string | undefined\n */\nexport function deepGet<T extends object, P extends string & Paths<T>>(\n obj: T,\n path: P\n): PathValue<T, P> {\n const keys = path.split('.') as string[]\n let current: unknown = obj\n\n for (const key of keys) {\n if (current === null || current === undefined) {\n return undefined as PathValue<T, P>\n }\n if (typeof current !== 'object') {\n return undefined as PathValue<T, P>\n }\n current = (current as Record<string, unknown>)[key]\n }\n\n return current as PathValue<T, P>\n}\n\n/**\n * Deep get with a default value if the path doesn't exist or is undefined.\n * \n * @example\n * const theme = deepGetOr(user, 'profile.settings.theme', 'light')\n * // Type: 'light' | 'dark' (never undefined)\n */\nexport function deepGetOr<T extends object, P extends string & Paths<T>, D>(\n obj: T,\n path: P,\n defaultValue: D\n): NonNullable<PathValue<T, P>> | D {\n const value = deepGet(obj, path)\n return (value ?? defaultValue) as NonNullable<PathValue<T, P>> | D\n}\n\n/**\n * Type-safe deep property setter.\n * Returns a new object with the property set (immutable).\n * \n * @example\n * const updated = deepSet(user, 'profile.settings.theme', 'dark')\n * // Returns new object, original unchanged\n */\nexport function deepSet<T extends object, P extends string & Paths<T>>(\n obj: T,\n path: P,\n value: PathValue<T, P>\n): T {\n const keys = path.split('.')\n const result = structuredClone(obj)\n \n let current: Record<string, unknown> = result as Record<string, unknown>\n \n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i]!\n if (current[key] === undefined || current[key] === null) {\n current[key] = {}\n }\n current = current[key] as Record<string, unknown>\n }\n \n const lastKey = keys[keys.length - 1]!\n current[lastKey] = value\n return result\n}\n\n/**\n * Checks if a path exists in an object (value is not undefined).\n * \n * @example\n * if (deepHas(user, 'profile.settings.theme')) {\n * // path exists\n * }\n */\nexport function deepHas<T extends object, P extends string & Paths<T>>(\n obj: T,\n path: P\n): boolean {\n return deepGet(obj, path) !== undefined\n}\n\n/**\n * Creates a getter function for a specific path.\n * Useful for repeated access or in pipelines.\n * \n * @example\n * const getTheme = deepPath<User>()('profile.settings.theme')\n * \n * users.map(getTheme)\n * // Type: ('light' | 'dark')[]\n */\nexport function deepPath<T extends object>() {\n return <P extends string & Paths<T>>(path: P) => {\n return (obj: T): PathValue<T, P> => deepGet(obj, path)\n }\n}\n\n/**\n * Plucks a nested property from an array of objects.\n * \n * @example\n * const themes = deepPluck(users, 'profile.settings.theme')\n * // Type: ('light' | 'dark')[]\n */\nexport function deepPluck<T extends object, P extends string & Paths<T>>(\n array: readonly T[],\n path: P\n): PathValue<T, P>[] {\n return array.map(obj => deepGet(obj, path))\n}\n\nexport type { Paths, PathValue, Split, GetByPath }\n"]}
|
package/dist/chunk-YOPAXITF.mjs
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { __export } from './chunk-J5LGTIGS.mjs';
|
|
2
|
-
|
|
3
|
-
// src/string/index.ts
|
|
4
|
-
var string_exports = {};
|
|
5
|
-
__export(string_exports, {
|
|
6
|
-
camelCase: () => camelCase,
|
|
7
|
-
capitalize: () => capitalize,
|
|
8
|
-
kebabCase: () => kebabCase,
|
|
9
|
-
pascalCase: () => pascalCase,
|
|
10
|
-
slugify: () => slugify,
|
|
11
|
-
snakeCase: () => snakeCase,
|
|
12
|
-
template: () => template,
|
|
13
|
-
truncate: () => truncate,
|
|
14
|
-
uncapitalize: () => uncapitalize,
|
|
15
|
-
words: () => words
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
// src/string/capitalize.ts
|
|
19
|
-
function capitalize(str) {
|
|
20
|
-
if (str.length === 0) return "";
|
|
21
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// src/string/uncapitalize.ts
|
|
25
|
-
function uncapitalize(str) {
|
|
26
|
-
if (str.length === 0) return "";
|
|
27
|
-
return str.charAt(0).toLowerCase() + str.slice(1);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// src/string/camelCase.ts
|
|
31
|
-
function camelCase(str) {
|
|
32
|
-
return str.replace(/[-_\s]+(.)?/g, (_, char) => char ? char.toUpperCase() : "").replace(/^[A-Z]/, (char) => char.toLowerCase());
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// src/string/kebabCase.ts
|
|
36
|
-
function kebabCase(str) {
|
|
37
|
-
return str.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// src/string/snakeCase.ts
|
|
41
|
-
function snakeCase(str) {
|
|
42
|
-
return str.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[\s-]+/g, "_").toLowerCase();
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// src/string/pascalCase.ts
|
|
46
|
-
function pascalCase(str) {
|
|
47
|
-
return str.replace(/[-_\s]+(.)?/g, (_, char) => char ? char.toUpperCase() : "").replace(/^[a-z]/, (char) => char.toUpperCase());
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// src/string/truncate.ts
|
|
51
|
-
function truncate(str, length, suffix = "...") {
|
|
52
|
-
if (str.length <= length) return str;
|
|
53
|
-
return str.slice(0, length) + suffix;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// src/string/slugify.ts
|
|
57
|
-
function slugify(str) {
|
|
58
|
-
return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/[\s_]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// src/string/template.ts
|
|
62
|
-
function template(str, vars) {
|
|
63
|
-
return str.replace(/\{\{(\w+)\}\}/g, (_, key) => {
|
|
64
|
-
return key in vars ? String(vars[key]) : `{{${key}}}`;
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// src/string/words.ts
|
|
69
|
-
function words(str) {
|
|
70
|
-
return str.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/[-_]+/g, " ").trim().split(/\s+/).filter(Boolean);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export { camelCase, capitalize, kebabCase, pascalCase, slugify, snakeCase, string_exports, template, truncate, uncapitalize, words };
|
|
74
|
-
//# sourceMappingURL=chunk-YOPAXITF.mjs.map
|
|
75
|
-
//# sourceMappingURL=chunk-YOPAXITF.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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":[],"mappings":";;;AAAA,IAAA,cAAA,GAAA;AAAA,QAAA,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-YOPAXITF.mjs","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"]}
|
package/dist/chunk-ZE4FDBRI.mjs
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { __export } from './chunk-J5LGTIGS.mjs';
|
|
2
|
-
|
|
3
|
-
// src/fn/index.ts
|
|
4
|
-
var fn_exports = {};
|
|
5
|
-
__export(fn_exports, {
|
|
6
|
-
ary: () => ary,
|
|
7
|
-
curry: () => curry,
|
|
8
|
-
flip: () => flip,
|
|
9
|
-
memoize: () => memoize,
|
|
10
|
-
negate: () => negate,
|
|
11
|
-
partial: () => partial,
|
|
12
|
-
unary: () => unary
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
// src/fn/memoize.ts
|
|
16
|
-
function memoize(fn, resolver) {
|
|
17
|
-
const cache = /* @__PURE__ */ new Map();
|
|
18
|
-
const memoized = function(...args) {
|
|
19
|
-
const key = resolver ? resolver(...args) : args[0];
|
|
20
|
-
if (cache.has(key)) {
|
|
21
|
-
return cache.get(key);
|
|
22
|
-
}
|
|
23
|
-
const result = fn.apply(this, args);
|
|
24
|
-
cache.set(key, result);
|
|
25
|
-
return result;
|
|
26
|
-
};
|
|
27
|
-
return memoized;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// src/fn/negate.ts
|
|
31
|
-
function negate(fn) {
|
|
32
|
-
return function(...args) {
|
|
33
|
-
return !fn(...args);
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// src/fn/flip.ts
|
|
38
|
-
function flip(fn) {
|
|
39
|
-
return function(b, a) {
|
|
40
|
-
return fn(a, b);
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// src/fn/partial.ts
|
|
45
|
-
function partial(fn, ...partialArgs) {
|
|
46
|
-
return function(...args) {
|
|
47
|
-
return fn(...partialArgs, ...args);
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// src/fn/curry.ts
|
|
52
|
-
function curry(fn) {
|
|
53
|
-
const arity = fn.length;
|
|
54
|
-
function curried(...args) {
|
|
55
|
-
if (args.length >= arity) {
|
|
56
|
-
return fn(...args);
|
|
57
|
-
}
|
|
58
|
-
return (...moreArgs) => curried(...args, ...moreArgs);
|
|
59
|
-
}
|
|
60
|
-
return curried;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// src/fn/ary.ts
|
|
64
|
-
function ary(fn, n) {
|
|
65
|
-
return function(...args) {
|
|
66
|
-
return fn(...args.slice(0, n));
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// src/fn/unary.ts
|
|
71
|
-
function unary(fn) {
|
|
72
|
-
return function(arg) {
|
|
73
|
-
return fn(arg);
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export { ary, curry, flip, fn_exports, memoize, negate, partial, unary };
|
|
78
|
-
//# sourceMappingURL=chunk-ZE4FDBRI.mjs.map
|
|
79
|
-
//# sourceMappingURL=chunk-ZE4FDBRI.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/fn/index.ts","../src/fn/memoize.ts","../src/fn/negate.ts","../src/fn/flip.ts","../src/fn/partial.ts","../src/fn/curry.ts","../src/fn/ary.ts","../src/fn/unary.ts"],"names":[],"mappings":";;;AAAA,IAAA,UAAA,GAAA;AAAA,QAAA,CAAA,UAAA,EAAA;AAAA,EAAA,GAAA,EAAA,MAAA,GAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,IAAA,EAAA,MAAA,IAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,KAAA,EAAA,MAAA;AAAA,CAAA,CAAA;;;ACYO,SAAS,OAAA,CACd,IACA,QAAA,EACG;AACH,EAAA,MAAM,KAAA,uBAAY,GAAA,EAA4B;AAE9C,EAAA,MAAM,QAAA,GAAW,YAA4B,IAAA,EAAoC;AAC/E,IAAA,MAAM,MAAM,QAAA,GAAW,QAAA,CAAS,GAAG,IAAI,CAAA,GAAI,KAAK,CAAC,CAAA;AAEjD,IAAA,IAAI,KAAA,CAAM,GAAA,CAAI,GAAG,CAAA,EAAG;AAClB,MAAA,OAAO,KAAA,CAAM,IAAI,GAAG,CAAA;AAAA,IACtB;AAEA,IAAA,MAAM,MAAA,GAAS,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,IAAI,CAAA;AAClC,IAAA,KAAA,CAAM,GAAA,CAAI,KAAK,MAAM,CAAA;AACrB,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO,QAAA;AACT;;;ACtBO,SAAS,OACd,EAAA,EACqC;AACrC,EAAA,OAAO,YAAa,IAAA,EAA8B;AAChD,IAAA,OAAO,CAAC,EAAA,CAAG,GAAG,IAAI,CAAA;AAAA,EACpB,CAAA;AACF;;;ACPO,SAAS,KACd,EAAA,EACmB;AACnB,EAAA,OAAO,SAAU,GAAM,CAAA,EAAS;AAC9B,IAAA,OAAO,EAAA,CAAG,GAAG,CAAC,CAAA;AAAA,EAChB,CAAA;AACF;;;ACNO,SAAS,OAAA,CACd,OACG,WAAA,EACgC;AACnC,EAAA,OAAO,YAAa,IAAA,EAA4B;AAC9C,IAAA,OAAO,EAAA,CAAG,GAAG,WAAA,EAAa,GAAG,IAAI,CAAA;AAAA,EACnC,CAAA;AACF;;;ACHO,SAAS,MACd,EAAA,EACyB;AACzB,EAAA,MAAM,QAAQ,EAAA,CAAG,MAAA;AAEjB,EAAA,SAAS,WAAW,IAAA,EAAkB;AACpC,IAAA,IAAI,IAAA,CAAK,UAAU,KAAA,EAAO;AACxB,MAAA,OAAO,EAAA,CAAG,GAAG,IAAI,CAAA;AAAA,IACnB;AACA,IAAA,OAAO,IAAI,QAAA,KAAoB,OAAA,CAAQ,GAAG,IAAA,EAAM,GAAG,QAAQ,CAAA;AAAA,EAC7D;AAEA,EAAA,OAAO,OAAA;AACT;;;AClBO,SAAS,GAAA,CACd,IACA,CAAA,EACmC;AACnC,EAAA,OAAO,YAAa,IAAA,EAA4B;AAC9C,IAAA,OAAO,GAAG,GAAG,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,EAC/B,CAAA;AACF;;;ACRO,SAAS,MACd,EAAA,EAC0C;AAC1C,EAAA,OAAO,SAAU,GAAA,EAAsC;AACrD,IAAA,OAAO,GAAG,GAAG,CAAA;AAAA,EACf,CAAA;AACF","file":"chunk-ZE4FDBRI.mjs","sourcesContent":["export { memoize } from './memoize'\nexport { negate } from './negate'\nexport { flip } from './flip'\nexport { partial } from './partial'\nexport { curry } from './curry'\nexport { ary } from './ary'\nexport { unary } from './unary'\n","/**\n * Creates a memoized version of a function.\n * Results are cached based on the first argument (by default).\n *\n * @example\n * const expensive = memoize((n: number) => {\n * console.log('computing...')\n * return n * 2\n * })\n * expensive(5) // logs 'computing...', returns 10\n * expensive(5) // returns 10 (cached)\n */\nexport function memoize<T extends (...args: any[]) => any>(\n fn: T,\n resolver?: (...args: Parameters<T>) => unknown\n): T {\n const cache = new Map<unknown, ReturnType<T>>()\n\n const memoized = function (this: unknown, ...args: Parameters<T>): ReturnType<T> {\n const key = resolver ? resolver(...args) : args[0]\n\n if (cache.has(key)) {\n return cache.get(key)!\n }\n\n const result = fn.apply(this, args)\n cache.set(key, result)\n return result\n }\n\n return memoized as T\n}\n","/**\n * Creates a function that negates the result of the predicate.\n *\n * @example\n * const isEven = (n: number) => n % 2 === 0\n * const isOdd = negate(isEven)\n * isOdd(3) // true\n * isOdd(4) // false\n */\nexport function negate<T extends (...args: any[]) => boolean>(\n fn: T\n): (...args: Parameters<T>) => boolean {\n return function (...args: Parameters<T>): boolean {\n return !fn(...args)\n }\n}\n","/**\n * Creates a function that invokes the original function with arguments reversed.\n *\n * @example\n * const divide = (a: number, b: number) => a / b\n * const flipped = flip(divide)\n * flipped(2, 10) // 5 (10 / 2)\n */\nexport function flip<A, B, R>(\n fn: (a: A, b: B) => R\n): (b: B, a: A) => R {\n return function (b: B, a: A): R {\n return fn(a, b)\n }\n}\n","/**\n * Creates a function with some arguments pre-filled.\n *\n * @example\n * const greet = (greeting: string, name: string) => `${greeting}, ${name}!`\n * const sayHello = partial(greet, 'Hello')\n * sayHello('World') // 'Hello, World!'\n */\nexport function partial<T extends (...args: any[]) => any, A extends any[]>(\n fn: T,\n ...partialArgs: A\n): (...args: any[]) => ReturnType<T> {\n return function (...args: any[]): ReturnType<T> {\n return fn(...partialArgs, ...args)\n }\n}\n","/**\n * Creates a curried version of a function.\n * The curried function can be called with fewer arguments,\n * returning a new function that takes the remaining arguments.\n *\n * @example\n * const add = (a: number, b: number, c: number) => a + b + c\n * const curriedAdd = curry(add)\n * curriedAdd(1)(2)(3) // 6\n * curriedAdd(1, 2)(3) // 6\n * curriedAdd(1)(2, 3) // 6\n */\nexport function curry<T extends (...args: any[]) => any>(\n fn: T\n): (...args: any[]) => any {\n const arity = fn.length\n\n function curried(...args: any[]): any {\n if (args.length >= arity) {\n return fn(...args)\n }\n return (...moreArgs: any[]) => curried(...args, ...moreArgs)\n }\n\n return curried\n}\n","/**\n * Creates a function that accepts up to n arguments, ignoring additional arguments.\n *\n * @example\n * const fn = ary(parseInt, 1)\n * ['1', '2', '3'].map(fn) // [1, 2, 3] instead of [1, NaN, NaN]\n */\nexport function ary<T extends (...args: any[]) => any>(\n fn: T,\n n: number\n): (...args: any[]) => ReturnType<T> {\n return function (...args: any[]): ReturnType<T> {\n return fn(...args.slice(0, n))\n }\n}\n","/**\n * Creates a function that accepts only one argument, ignoring additional arguments.\n *\n * @example\n * ['1', '2', '3'].map(unary(parseInt)) // [1, 2, 3]\n */\nexport function unary<T extends (...args: any[]) => any>(\n fn: T\n): (arg: Parameters<T>[0]) => ReturnType<T> {\n return function (arg: Parameters<T>[0]): ReturnType<T> {\n return fn(arg)\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
package/dist/core/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/core/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
package/dist/dx/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/dx/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
package/dist/flow/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/flow/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
package/dist/fn/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/fn/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
package/dist/guards/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|