pepka 1.6.19 → 1.6.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.cjs +2 -6
- package/dist/bundle.d.ts +282 -267
- package/dist/bundle.mjs +2 -6
- package/package.json +1 -1
- package/src/curry.ts +18 -39
- package/src/index.ts +5 -5
- package/src/safe.ts +16 -16
- package/src/timers.ts +3 -2
- package/src/types.ts +9 -1
package/dist/bundle.cjs
CHANGED
|
@@ -49,12 +49,8 @@ const endlessph = (fn) => {
|
|
|
49
49
|
const zero = 0;
|
|
50
50
|
function curry2(fn) {
|
|
51
51
|
function curried2(a, ...args) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (aln && withPlaceholder1)
|
|
55
|
-
throw new Error('Senseless placeholder usage.');
|
|
56
|
-
return aln
|
|
57
|
-
? withPlaceholder1
|
|
52
|
+
return args.length > zero
|
|
53
|
+
? a === __
|
|
58
54
|
? endlessph((a) => fn(a, args[zero]))
|
|
59
55
|
: fn(a, args[zero])
|
|
60
56
|
: (b) => fn(a, b);
|
package/dist/bundle.d.ts
CHANGED
|
@@ -23,9 +23,19 @@ export type AnyFunc<ReturnT = any, Args extends AnyArgs = AnyArgs> = (...args: A
|
|
|
23
23
|
export type Curried<Args extends AnyArgs = AnyArgs, ReturnT = any> = (arg: Args[number]) => Curried<Args> | ReturnT;
|
|
24
24
|
export type Composed<TIn extends any[], TOut> = (...xs: TIn) => TOut;
|
|
25
25
|
export type Inverse<T> = T extends Falsey ? true : false;
|
|
26
|
+
export type PathValue<O, Keys extends readonly PropertyKey[], Default> = Keys extends [
|
|
27
|
+
infer K,
|
|
28
|
+
...infer Rest
|
|
29
|
+
] ? K extends keyof O ? Rest extends PropertyKey[] ? PathValue<O[K], Rest, Default> : Default : Default : O;
|
|
26
30
|
type Placeholder = symbol;
|
|
27
31
|
export declare const __: Placeholder;
|
|
28
32
|
export declare const curry: (fn: AnyFunc) => (...args: AnyArgs) => any;
|
|
33
|
+
type Curried2<p0, p1, ReturnT> = {
|
|
34
|
+
(a: Placeholder, b: p1): (a: p0) => ReturnT;
|
|
35
|
+
(a: p0, b: Placeholder): (b: p1) => ReturnT;
|
|
36
|
+
(a: p0): (b: p1) => ReturnT;
|
|
37
|
+
(a: p0, b: p1): ReturnT;
|
|
38
|
+
};
|
|
29
39
|
type Func2 = (a: any, b: any) => any;
|
|
30
40
|
export declare function curry2<Func extends Func2>(fn: Func): {
|
|
31
41
|
(a: Placeholder, b: Parameters<Func>[1]): (a: Parameters<Func>[0]) => ReturnType<Func>;
|
|
@@ -33,59 +43,191 @@ export declare function curry2<Func extends Func2>(fn: Func): {
|
|
|
33
43
|
(a: Parameters<Func>[0]): (b: Parameters<Func>[1]) => ReturnType<Func>;
|
|
34
44
|
(a: Parameters<Func>[0], b: Parameters<Func>[1]): ReturnType<Func>;
|
|
35
45
|
};
|
|
36
|
-
type
|
|
37
|
-
export declare
|
|
38
|
-
|
|
46
|
+
type Curried3<A, B, C, R> = ((a: A) => Curried2<B, C, R>) & ((a: A, b: B) => (c: C) => R) & ((a: A, b: B, c: C) => R) & ((a: Placeholder, b: B, c: C) => (a: A) => R) & ((a: A, b: Placeholder, c: C) => (b: B) => R) & ((a: A, b: B, c: Placeholder) => (c: C) => R) & ((a: Placeholder, b: Placeholder, c: C) => (a: A, b: B) => R) & ((a: Placeholder, b: B, c: Placeholder) => (a: A, c: C) => R) & ((a: A, b: Placeholder, c: Placeholder) => (b: B, c: C) => R);
|
|
47
|
+
export declare const curry3: <Params extends [
|
|
48
|
+
any,
|
|
49
|
+
any,
|
|
50
|
+
any
|
|
51
|
+
], ReturnT, F = AnyFunc<ReturnT, Params>>(fn: F) => Curried3<Params[0], Params[1], Params[2], ReturnT>;
|
|
52
|
+
/** One promise waits for another. */
|
|
53
|
+
export declare const forEachSerial: {
|
|
54
|
+
(a: Placeholder, b: any[]): (a: AnyFunc) => Promise<void>;
|
|
55
|
+
(a: AnyFunc, b: Placeholder): (b: any[]) => Promise<void>;
|
|
56
|
+
(a: AnyFunc): (b: any[]) => Promise<void>;
|
|
57
|
+
(a: AnyFunc, b: any[]): Promise<void>;
|
|
58
|
+
};
|
|
59
|
+
/** Promise.all wrapper for functional pipelining. */
|
|
60
|
+
export declare const waitAll: <T>(promises: Promise<T>[]) => Promise<Awaited<T>[]>;
|
|
61
|
+
/** Waits for a Promise that been generated by the first arg, then returns an untoched value. Types T.
|
|
62
|
+
* @param {AnyFunc<Promise>} fn - function to wait.
|
|
63
|
+
* @param {T} s - any value to tap and return back
|
|
64
|
+
* @returns {T}
|
|
65
|
+
*/
|
|
66
|
+
export declare const waitTap: {
|
|
67
|
+
(a: Placeholder, b: any): (a: AnyFunc<Promise<any>>) => Promise<any>;
|
|
68
|
+
(a: AnyFunc<Promise<any>>, b: Placeholder): (b: any) => Promise<any>;
|
|
69
|
+
(a: AnyFunc<Promise<any>>): (b: any) => Promise<any>;
|
|
70
|
+
(a: AnyFunc<Promise<any>>, b: any): Promise<any>;
|
|
71
|
+
};
|
|
72
|
+
/** Waits for all promises mapped by the fn. */
|
|
73
|
+
export declare const forEachAsync: {
|
|
74
|
+
(a: Placeholder, b: any[]): (a: (item: any) => Promise<any>) => Promise<any[]>;
|
|
75
|
+
(a: (item: any) => Promise<any>, b: Placeholder): (b: any[]) => Promise<any[]>;
|
|
76
|
+
(a: (item: any) => Promise<any>): (b: any[]) => Promise<any[]>;
|
|
77
|
+
(a: (item: any) => Promise<any>, b: any[]): Promise<any[]>;
|
|
78
|
+
};
|
|
79
|
+
/** The same as compose, but waits for promises in chains and returns a Promise. */
|
|
80
|
+
export declare const composeAsync: <TIn extends any[] = any[], TOut = any>(...fns: AnyFunc[]) => Composed<TIn, Promise<TOut>>;
|
|
39
81
|
declare const length$1: <T extends AnyArray | string>(s: T) => T extends string ? StrLen<T> : T["length"];
|
|
40
82
|
export declare const symbol: unique symbol;
|
|
41
83
|
export declare const toLower: (s: string) => string;
|
|
42
84
|
export declare const toUpper: (s: string) => string;
|
|
43
85
|
export declare const type: (s: any) => string;
|
|
44
86
|
export declare const typeIs: {
|
|
45
|
-
(a:
|
|
46
|
-
(a: string, b:
|
|
87
|
+
(a: Placeholder, b: any): (a: string) => boolean;
|
|
88
|
+
(a: string, b: Placeholder): (b: any) => boolean;
|
|
47
89
|
(a: string): (b: any) => boolean;
|
|
48
90
|
(a: string, b: any): boolean;
|
|
49
91
|
};
|
|
50
92
|
export declare const eq: {
|
|
51
|
-
(a:
|
|
52
|
-
(a: any, b:
|
|
93
|
+
(a: Placeholder, b: any): (a: any) => boolean;
|
|
94
|
+
(a: any, b: Placeholder): (b: any) => boolean;
|
|
53
95
|
(a: any): (b: any) => boolean;
|
|
54
96
|
(a: any, b: any): boolean;
|
|
55
97
|
};
|
|
56
98
|
export declare const equals: {
|
|
57
|
-
(a:
|
|
58
|
-
(a: any, b:
|
|
99
|
+
(a: Placeholder, b: any): (a: any) => boolean;
|
|
100
|
+
(a: any, b: Placeholder): (b: any) => boolean;
|
|
59
101
|
(a: any): (b: any) => boolean;
|
|
60
102
|
(a: any, b: any): boolean;
|
|
61
103
|
};
|
|
62
104
|
export declare const includes: {
|
|
63
|
-
(a:
|
|
64
|
-
(a: unknown, b:
|
|
105
|
+
(a: Placeholder, b: unknown[]): (a: unknown) => boolean;
|
|
106
|
+
(a: unknown, b: Placeholder): (b: unknown[]) => boolean;
|
|
65
107
|
(a: unknown): (b: unknown[]) => boolean;
|
|
66
108
|
(a: unknown, b: unknown[]): boolean;
|
|
67
109
|
};
|
|
110
|
+
export declare const qappend: {
|
|
111
|
+
(a: Placeholder, b: any[]): (a: any) => any[];
|
|
112
|
+
(a: any, b: Placeholder): (b: any[]) => any[];
|
|
113
|
+
(a: any): (b: any[]) => any[];
|
|
114
|
+
(a: any, b: any[]): any[];
|
|
115
|
+
};
|
|
116
|
+
export declare const qassoc: Curried3<any, any, any, unknown>;
|
|
117
|
+
export declare const qreduce: Curried3<any, any, any, unknown>;
|
|
118
|
+
export declare const qmergeDeep: {
|
|
119
|
+
(a: Placeholder, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
120
|
+
(a: AnyObject, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
121
|
+
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
122
|
+
(a: AnyObject, b: AnyObject): AnyObject;
|
|
123
|
+
};
|
|
124
|
+
export declare const qmergeDeepX: {
|
|
125
|
+
(a: Placeholder, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
126
|
+
(a: AnyObject, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
127
|
+
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
128
|
+
(a: AnyObject, b: AnyObject): AnyObject;
|
|
129
|
+
};
|
|
130
|
+
export declare const qmergeDeepAdd: {
|
|
131
|
+
(a: Placeholder, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
132
|
+
(a: AnyObject, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
133
|
+
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
134
|
+
(a: AnyObject, b: AnyObject): AnyObject;
|
|
135
|
+
};
|
|
136
|
+
/** @param o1 <- o2 */
|
|
137
|
+
export declare const qmergeShallow: {
|
|
138
|
+
(a: Placeholder, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
139
|
+
(a: AnyObject, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
140
|
+
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
141
|
+
(a: AnyObject, b: AnyObject): AnyObject;
|
|
142
|
+
};
|
|
143
|
+
/** qmapKeys({ a: 'b' }, { a: 44 }) -> { b: 44 } */
|
|
144
|
+
export declare const qmapKeys: {
|
|
145
|
+
(a: Placeholder, b: AnyObject): (a: {
|
|
146
|
+
[oldKey: string]: string | AnyFunc;
|
|
147
|
+
}) => AnyObject;
|
|
148
|
+
(a: {
|
|
149
|
+
[oldKey: string]: string | AnyFunc;
|
|
150
|
+
}, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
151
|
+
(a: {
|
|
152
|
+
[oldKey: string]: string | AnyFunc;
|
|
153
|
+
}): (b: AnyObject) => AnyObject;
|
|
154
|
+
(a: {
|
|
155
|
+
[oldKey: string]: string | AnyFunc;
|
|
156
|
+
}, b: AnyObject): AnyObject;
|
|
157
|
+
};
|
|
158
|
+
export declare const qmap: {
|
|
159
|
+
(a: Placeholder, b: any[]): (a: (s: any, i?: number, list?: any[]) => any) => any[];
|
|
160
|
+
(a: (s: any, i?: number, list?: any[]) => any, b: Placeholder): (b: any[]) => any[];
|
|
161
|
+
(a: (s: any, i?: number, list?: any[]) => any): (b: any[]) => any[];
|
|
162
|
+
(a: (s: any, i?: number, list?: any[]) => any, b: any[]): any[];
|
|
163
|
+
};
|
|
164
|
+
export declare const qmapObj: {
|
|
165
|
+
(a: Placeholder, b: AnyObject): (a: (s: any, k?: string, o?: AnyObject) => any) => AnyObject;
|
|
166
|
+
(a: (s: any, k?: string, o?: AnyObject) => any, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
167
|
+
(a: (s: any, k?: string, o?: AnyObject) => any): (b: AnyObject) => AnyObject;
|
|
168
|
+
(a: (s: any, k?: string, o?: AnyObject) => any, b: AnyObject): AnyObject;
|
|
169
|
+
};
|
|
170
|
+
export declare const qfilter: {
|
|
171
|
+
(a: Placeholder, b: any[] | AnyObject): (a: (v: any, k: string | number) => boolean) => any[] | AnyObject;
|
|
172
|
+
(a: (v: any, k: string | number) => boolean, b: Placeholder): (b: any[] | AnyObject) => any[] | AnyObject;
|
|
173
|
+
(a: (v: any, k: string | number) => boolean): (b: any[] | AnyObject) => any[] | AnyObject;
|
|
174
|
+
(a: (v: any, k: string | number) => boolean, b: any[] | AnyObject): any[] | AnyObject;
|
|
175
|
+
};
|
|
176
|
+
export declare const qempty: <T extends AnyObject | any[]>(o: T) => T extends any[] ? [
|
|
177
|
+
] : {};
|
|
178
|
+
export declare const qfreeze: <T extends AnyObject>(o: T) => Readonly<T>;
|
|
179
|
+
export declare const qfreezeShallow: <T extends AnyObject>(o: T) => Readonly<T>;
|
|
180
|
+
export declare const qprepend: {
|
|
181
|
+
(a: Placeholder, b: any[]): (a: any) => number;
|
|
182
|
+
(a: any, b: Placeholder): (b: any[]) => number;
|
|
183
|
+
(a: any): (b: any[]) => number;
|
|
184
|
+
(a: any, b: any[]): number;
|
|
185
|
+
};
|
|
186
|
+
export declare const qsort: {
|
|
187
|
+
(a: Placeholder, b: any[]): (a: (a: any, b: any) => number) => any[];
|
|
188
|
+
(a: (a: any, b: any) => number, b: Placeholder): (b: any[]) => any[];
|
|
189
|
+
(a: (a: any, b: any) => number): (b: any[]) => any[];
|
|
190
|
+
(a: (a: any, b: any) => number, b: any[]): any[];
|
|
191
|
+
};
|
|
192
|
+
export declare const qassocPath: Curried3<any, any, any, unknown>;
|
|
193
|
+
export declare const qreverse: (arr: any[]) => any[];
|
|
194
|
+
export declare const qomit: {
|
|
195
|
+
(a: Placeholder, b: AnyObject): (a: string[]) => any[] | AnyObject;
|
|
196
|
+
(a: string[], b: Placeholder): (b: AnyObject) => any[] | AnyObject;
|
|
197
|
+
(a: string[]): (b: AnyObject) => any[] | AnyObject;
|
|
198
|
+
(a: string[], b: AnyObject): any[] | AnyObject;
|
|
199
|
+
};
|
|
200
|
+
/** @param prop string @param pipe (data[prop]): prop_value @param data any
|
|
201
|
+
* @returns data with prop over pipe. */
|
|
202
|
+
export declare const qoverProp: Curried3<any, any, any, unknown>;
|
|
203
|
+
export declare const qpush: {
|
|
204
|
+
(a: Placeholder, b: any[]): (a: any) => any[];
|
|
205
|
+
(a: any, b: Placeholder): (b: any[]) => any[];
|
|
206
|
+
(a: any): (b: any[]) => any[];
|
|
207
|
+
(a: any, b: any[]): any[];
|
|
208
|
+
};
|
|
68
209
|
export declare const isNil: <T extends any>(s: T) => T extends (null | undefined) ? true : false;
|
|
69
210
|
export declare const take: (argN: number) => (...args: any[]) => any;
|
|
70
211
|
export declare const ifElse: (...args: AnyArgs) => any;
|
|
71
|
-
export declare const when:
|
|
212
|
+
export declare const when: Curried3<any, any, any, unknown>;
|
|
72
213
|
export declare const compose: <TIn extends any[] = any[], TOut = any>(...fns: AnyFunc[]) => Composed<TIn, TOut>;
|
|
214
|
+
/** @param fn AnyFunc @param context any */
|
|
73
215
|
export declare const bind: {
|
|
74
|
-
(a:
|
|
75
|
-
(a: any, b:
|
|
216
|
+
(a: Placeholder, b: any): (a: any) => any;
|
|
217
|
+
(a: any, b: Placeholder): (b: any) => any;
|
|
76
218
|
(a: any): (b: any) => any;
|
|
77
219
|
(a: any, b: any): any;
|
|
78
220
|
};
|
|
79
221
|
export declare const nth: {
|
|
80
|
-
(a:
|
|
81
|
-
(a: number, b:
|
|
222
|
+
(a: Placeholder, b: string | ArrayLike<unknown>): (a: number) => unknown;
|
|
223
|
+
(a: number, b: Placeholder): (b: string | ArrayLike<unknown>) => unknown;
|
|
82
224
|
(a: number): (b: string | ArrayLike<unknown>) => unknown;
|
|
83
225
|
(a: number, b: string | ArrayLike<unknown>): unknown;
|
|
84
226
|
};
|
|
85
|
-
export declare const slice:
|
|
227
|
+
export declare const slice: Curried3<any, any, any, unknown>;
|
|
86
228
|
export declare const flip: <T extends AnyFunc>(fn: T) => {
|
|
87
|
-
(a:
|
|
88
|
-
(a: Parameters<T>[1], b:
|
|
229
|
+
(a: Placeholder, b: Parameters<T>[0]): (a: Parameters<T>[1]) => any;
|
|
230
|
+
(a: Parameters<T>[1], b: Placeholder): (b: Parameters<T>[0]) => any;
|
|
89
231
|
(a: Parameters<T>[1]): (b: Parameters<T>[0]) => any;
|
|
90
232
|
(a: Parameters<T>[1], b: Parameters<T>[0]): any;
|
|
91
233
|
};
|
|
@@ -127,80 +269,80 @@ type LastOverload = {
|
|
|
127
269
|
export declare const last: LastOverload;
|
|
128
270
|
/** @param a @param b @returns a+b */
|
|
129
271
|
export declare const add: {
|
|
130
|
-
(a:
|
|
131
|
-
(a: number, b:
|
|
272
|
+
(a: Placeholder, b: number): (a: number) => number;
|
|
273
|
+
(a: number, b: Placeholder): (b: number) => number;
|
|
132
274
|
(a: number): (b: number) => number;
|
|
133
275
|
(a: number, b: number): number;
|
|
134
276
|
};
|
|
135
277
|
/** @param a @param b @returns b-a */
|
|
136
278
|
export declare const subtract: {
|
|
137
|
-
(a:
|
|
138
|
-
(a: number, b:
|
|
279
|
+
(a: Placeholder, b: number): (a: number) => number;
|
|
280
|
+
(a: number, b: Placeholder): (b: number) => number;
|
|
139
281
|
(a: number): (b: number) => number;
|
|
140
282
|
(a: number, b: number): number;
|
|
141
283
|
};
|
|
142
284
|
/**@param a @param b @returns a×b */
|
|
143
285
|
export declare const multiply: {
|
|
144
|
-
(a:
|
|
145
|
-
(a: number, b:
|
|
286
|
+
(a: Placeholder, b: number): (a: number) => number;
|
|
287
|
+
(a: number, b: Placeholder): (b: number) => number;
|
|
146
288
|
(a: number): (b: number) => number;
|
|
147
289
|
(a: number, b: number): number;
|
|
148
290
|
};
|
|
149
291
|
/** @param a @param b @returns a<b */
|
|
150
292
|
export declare const gt: {
|
|
151
|
-
(a:
|
|
152
|
-
(a: number, b:
|
|
293
|
+
(a: Placeholder, b: number): (a: number) => boolean;
|
|
294
|
+
(a: number, b: Placeholder): (b: number) => boolean;
|
|
153
295
|
(a: number): (b: number) => boolean;
|
|
154
296
|
(a: number, b: number): boolean;
|
|
155
297
|
};
|
|
156
298
|
/** @param a @param b @returns a>b */
|
|
157
299
|
export declare const lt: {
|
|
158
|
-
(a:
|
|
159
|
-
(a: number, b:
|
|
300
|
+
(a: Placeholder, b: number): (a: number) => boolean;
|
|
301
|
+
(a: number, b: Placeholder): (b: number) => boolean;
|
|
160
302
|
(a: number): (b: number) => boolean;
|
|
161
303
|
(a: number, b: number): boolean;
|
|
162
304
|
};
|
|
163
305
|
/** @param a @param b @returns a≤b */
|
|
164
306
|
export declare const gte: {
|
|
165
|
-
(a:
|
|
166
|
-
(a: number, b:
|
|
307
|
+
(a: Placeholder, b: number): (a: number) => boolean;
|
|
308
|
+
(a: number, b: Placeholder): (b: number) => boolean;
|
|
167
309
|
(a: number): (b: number) => boolean;
|
|
168
310
|
(a: number, b: number): boolean;
|
|
169
311
|
};
|
|
170
312
|
/** @param a @param b @returns a≥b */
|
|
171
313
|
export declare const lte: {
|
|
172
|
-
(a:
|
|
173
|
-
(a: number, b:
|
|
314
|
+
(a: Placeholder, b: number): (a: number) => boolean;
|
|
315
|
+
(a: number, b: Placeholder): (b: number) => boolean;
|
|
174
316
|
(a: number): (b: number) => boolean;
|
|
175
317
|
(a: number, b: number): boolean;
|
|
176
318
|
};
|
|
177
319
|
export declare const sort: {
|
|
178
|
-
(a:
|
|
179
|
-
(a: (a: unknown, b: unknown) => number, b:
|
|
320
|
+
(a: Placeholder, b: unknown[]): (a: (a: unknown, b: unknown) => number) => unknown[];
|
|
321
|
+
(a: (a: unknown, b: unknown) => number, b: Placeholder): (b: unknown[]) => unknown[];
|
|
180
322
|
(a: (a: unknown, b: unknown) => number): (b: unknown[]) => unknown[];
|
|
181
323
|
(a: (a: unknown, b: unknown) => number, b: unknown[]): unknown[];
|
|
182
324
|
};
|
|
183
325
|
export declare const find: {
|
|
184
|
-
(a:
|
|
185
|
-
(a: Cond, b:
|
|
326
|
+
(a: Placeholder, b: any[]): (a: Cond) => any;
|
|
327
|
+
(a: Cond, b: Placeholder): (b: any[]) => any;
|
|
186
328
|
(a: Cond): (b: any[]) => any;
|
|
187
329
|
(a: Cond, b: any[]): any;
|
|
188
330
|
};
|
|
189
331
|
export declare const findIndex: {
|
|
190
|
-
(a:
|
|
191
|
-
(a: Cond, b:
|
|
332
|
+
(a: Placeholder, b: any[]): (a: Cond) => number;
|
|
333
|
+
(a: Cond, b: Placeholder): (b: any[]) => number;
|
|
192
334
|
(a: Cond): (b: any[]) => number;
|
|
193
335
|
(a: Cond, b: any[]): number;
|
|
194
336
|
};
|
|
195
337
|
export declare const indexOf: {
|
|
196
|
-
(a:
|
|
197
|
-
(a: any, b:
|
|
338
|
+
(a: Placeholder, b: any[]): (a: any) => number;
|
|
339
|
+
(a: any, b: Placeholder): (b: any[]) => number;
|
|
198
340
|
(a: any): (b: any[]) => number;
|
|
199
341
|
(a: any, b: any[]): number;
|
|
200
342
|
};
|
|
201
343
|
export declare const divide: {
|
|
202
|
-
(a:
|
|
203
|
-
(a: number, b:
|
|
344
|
+
(a: Placeholder, b: number): (a: number) => number;
|
|
345
|
+
(a: number, b: Placeholder): (b: number) => number;
|
|
204
346
|
(a: number): (b: number) => number;
|
|
205
347
|
(a: number, b: number): number;
|
|
206
348
|
};
|
|
@@ -225,8 +367,8 @@ export declare const toPairs: (o: AnyObject | any[]) => [
|
|
|
225
367
|
any
|
|
226
368
|
][];
|
|
227
369
|
export declare const test: {
|
|
228
|
-
(a:
|
|
229
|
-
(a: RegExp, b:
|
|
370
|
+
(a: Placeholder, b: string): (a: RegExp) => boolean;
|
|
371
|
+
(a: RegExp, b: Placeholder): (b: string) => boolean;
|
|
230
372
|
(a: RegExp): (b: string) => boolean;
|
|
231
373
|
(a: RegExp, b: string): boolean;
|
|
232
374
|
};
|
|
@@ -239,36 +381,36 @@ type T_tap = {
|
|
|
239
381
|
};
|
|
240
382
|
export declare const tap: T_tap;
|
|
241
383
|
export declare const append: {
|
|
242
|
-
(a:
|
|
243
|
-
(a: any, b:
|
|
384
|
+
(a: Placeholder, b: any[]): (a: any) => any[];
|
|
385
|
+
(a: any, b: Placeholder): (b: any[]) => any[];
|
|
244
386
|
(a: any): (b: any[]) => any[];
|
|
245
387
|
(a: any, b: any[]): any[];
|
|
246
388
|
};
|
|
247
389
|
export declare const prepend: {
|
|
248
|
-
(a:
|
|
249
|
-
(a: any, b:
|
|
390
|
+
(a: Placeholder, b: any[]): (a: any) => any[];
|
|
391
|
+
(a: any, b: Placeholder): (b: any[]) => any[];
|
|
250
392
|
(a: any): (b: any[]) => any[];
|
|
251
393
|
(a: any, b: any[]): any[];
|
|
252
394
|
};
|
|
253
395
|
export declare const flat: (xs: any[]) => any[];
|
|
254
396
|
export declare const flatShallow: (xs: any[]) => any[];
|
|
255
397
|
export declare const flatTo: {
|
|
256
|
-
(a:
|
|
257
|
-
(a: number, b:
|
|
398
|
+
(a: Placeholder, b: any[]): (a: number) => any[];
|
|
399
|
+
(a: number, b: Placeholder): (b: any[]) => any[];
|
|
258
400
|
(a: number): (b: any[]) => any[];
|
|
259
401
|
(a: number, b: any[]): any[];
|
|
260
402
|
};
|
|
261
403
|
export declare const split: {
|
|
262
|
-
(a:
|
|
263
|
-
(a: string | RegExp, b:
|
|
404
|
+
(a: Placeholder, b: string): (a: string | RegExp) => string[];
|
|
405
|
+
(a: string | RegExp, b: Placeholder): (b: string) => string[];
|
|
264
406
|
(a: string | RegExp): (b: string) => string[];
|
|
265
407
|
(a: string | RegExp, b: string): string[];
|
|
266
408
|
};
|
|
267
409
|
export declare const T: (...args: any[]) => true;
|
|
268
410
|
export declare const F: (...args: any[]) => false;
|
|
269
411
|
export declare const callWith: {
|
|
270
|
-
(a:
|
|
271
|
-
(a: any[], b:
|
|
412
|
+
(a: Placeholder, b: AnyFunc): (a: any[]) => any;
|
|
413
|
+
(a: any[], b: Placeholder): (b: AnyFunc) => any;
|
|
272
414
|
(a: any[]): (b: AnyFunc) => any;
|
|
273
415
|
(a: any[], b: AnyFunc): any;
|
|
274
416
|
};
|
|
@@ -284,35 +426,35 @@ type T_complement<F extends AnyFunc> = {
|
|
|
284
426
|
export declare const complement: <F extends AnyFunc>(fn: F) => T_complement<F>;
|
|
285
427
|
export declare const sizeof: (s: any[] | string | AnyObject) => number;
|
|
286
428
|
export declare const range: {
|
|
287
|
-
(a:
|
|
288
|
-
(a: number, b:
|
|
429
|
+
(a: Placeholder, b: number): (a: number) => any[];
|
|
430
|
+
(a: number, b: Placeholder): (b: number) => any[];
|
|
289
431
|
(a: number): (b: number) => any[];
|
|
290
432
|
(a: number, b: number): any[];
|
|
291
433
|
};
|
|
292
434
|
/** @param cond (x, y): bool @param xs any[] @returns xs without duplicates, using cond as a comparator. */
|
|
293
435
|
export declare const uniqWith: {
|
|
294
|
-
(a:
|
|
295
|
-
(a: (x: any, y: any) => boolean, b:
|
|
296
|
-
(a: (x: any, y: any) => boolean): (b: any[]) =>
|
|
297
|
-
(a: (x: any, y: any) => boolean, b: any[]):
|
|
436
|
+
(a: Placeholder, b: any[]): (a: (x: any, y: any) => boolean) => unknown;
|
|
437
|
+
(a: (x: any, y: any) => boolean, b: Placeholder): (b: any[]) => unknown;
|
|
438
|
+
(a: (x: any, y: any) => boolean): (b: any[]) => unknown;
|
|
439
|
+
(a: (x: any, y: any) => boolean, b: any[]): unknown;
|
|
298
440
|
};
|
|
299
441
|
/** @param xs any[] @returns xs without duplicates. */
|
|
300
|
-
export declare const uniq: (b: any[]) =>
|
|
442
|
+
export declare const uniq: (b: any[]) => unknown;
|
|
301
443
|
export declare const intersection: {
|
|
302
|
-
(a:
|
|
303
|
-
(a: any[], b:
|
|
444
|
+
(a: Placeholder, b: any[]): (a: any[]) => any[];
|
|
445
|
+
(a: any[], b: Placeholder): (b: any[]) => any[];
|
|
304
446
|
(a: any[]): (b: any[]) => any[];
|
|
305
447
|
(a: any[], b: any[]): any[];
|
|
306
448
|
};
|
|
307
449
|
export declare const diff: {
|
|
308
|
-
(a:
|
|
309
|
-
(a: any[], b:
|
|
450
|
+
(a: Placeholder, b: any[]): (a: any[]) => any[];
|
|
451
|
+
(a: any[], b: Placeholder): (b: any[]) => any[];
|
|
310
452
|
(a: any[]): (b: any[]) => any[];
|
|
311
453
|
(a: any[], b: any[]): any[];
|
|
312
454
|
};
|
|
313
455
|
export declare const genBy: {
|
|
314
|
-
(a:
|
|
315
|
-
(a: (i: number) => any, b:
|
|
456
|
+
(a: Placeholder, b: number): (a: (i: number) => any) => any[];
|
|
457
|
+
(a: (i: number) => any, b: Placeholder): (b: number) => any[];
|
|
316
458
|
(a: (i: number) => any): (b: number) => any[];
|
|
317
459
|
(a: (i: number) => any, b: number): any[];
|
|
318
460
|
};
|
|
@@ -323,14 +465,14 @@ export declare const explore: (caption: string, level?: string) => {
|
|
|
323
465
|
(): undefined;
|
|
324
466
|
};
|
|
325
467
|
export declare const cond: {
|
|
326
|
-
(a:
|
|
468
|
+
(a: Placeholder, b: any): (a: [
|
|
327
469
|
Cond,
|
|
328
470
|
Function
|
|
329
471
|
][]) => any;
|
|
330
472
|
(a: [
|
|
331
473
|
Cond,
|
|
332
474
|
Function
|
|
333
|
-
][], b:
|
|
475
|
+
][], b: Placeholder): (b: any) => any;
|
|
334
476
|
(a: [
|
|
335
477
|
Cond,
|
|
336
478
|
Function
|
|
@@ -345,61 +487,61 @@ export declare const cond: {
|
|
|
345
487
|
* @param value any
|
|
346
488
|
* @param object AnyObject
|
|
347
489
|
*/
|
|
348
|
-
export declare const assoc:
|
|
349
|
-
export declare const assocPath:
|
|
490
|
+
export declare const assoc: Curried3<any, any, any, unknown>;
|
|
491
|
+
export declare const assocPath: Curried3<any, any, any, unknown>;
|
|
350
492
|
export declare const all: {
|
|
351
|
-
(a:
|
|
352
|
-
(a: Cond, b:
|
|
493
|
+
(a: Placeholder, b: any[]): (a: Cond) => boolean;
|
|
494
|
+
(a: Cond, b: Placeholder): (b: any[]) => boolean;
|
|
353
495
|
(a: Cond): (b: any[]) => boolean;
|
|
354
496
|
(a: Cond, b: any[]): boolean;
|
|
355
497
|
};
|
|
356
498
|
export declare const any: {
|
|
357
|
-
(a:
|
|
358
|
-
(a: Cond, b:
|
|
499
|
+
(a: Placeholder, b: any[]): (a: Cond) => boolean;
|
|
500
|
+
(a: Cond, b: Placeholder): (b: any[]) => boolean;
|
|
359
501
|
(a: Cond): (b: any[]) => boolean;
|
|
360
502
|
(a: Cond, b: any[]): boolean;
|
|
361
503
|
};
|
|
362
504
|
export declare const allPass: {
|
|
363
|
-
(a:
|
|
364
|
-
(a: Cond[], b:
|
|
505
|
+
(a: Placeholder, b: any): (a: Cond[]) => boolean;
|
|
506
|
+
(a: Cond[], b: Placeholder): (b: any) => boolean;
|
|
365
507
|
(a: Cond[]): (b: any) => boolean;
|
|
366
508
|
(a: Cond[], b: any): boolean;
|
|
367
509
|
};
|
|
368
510
|
export declare const anyPass: {
|
|
369
|
-
(a:
|
|
370
|
-
(a: Cond[], b:
|
|
511
|
+
(a: Placeholder, b: any): (a: Cond[]) => boolean;
|
|
512
|
+
(a: Cond[], b: Placeholder): (b: any) => boolean;
|
|
371
513
|
(a: Cond[]): (b: any) => boolean;
|
|
372
514
|
(a: Cond[], b: any): boolean;
|
|
373
515
|
};
|
|
374
516
|
/** @param start string | any[] @param s string | any[] @description detects if `s` starts with `start` */
|
|
375
517
|
export declare const startsWith: {
|
|
376
|
-
(a:
|
|
377
|
-
(a: string | any[], b:
|
|
518
|
+
(a: Placeholder, b: string | any[]): (a: string | any[]) => boolean;
|
|
519
|
+
(a: string | any[], b: Placeholder): (b: string | any[]) => boolean;
|
|
378
520
|
(a: string | any[]): (b: string | any[]) => boolean;
|
|
379
521
|
(a: string | any[], b: string | any[]): boolean;
|
|
380
522
|
};
|
|
381
523
|
/** @param start string | any[] @param s string | any[] @description detects if `s` starts with `start` */
|
|
382
524
|
export declare const startsWithShallow: {
|
|
383
|
-
(a:
|
|
384
|
-
(a: string | any[], b:
|
|
525
|
+
(a: Placeholder, b: string | any[]): (a: string | any[]) => boolean;
|
|
526
|
+
(a: string | any[], b: Placeholder): (b: string | any[]) => boolean;
|
|
385
527
|
(a: string | any[]): (b: string | any[]) => boolean;
|
|
386
528
|
(a: string | any[], b: string | any[]): boolean;
|
|
387
529
|
};
|
|
388
530
|
/** @param key string @param o AnyObject @returns o[key] */
|
|
389
531
|
export declare const prop: {
|
|
390
|
-
(a:
|
|
391
|
-
(a: string, b:
|
|
532
|
+
(a: Placeholder, b: AnyObject): (a: string) => any;
|
|
533
|
+
(a: string, b: Placeholder): (b: AnyObject) => any;
|
|
392
534
|
(a: string): (b: AnyObject) => any;
|
|
393
535
|
(a: string, b: AnyObject): any;
|
|
394
536
|
};
|
|
395
537
|
/** @param key string @param value any @param o AnyObject @returns boolean o[key] equals value */
|
|
396
|
-
export declare const propEq:
|
|
538
|
+
export declare const propEq: Curried3<any, any, any, unknown>;
|
|
397
539
|
/** @param key string @param o1 AnyObject @param o2 AnyObject @returns o₁[key] equals o₂[key] */
|
|
398
|
-
export declare const propsEq:
|
|
399
|
-
export declare const pathOr: (
|
|
400
|
-
export declare const path: any
|
|
401
|
-
export declare const pathEq:
|
|
402
|
-
export declare const pathsEq:
|
|
540
|
+
export declare const propsEq: Curried3<any, any, any, unknown>;
|
|
541
|
+
export declare const pathOr: Curried3<any, (string | number)[], AnyObject, any>;
|
|
542
|
+
export declare const path: Curried2<(string | number)[], AnyObject, any>;
|
|
543
|
+
export declare const pathEq: Curried3<any, any, any, unknown>;
|
|
544
|
+
export declare const pathsEq: Curried3<any, any, any, unknown>;
|
|
403
545
|
export declare const pathExists: Composed<any[], any>;
|
|
404
546
|
export declare const clone: <T extends any>(s: T, shallow?: boolean) => T;
|
|
405
547
|
export declare const cloneShallow: (s: any) => any;
|
|
@@ -410,22 +552,22 @@ export declare const freezeShallow: <T extends AnyObject>(o: T) => Readonly<T>;
|
|
|
410
552
|
* @param accum T1
|
|
411
553
|
* @param array T2[]
|
|
412
554
|
*/
|
|
413
|
-
export declare const reduce:
|
|
555
|
+
export declare const reduce: Curried3<any, any, any, unknown>;
|
|
414
556
|
export declare const pick: {
|
|
415
|
-
(a:
|
|
416
|
-
(a: string[], b:
|
|
557
|
+
(a: Placeholder, b: AnyObject): (a: string[]) => {};
|
|
558
|
+
(a: string[], b: Placeholder): (b: AnyObject) => {};
|
|
417
559
|
(a: string[]): (b: AnyObject) => {};
|
|
418
560
|
(a: string[], b: AnyObject): {};
|
|
419
561
|
};
|
|
420
562
|
export declare const pickBy: {
|
|
421
|
-
(a:
|
|
422
|
-
(a: Cond, b:
|
|
563
|
+
(a: Placeholder, b: AnyObject): (a: Cond) => any;
|
|
564
|
+
(a: Cond, b: Placeholder): (b: AnyObject) => any;
|
|
423
565
|
(a: Cond): (b: AnyObject) => any;
|
|
424
566
|
(a: Cond, b: AnyObject): any;
|
|
425
567
|
};
|
|
426
568
|
export declare const omit: {
|
|
427
|
-
(a:
|
|
428
|
-
(a: string[], b:
|
|
569
|
+
(a: Placeholder, b: AnyObject): (a: string[]) => any;
|
|
570
|
+
(a: string[], b: Placeholder): (b: AnyObject) => any;
|
|
429
571
|
(a: string[]): (b: AnyObject) => any;
|
|
430
572
|
(a: string[], b: AnyObject): any;
|
|
431
573
|
};
|
|
@@ -436,30 +578,30 @@ export declare const fromPairs: (pairs: [
|
|
|
436
578
|
[k: string]: any;
|
|
437
579
|
};
|
|
438
580
|
export declare const concat: {
|
|
439
|
-
(a:
|
|
440
|
-
(a: string | any[], b:
|
|
581
|
+
(a: Placeholder, b: string | any[]): (a: string | any[]) => string | any[];
|
|
582
|
+
(a: string | any[], b: Placeholder): (b: string | any[]) => string | any[];
|
|
441
583
|
(a: string | any[]): (b: string | any[]) => string | any[];
|
|
442
584
|
(a: string | any[], b: string | any[]): string | any[];
|
|
443
585
|
};
|
|
444
586
|
export declare const map: {
|
|
445
|
-
(a:
|
|
446
|
-
(a: (s: any, i?: number, list?: any[]) => any, b:
|
|
587
|
+
(a: Placeholder, b: any[]): (a: (s: any, i?: number, list?: any[]) => any) => any[];
|
|
588
|
+
(a: (s: any, i?: number, list?: any[]) => any, b: Placeholder): (b: any[]) => any[];
|
|
447
589
|
(a: (s: any, i?: number, list?: any[]) => any): (b: any[]) => any[];
|
|
448
590
|
(a: (s: any, i?: number, list?: any[]) => any, b: any[]): any[];
|
|
449
591
|
};
|
|
450
592
|
export declare const mapObj: {
|
|
451
|
-
(a:
|
|
452
|
-
(a: (s: any, i?: string, list?: any[]) => any, b:
|
|
593
|
+
(a: Placeholder, b: AnyObject): (a: (s: any, i?: string, list?: any[]) => any) => AnyObject;
|
|
594
|
+
(a: (s: any, i?: string, list?: any[]) => any, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
453
595
|
(a: (s: any, i?: string, list?: any[]) => any): (b: AnyObject) => AnyObject;
|
|
454
596
|
(a: (s: any, i?: string, list?: any[]) => any, b: AnyObject): AnyObject;
|
|
455
597
|
};
|
|
456
598
|
export declare const join: {
|
|
457
|
-
(a:
|
|
599
|
+
(a: Placeholder, b: ArrayLike<any> & {
|
|
458
600
|
join: AnyFunc<string, [
|
|
459
601
|
delim: string
|
|
460
602
|
]>;
|
|
461
603
|
}): (a: string) => string;
|
|
462
|
-
(a: string, b:
|
|
604
|
+
(a: string, b: Placeholder): (b: ArrayLike<any> & {
|
|
463
605
|
join: AnyFunc<string, [
|
|
464
606
|
delim: string
|
|
465
607
|
]>;
|
|
@@ -476,18 +618,18 @@ export declare const join: {
|
|
|
476
618
|
}): string;
|
|
477
619
|
};
|
|
478
620
|
export declare const forEach: {
|
|
479
|
-
(a:
|
|
480
|
-
(a: (s: unknown, i: number, arr: unknown[]) => any, b:
|
|
621
|
+
(a: Placeholder, b: any[]): (a: (s: unknown, i: number, arr: unknown[]) => any) => void;
|
|
622
|
+
(a: (s: unknown, i: number, arr: unknown[]) => any, b: Placeholder): (b: any[]) => void;
|
|
481
623
|
(a: (s: unknown, i: number, arr: unknown[]) => any): (b: any[]) => void;
|
|
482
624
|
(a: (s: unknown, i: number, arr: unknown[]) => any, b: any[]): void;
|
|
483
625
|
};
|
|
484
|
-
export declare const both:
|
|
626
|
+
export declare const both: Curried3<any, any, any, unknown>;
|
|
485
627
|
export declare const isEmpty: (s: any) => boolean | null;
|
|
486
628
|
export declare const empty: (s: any) => {} | undefined;
|
|
487
|
-
export declare const replace:
|
|
629
|
+
export declare const replace: Curried3<any, any, any, unknown>;
|
|
488
630
|
export declare const filter: {
|
|
489
|
-
(a:
|
|
490
|
-
(a: (v: any, k: string | number) => boolean, b:
|
|
631
|
+
(a: Placeholder, b: any[] | AnyObject): (a: (v: any, k: string | number) => boolean) => any;
|
|
632
|
+
(a: (v: any, k: string | number) => boolean, b: Placeholder): (b: any[] | AnyObject) => any;
|
|
491
633
|
(a: (v: any, k: string | number) => boolean): (b: any[] | AnyObject) => any;
|
|
492
634
|
(a: (v: any, k: string | number) => boolean, b: any[] | AnyObject): any;
|
|
493
635
|
};
|
|
@@ -496,45 +638,45 @@ export declare const filter: {
|
|
|
496
638
|
* @param {(...args: Args) any} fn to be cached.
|
|
497
639
|
*/
|
|
498
640
|
export declare const memoize: {
|
|
499
|
-
(a:
|
|
500
|
-
(a: (...args: any[]) => string, b:
|
|
641
|
+
(a: Placeholder, b: AnyFunc<any, any[]>): (a: (...args: any[]) => string) => (...args: any[]) => ReturnType<AnyFunc<any, any[]>>;
|
|
642
|
+
(a: (...args: any[]) => string, b: Placeholder): (b: AnyFunc<any, any[]>) => (...args: any[]) => ReturnType<AnyFunc<any, any[]>>;
|
|
501
643
|
(a: (...args: any[]) => string): (b: AnyFunc<any, any[]>) => (...args: any[]) => ReturnType<AnyFunc<any, any[]>>;
|
|
502
644
|
(a: (...args: any[]) => string, b: AnyFunc<any, any[]>): (...args: any[]) => ReturnType<AnyFunc<any, any[]>>;
|
|
503
645
|
};
|
|
504
646
|
export declare const mergeShallow: {
|
|
505
|
-
(a:
|
|
506
|
-
(a: AnyObject, b:
|
|
647
|
+
(a: Placeholder, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
648
|
+
(a: AnyObject, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
507
649
|
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
508
650
|
(a: AnyObject, b: AnyObject): AnyObject;
|
|
509
651
|
};
|
|
510
652
|
export declare const mergeDeep: {
|
|
511
|
-
(a:
|
|
512
|
-
(a: AnyObject, b:
|
|
653
|
+
(a: Placeholder, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
654
|
+
(a: AnyObject, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
513
655
|
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
514
656
|
(a: AnyObject, b: AnyObject): AnyObject;
|
|
515
657
|
};
|
|
516
658
|
export declare const mergeDeepX: {
|
|
517
|
-
(a:
|
|
518
|
-
(a: AnyObject, b:
|
|
659
|
+
(a: Placeholder, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
660
|
+
(a: AnyObject, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
519
661
|
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
520
662
|
(a: AnyObject, b: AnyObject): AnyObject;
|
|
521
663
|
};
|
|
522
664
|
export declare const mergeDeepAdd: {
|
|
523
|
-
(a:
|
|
524
|
-
(a: AnyObject, b:
|
|
665
|
+
(a: Placeholder, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
666
|
+
(a: AnyObject, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
525
667
|
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
526
668
|
(a: AnyObject, b: AnyObject): AnyObject;
|
|
527
669
|
};
|
|
528
670
|
/** @param prop string @param pipe(data[prop]) @param data any @returns data with prop over pipe. */
|
|
529
|
-
export declare const overProp:
|
|
671
|
+
export declare const overProp: Curried3<any, any, any, unknown>;
|
|
530
672
|
/** mapKeys({ a: 'b' }, { a: 44 }) -> { b: 44 } */
|
|
531
673
|
export declare const mapKeys: {
|
|
532
|
-
(a:
|
|
674
|
+
(a: Placeholder, b: AnyObject): (a: {
|
|
533
675
|
[oldKey: string]: string | AnyFunc;
|
|
534
676
|
}) => AnyObject;
|
|
535
677
|
(a: {
|
|
536
678
|
[oldKey: string]: string | AnyFunc;
|
|
537
|
-
}, b:
|
|
679
|
+
}, b: Placeholder): (b: AnyObject) => AnyObject;
|
|
538
680
|
(a: {
|
|
539
681
|
[oldKey: string]: string | AnyFunc;
|
|
540
682
|
}): (b: AnyObject) => AnyObject;
|
|
@@ -543,16 +685,16 @@ export declare const mapKeys: {
|
|
|
543
685
|
}, b: AnyObject): AnyObject;
|
|
544
686
|
};
|
|
545
687
|
export declare const zip: {
|
|
546
|
-
(a:
|
|
547
|
-
(a: unknown[], b:
|
|
688
|
+
(a: Placeholder, b: unknown[]): (a: unknown[]) => any[];
|
|
689
|
+
(a: unknown[], b: Placeholder): (b: unknown[]) => any[];
|
|
548
690
|
(a: unknown[]): (b: unknown[]) => any[];
|
|
549
691
|
(a: unknown[], b: unknown[]): any[];
|
|
550
692
|
};
|
|
551
693
|
export declare const zipObj: {
|
|
552
|
-
(a:
|
|
553
|
-
(a: unknown[], b:
|
|
554
|
-
(a: unknown[]): (b: unknown[]) =>
|
|
555
|
-
(a: unknown[], b: unknown[]):
|
|
694
|
+
(a: Placeholder, b: unknown[]): (a: unknown[]) => unknown;
|
|
695
|
+
(a: unknown[], b: Placeholder): (b: unknown[]) => unknown;
|
|
696
|
+
(a: unknown[]): (b: unknown[]) => unknown;
|
|
697
|
+
(a: unknown[], b: unknown[]): unknown;
|
|
556
698
|
};
|
|
557
699
|
/** zips through a pipe. Types T1, T2, T3.
|
|
558
700
|
* @returns T3[]
|
|
@@ -560,128 +702,29 @@ export declare const zipObj: {
|
|
|
560
702
|
* @param a T1[]
|
|
561
703
|
* @param b T2[]
|
|
562
704
|
*/
|
|
563
|
-
export declare const zipWith:
|
|
705
|
+
export declare const zipWith: Curried3<any, any, any, unknown>;
|
|
564
706
|
export declare const mirror: <T extends unknown>(s: T) => T;
|
|
565
707
|
export declare const reflect: <T extends unknown>(s: T) => T;
|
|
566
708
|
export declare const echo: <T extends unknown>(s: T) => T;
|
|
567
709
|
export declare const notf: <F extends AnyFunc>(fn: F) => T_complement<F>;
|
|
568
710
|
export declare const push: {
|
|
569
|
-
(a:
|
|
570
|
-
(a: any, b:
|
|
711
|
+
(a: Placeholder, b: any[]): (a: any) => any[];
|
|
712
|
+
(a: any, b: Placeholder): (b: any[]) => any[];
|
|
571
713
|
(a: any): (b: any[]) => any[];
|
|
572
714
|
(a: any, b: any[]): any[];
|
|
573
715
|
};
|
|
574
716
|
export declare const some: {
|
|
575
|
-
(a:
|
|
576
|
-
(a: Cond, b:
|
|
717
|
+
(a: Placeholder, b: any[]): (a: Cond) => boolean;
|
|
718
|
+
(a: Cond, b: Placeholder): (b: any[]) => boolean;
|
|
577
719
|
(a: Cond): (b: any[]) => boolean;
|
|
578
720
|
(a: Cond, b: any[]): boolean;
|
|
579
721
|
};
|
|
580
722
|
export declare const weakEq: {
|
|
581
|
-
(a:
|
|
582
|
-
(a: any, b:
|
|
723
|
+
(a: Placeholder, b: any): (a: any) => boolean;
|
|
724
|
+
(a: any, b: Placeholder): (b: any) => boolean;
|
|
583
725
|
(a: any): (b: any) => boolean;
|
|
584
726
|
(a: any, b: any): boolean;
|
|
585
727
|
};
|
|
586
|
-
export declare const qappend: {
|
|
587
|
-
(a: symbol, b: any[]): (a: any) => any[];
|
|
588
|
-
(a: any, b: symbol): (b: any[]) => any[];
|
|
589
|
-
(a: any): (b: any[]) => any[];
|
|
590
|
-
(a: any, b: any[]): any[];
|
|
591
|
-
};
|
|
592
|
-
export declare const qassoc: (...args: AnyArgs) => any;
|
|
593
|
-
export declare const qreduce: (...args: AnyArgs) => any;
|
|
594
|
-
export declare const qmergeDeep: {
|
|
595
|
-
(a: symbol, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
596
|
-
(a: AnyObject, b: symbol): (b: AnyObject) => AnyObject;
|
|
597
|
-
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
598
|
-
(a: AnyObject, b: AnyObject): AnyObject;
|
|
599
|
-
};
|
|
600
|
-
export declare const qmergeDeepX: {
|
|
601
|
-
(a: symbol, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
602
|
-
(a: AnyObject, b: symbol): (b: AnyObject) => AnyObject;
|
|
603
|
-
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
604
|
-
(a: AnyObject, b: AnyObject): AnyObject;
|
|
605
|
-
};
|
|
606
|
-
export declare const qmergeDeepAdd: {
|
|
607
|
-
(a: symbol, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
608
|
-
(a: AnyObject, b: symbol): (b: AnyObject) => AnyObject;
|
|
609
|
-
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
610
|
-
(a: AnyObject, b: AnyObject): AnyObject;
|
|
611
|
-
};
|
|
612
|
-
/** @param o1 <- o2 */
|
|
613
|
-
export declare const qmergeShallow: {
|
|
614
|
-
(a: symbol, b: AnyObject): (a: AnyObject) => AnyObject;
|
|
615
|
-
(a: AnyObject, b: symbol): (b: AnyObject) => AnyObject;
|
|
616
|
-
(a: AnyObject): (b: AnyObject) => AnyObject;
|
|
617
|
-
(a: AnyObject, b: AnyObject): AnyObject;
|
|
618
|
-
};
|
|
619
|
-
/** qmapKeys({ a: 'b' }, { a: 44 }) -> { b: 44 } */
|
|
620
|
-
export declare const qmapKeys: {
|
|
621
|
-
(a: symbol, b: AnyObject): (a: {
|
|
622
|
-
[oldKey: string]: string | AnyFunc;
|
|
623
|
-
}) => AnyObject;
|
|
624
|
-
(a: {
|
|
625
|
-
[oldKey: string]: string | AnyFunc;
|
|
626
|
-
}, b: symbol): (b: AnyObject) => AnyObject;
|
|
627
|
-
(a: {
|
|
628
|
-
[oldKey: string]: string | AnyFunc;
|
|
629
|
-
}): (b: AnyObject) => AnyObject;
|
|
630
|
-
(a: {
|
|
631
|
-
[oldKey: string]: string | AnyFunc;
|
|
632
|
-
}, b: AnyObject): AnyObject;
|
|
633
|
-
};
|
|
634
|
-
export declare const qmap: {
|
|
635
|
-
(a: symbol, b: any[]): (a: (s: any, i?: number, list?: any[]) => any) => any[];
|
|
636
|
-
(a: (s: any, i?: number, list?: any[]) => any, b: symbol): (b: any[]) => any[];
|
|
637
|
-
(a: (s: any, i?: number, list?: any[]) => any): (b: any[]) => any[];
|
|
638
|
-
(a: (s: any, i?: number, list?: any[]) => any, b: any[]): any[];
|
|
639
|
-
};
|
|
640
|
-
export declare const qmapObj: {
|
|
641
|
-
(a: symbol, b: AnyObject): (a: (s: any, k?: string, o?: AnyObject) => any) => AnyObject;
|
|
642
|
-
(a: (s: any, k?: string, o?: AnyObject) => any, b: symbol): (b: AnyObject) => AnyObject;
|
|
643
|
-
(a: (s: any, k?: string, o?: AnyObject) => any): (b: AnyObject) => AnyObject;
|
|
644
|
-
(a: (s: any, k?: string, o?: AnyObject) => any, b: AnyObject): AnyObject;
|
|
645
|
-
};
|
|
646
|
-
export declare const qfilter: {
|
|
647
|
-
(a: symbol, b: any[] | AnyObject): (a: (v: any, k: string | number) => boolean) => any[] | AnyObject;
|
|
648
|
-
(a: (v: any, k: string | number) => boolean, b: symbol): (b: any[] | AnyObject) => any[] | AnyObject;
|
|
649
|
-
(a: (v: any, k: string | number) => boolean): (b: any[] | AnyObject) => any[] | AnyObject;
|
|
650
|
-
(a: (v: any, k: string | number) => boolean, b: any[] | AnyObject): any[] | AnyObject;
|
|
651
|
-
};
|
|
652
|
-
export declare const qempty: <T extends AnyObject | any[]>(o: T) => T extends any[] ? [
|
|
653
|
-
] : {};
|
|
654
|
-
export declare const qfreeze: <T extends AnyObject>(o: T) => Readonly<T>;
|
|
655
|
-
export declare const qfreezeShallow: <T extends AnyObject>(o: T) => Readonly<T>;
|
|
656
|
-
export declare const qprepend: {
|
|
657
|
-
(a: symbol, b: any[]): (a: any) => number;
|
|
658
|
-
(a: any, b: symbol): (b: any[]) => number;
|
|
659
|
-
(a: any): (b: any[]) => number;
|
|
660
|
-
(a: any, b: any[]): number;
|
|
661
|
-
};
|
|
662
|
-
export declare const qsort: {
|
|
663
|
-
(a: symbol, b: any[]): (a: (a: any, b: any) => number) => any[];
|
|
664
|
-
(a: (a: any, b: any) => number, b: symbol): (b: any[]) => any[];
|
|
665
|
-
(a: (a: any, b: any) => number): (b: any[]) => any[];
|
|
666
|
-
(a: (a: any, b: any) => number, b: any[]): any[];
|
|
667
|
-
};
|
|
668
|
-
export declare const qassocPath: (...args: AnyArgs) => any;
|
|
669
|
-
export declare const qreverse: (arr: any[]) => any[];
|
|
670
|
-
export declare const qomit: {
|
|
671
|
-
(a: symbol, b: AnyObject): (a: string[]) => any[] | AnyObject;
|
|
672
|
-
(a: string[], b: symbol): (b: AnyObject) => any[] | AnyObject;
|
|
673
|
-
(a: string[]): (b: AnyObject) => any[] | AnyObject;
|
|
674
|
-
(a: string[], b: AnyObject): any[] | AnyObject;
|
|
675
|
-
};
|
|
676
|
-
/** @param prop string @param pipe (data[prop]): prop_value @param data any
|
|
677
|
-
* @returns data with prop over pipe. */
|
|
678
|
-
export declare const qoverProp: (...args: AnyArgs) => any;
|
|
679
|
-
export declare const qpush: {
|
|
680
|
-
(a: symbol, b: any[]): (a: any) => any[];
|
|
681
|
-
(a: any, b: symbol): (b: any[]) => any[];
|
|
682
|
-
(a: any): (b: any[]) => any[];
|
|
683
|
-
(a: any, b: any[]): any[];
|
|
684
|
-
};
|
|
685
728
|
type StrTmpl = ((data: AnyObject) => string);
|
|
686
729
|
/** Supports ecrans: '\\{"json": {yes} \\}'
|
|
687
730
|
@returns getTmpl('one{meme}two')({meme: 42}) -> one42two */
|
|
@@ -689,35 +732,7 @@ export declare const getTmpl: (tmpl: string) => StrTmpl;
|
|
|
689
732
|
export declare const debounce: <T extends AnyFunc>(time: number, fn: T) => (...args: Parameters<T>) => Promise<ReturnType<T>>;
|
|
690
733
|
export declare const throttle: <T extends AnyFunc>(time: number, fn: T) => (...args: Parameters<T>) => any;
|
|
691
734
|
export declare const wait: (time: number) => Promise<unknown>;
|
|
692
|
-
|
|
693
|
-
export declare const forEachSerial: {
|
|
694
|
-
(a: symbol, b: any[]): (a: AnyFunc) => Promise<void>;
|
|
695
|
-
(a: AnyFunc, b: symbol): (b: any[]) => Promise<void>;
|
|
696
|
-
(a: AnyFunc): (b: any[]) => Promise<void>;
|
|
697
|
-
(a: AnyFunc, b: any[]): Promise<void>;
|
|
698
|
-
};
|
|
699
|
-
/** Promise.all wrapper for functional pipelining. */
|
|
700
|
-
export declare const waitAll: <T>(promises: Promise<T>[]) => Promise<Awaited<T>[]>;
|
|
701
|
-
/** Waits for a Promise that been generated by the first arg, then returns an untoched value. Types T.
|
|
702
|
-
* @param {AnyFunc<Promise>} fn - function to wait.
|
|
703
|
-
* @param {T} s - any value to tap and return back
|
|
704
|
-
* @returns {T}
|
|
705
|
-
*/
|
|
706
|
-
export declare const waitTap: {
|
|
707
|
-
(a: symbol, b: any): (a: AnyFunc<Promise<any>>) => Promise<any>;
|
|
708
|
-
(a: AnyFunc<Promise<any>>, b: symbol): (b: any) => Promise<any>;
|
|
709
|
-
(a: AnyFunc<Promise<any>>): (b: any) => Promise<any>;
|
|
710
|
-
(a: AnyFunc<Promise<any>>, b: any): Promise<any>;
|
|
711
|
-
};
|
|
712
|
-
/** Waits for all promises mapped by the fn. */
|
|
713
|
-
export declare const forEachAsync: {
|
|
714
|
-
(a: symbol, b: any[]): (a: (item: any) => Promise<any>) => Promise<any[]>;
|
|
715
|
-
(a: (item: any) => Promise<any>, b: symbol): (b: any[]) => Promise<any[]>;
|
|
716
|
-
(a: (item: any) => Promise<any>): (b: any[]) => Promise<any[]>;
|
|
717
|
-
(a: (item: any) => Promise<any>, b: any[]): Promise<any[]>;
|
|
718
|
-
};
|
|
719
|
-
/** The same as compose, but waits for promises in chains and returns a Promise. */
|
|
720
|
-
export declare const composeAsync: <TIn extends any[] = any[], TOut = any>(...fns: AnyFunc[]) => Composed<TIn, Promise<TOut>>;
|
|
735
|
+
export declare const uncurry: <Args extends any[] = any[], ReturnT = any>(fn: Curried<Args>) => AnyFunc;
|
|
721
736
|
|
|
722
737
|
export {
|
|
723
738
|
length$1 as length,
|
package/dist/bundle.mjs
CHANGED
|
@@ -47,12 +47,8 @@ const endlessph = (fn) => {
|
|
|
47
47
|
const zero = 0;
|
|
48
48
|
function curry2(fn) {
|
|
49
49
|
function curried2(a, ...args) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (aln && withPlaceholder1)
|
|
53
|
-
throw new Error('Senseless placeholder usage.');
|
|
54
|
-
return aln
|
|
55
|
-
? withPlaceholder1
|
|
50
|
+
return args.length > zero
|
|
51
|
+
? a === __
|
|
56
52
|
? endlessph((a) => fn(a, args[zero]))
|
|
57
53
|
: fn(a, args[zero])
|
|
58
54
|
: (b) => fn(a, b);
|
package/package.json
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"prod": "npm run gentypes && npm run prod:es && npm run prod:cjs",
|
|
42
42
|
"all": "npm run dev && npm run prod"
|
|
43
43
|
},
|
|
44
|
-
"version": "1.6.
|
|
44
|
+
"version": "1.6.21",
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@rollup/plugin-commonjs": "^29.0.0",
|
|
47
47
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
package/src/curry.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { AnyArgs } from "./internal_types"
|
|
2
2
|
import { AnyFunc } from "./types"
|
|
3
3
|
|
|
4
|
-
type Placeholder = symbol
|
|
4
|
+
export type Placeholder = symbol
|
|
5
5
|
export const __: Placeholder = Symbol('Placeholder')
|
|
6
|
-
const {assign, defineProperty} = Object
|
|
7
6
|
|
|
8
7
|
const countArgs = (s: AnyArgs) => {
|
|
9
8
|
let i = 0
|
|
@@ -61,33 +60,15 @@ const endlessph = <Func extends AnyFunc>(fn: Func) => {
|
|
|
61
60
|
return _endlessph
|
|
62
61
|
}
|
|
63
62
|
|
|
64
|
-
type Curried2<p0, p1, ReturnT> = {
|
|
63
|
+
export type Curried2<p0, p1, ReturnT> = {
|
|
65
64
|
(a: Placeholder, b: p1): (a: p0) => ReturnT
|
|
66
65
|
(a: p0, b: Placeholder): (b: p1) => ReturnT
|
|
67
66
|
(a: p0): (b: p1) => ReturnT
|
|
68
67
|
(a: p0, b: p1): ReturnT
|
|
69
68
|
}
|
|
70
69
|
|
|
71
|
-
const curried2 =
|
|
72
|
-
<p0, p1, ReturnT>(fn: (a: p0, b: p1) => ReturnT) => {
|
|
73
|
-
|
|
74
|
-
const impl = (
|
|
75
|
-
a: p0 | Placeholder,
|
|
76
|
-
...args: [b?: p1]
|
|
77
|
-
): ReturnT | ((b: p1) => ReturnT) => {
|
|
78
|
-
if (args.length === 0) {
|
|
79
|
-
return (b: p1) => fn(a as p0, b)
|
|
80
|
-
}
|
|
81
|
-
const b = args[0]
|
|
82
|
-
return fn(a as p0, b as p1)
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return impl as Curried2<p0, p1, ReturnT>
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
70
|
type Func2 = (a: any, b: any) => any
|
|
90
|
-
const zero = 0
|
|
71
|
+
const zero = 0, one = 1
|
|
91
72
|
export function curry2<Func extends Func2>(fn: Func) {
|
|
92
73
|
type p0 = Parameters<Func>[0]
|
|
93
74
|
type p1 = Parameters<Func>[1]
|
|
@@ -97,12 +78,8 @@ export function curry2<Func extends Func2>(fn: Func) {
|
|
|
97
78
|
function curried2(a: p0 ): (b: p1) => ReturnT
|
|
98
79
|
function curried2(a: p0, b: p1): ReturnT
|
|
99
80
|
function curried2(a: p0 | Placeholder, ...args: [b?: p1]) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if(aln && withPlaceholder1)
|
|
103
|
-
throw new Error('Senseless placeholder usage.')
|
|
104
|
-
return aln
|
|
105
|
-
? withPlaceholder1
|
|
81
|
+
return args.length>zero
|
|
82
|
+
? a===__
|
|
106
83
|
? endlessph((a: p0) => fn(a, args[zero]) as ReturnType<Func>)
|
|
107
84
|
: fn(a, args[zero]) as ReturnType<Func>
|
|
108
85
|
: (b: p1) => fn(a, b) as Curried2<p0, p1, ReturnT>
|
|
@@ -110,14 +87,16 @@ export function curry2<Func extends Func2>(fn: Func) {
|
|
|
110
87
|
return curried2
|
|
111
88
|
}
|
|
112
89
|
|
|
113
|
-
type
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
90
|
+
export type Curried3<A, B, C, R> =
|
|
91
|
+
& ((a: A) => Curried2<B, C, R>)
|
|
92
|
+
& ((a: A, b: B) => (c: C) => R)
|
|
93
|
+
& ((a: A, b: B, c: C) => R)
|
|
94
|
+
& ((a: Placeholder, b: B, c: C) => (a: A) => R)
|
|
95
|
+
& ((a: A, b: Placeholder, c: C) => (b: B) => R)
|
|
96
|
+
& ((a: A, b: B, c: Placeholder) => (c: C) => R)
|
|
97
|
+
& ((a: Placeholder, b: Placeholder, c: C) => (a: A, b: B) => R)
|
|
98
|
+
& ((a: Placeholder, b: B, c: Placeholder) => (a: A, c: C) => R)
|
|
99
|
+
& ((a: A, b: Placeholder, c: Placeholder) => (b: B, c: C) => R)
|
|
100
|
+
|
|
101
|
+
export declare const curry3: <Params extends [any, any, any], ReturnT, F = AnyFunc<ReturnT, Params>>(fn: F) =>
|
|
102
|
+
Curried3<Params[0], Params[1], Params[2], ReturnT>
|
package/src/index.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './uncurry'
|
|
2
|
+
export * from './async'
|
|
4
3
|
export * from './common'
|
|
5
|
-
export
|
|
4
|
+
export { __, curry, curry2, curry3 } from './curry'
|
|
6
5
|
export * from './quick'
|
|
6
|
+
export * from './safe'
|
|
7
7
|
export * from './strings'
|
|
8
8
|
export * from './timers'
|
|
9
|
-
export * from './
|
|
10
|
-
export * from './
|
|
9
|
+
export * from './types'
|
|
10
|
+
export * from './uncurry'
|
package/src/safe.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { eq, equals, includes, length, symbol, type } from './common'
|
|
1
2
|
import { __, curry, curry2, curry3 } from './curry'
|
|
2
|
-
import { isNum, undef, isArray, isFunc, isObj, inf, isNil } from './utils'
|
|
3
|
-
import { qmergeDeep, qreduce, qappend, qmapKeys, qmergeDeepX, qmergeDeepAdd, qfilter, qfreeze, qfreezeShallow, qmapObj } from './quick'
|
|
4
|
-
import { AnyFunc, Composed, Cond, AnyObject, Reducer } from './types'
|
|
5
|
-
import { symbol, type, length, equals, includes, eq } from './common'
|
|
6
|
-
import { Split, AnyArray, IndexesOfArray } from './internal_types'
|
|
7
3
|
import { is_typed_arr, startsWithWith } from './internal'
|
|
4
|
+
import { AnyArray, IndexesOfArray, Split } from './internal_types'
|
|
5
|
+
import { qappend, qfilter, qfreeze, qfreezeShallow, qmapKeys, qmapObj, qmergeDeep, qmergeDeepAdd, qmergeDeepX, qreduce } from './quick'
|
|
6
|
+
import { AnyFunc, AnyObject, Composed, Cond, Reducer } from './types'
|
|
7
|
+
import { inf, isArray, isFunc, isNil, isNum, isObj, undef } from './utils'
|
|
8
8
|
// TODO: over, lensProp, reduceAsync, propsEq is up to 20x slow due to deep equals.
|
|
9
9
|
|
|
10
10
|
export const take = (argN: number) => (...args: any[]) => args[argN]
|
|
@@ -38,6 +38,7 @@ export const compose = (
|
|
|
38
38
|
return s as any as TOut
|
|
39
39
|
}
|
|
40
40
|
)
|
|
41
|
+
/** @param fn AnyFunc @param context any */
|
|
41
42
|
export const bind = curry2<AnyFunc>((fn: AnyFunc, context: any) => fn.bind(context))
|
|
42
43
|
export const nth = curry2(<T extends any>(i: number, data: string | ArrayLike<T>) => data[i])
|
|
43
44
|
// FIXME: these types. Somewhere in curry2.
|
|
@@ -265,16 +266,15 @@ export const propEq = curry3(
|
|
|
265
266
|
export const propsEq = curry3(
|
|
266
267
|
(key: string, o1: any, o2: AnyObject) => equals(o1[key], o2[key])
|
|
267
268
|
)
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
?
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
)
|
|
269
|
+
const _pathOr = (_default: any, path: (string | number)[], o: AnyObject) => length(path)
|
|
270
|
+
? isNil(o)
|
|
271
|
+
? _default
|
|
272
|
+
: compose(
|
|
273
|
+
(k) => k in o ? _pathOr(_default, slice(1, inf, path) as typeof path, o[k] as typeof o) : _default,
|
|
274
|
+
head
|
|
275
|
+
)(path)
|
|
276
|
+
: o
|
|
277
|
+
export const pathOr = curry3<[any, (string | number)[], AnyObject], any>(_pathOr) // it's more performant due to recursion there.
|
|
278
278
|
export const path = pathOr(undef)
|
|
279
279
|
export const pathEq = curry3(
|
|
280
280
|
(_path: string[], value: any, o: AnyObject) => equals(path(_path, o), value)
|
|
@@ -443,7 +443,7 @@ export const zipWith = curry3(
|
|
|
443
443
|
)
|
|
444
444
|
|
|
445
445
|
// Reexport safe stuff that is ready to use externally.
|
|
446
|
-
export {
|
|
446
|
+
export { eq, equals, includes, length, toLower, toUpper, type, typeIs } from './common'
|
|
447
447
|
export { isNil } from './utils'
|
|
448
448
|
|
|
449
449
|
// ALIASES
|
package/src/timers.ts
CHANGED
|
@@ -13,15 +13,16 @@ export const debounce = <T extends AnyFunc>(time: number, fn: T) => {
|
|
|
13
13
|
queue.push(ff)
|
|
14
14
|
}))
|
|
15
15
|
}
|
|
16
|
-
// export const debouncePrepared =
|
|
17
16
|
export const throttle = <T extends AnyFunc>(time: number, fn: T) => {
|
|
18
17
|
let on = true
|
|
18
|
+
let res: any
|
|
19
19
|
return (...args: Parameters<T>) => {
|
|
20
20
|
if(on) {
|
|
21
21
|
on = false
|
|
22
22
|
setTimeout(() => on = true, time)
|
|
23
|
-
|
|
23
|
+
res = fn(...args)
|
|
24
24
|
}
|
|
25
|
+
return res
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
export const wait = (time: number) => new Promise((ff) => setTimeout(ff, time))
|
package/src/types.ts
CHANGED
|
@@ -8,4 +8,12 @@ export type Reducer<T=any> = (accum: T, cur: any, index: number) => T
|
|
|
8
8
|
export type AnyFunc<ReturnT = any, Args extends AnyArgs = AnyArgs> = (...args: Args) => ReturnT
|
|
9
9
|
export type Curried<Args extends AnyArgs = AnyArgs, ReturnT = any> = (arg: Args[number]) => Curried<Args> | ReturnT
|
|
10
10
|
export type Composed<TIn extends any[], TOut> = (...xs: TIn) => TOut
|
|
11
|
-
export type Inverse<T> = T extends Falsey ? true : false
|
|
11
|
+
export type Inverse<T> = T extends Falsey ? true : false
|
|
12
|
+
export type PathValue<O, Keys extends readonly PropertyKey[], Default> =
|
|
13
|
+
Keys extends [infer K, ...infer Rest]
|
|
14
|
+
? K extends keyof O
|
|
15
|
+
? Rest extends PropertyKey[]
|
|
16
|
+
? PathValue<O[K], Rest, Default>
|
|
17
|
+
: Default
|
|
18
|
+
: Default
|
|
19
|
+
: O
|