@hairy/utils 1.49.0 → 1.51.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/{LICENSE.md → LICENSE} +1 -1
- package/README.md +730 -21
- package/dist/index.cjs +87 -62
- package/dist/index.d.cts +23 -23
- package/dist/index.d.mts +23 -23
- package/dist/index.mjs +87 -63
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6516,6 +6516,7 @@ const noop = () => {};
|
|
|
6516
6516
|
* ```ts
|
|
6517
6517
|
* const deferred = new Deferred()
|
|
6518
6518
|
* deferred.resolve('value')
|
|
6519
|
+
* ```
|
|
6519
6520
|
*/
|
|
6520
6521
|
var Deferred = class extends Promise {
|
|
6521
6522
|
resolve;
|
|
@@ -6547,11 +6548,88 @@ var Deferred = class extends Promise {
|
|
|
6547
6548
|
* @example
|
|
6548
6549
|
* ```ts
|
|
6549
6550
|
* delay(1000).then(() => { console.log('1 second') })
|
|
6551
|
+
* ```
|
|
6550
6552
|
*/
|
|
6551
6553
|
function delay(ms) {
|
|
6552
6554
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
6553
6555
|
}
|
|
6554
6556
|
|
|
6557
|
+
//#endregion
|
|
6558
|
+
//#region src/util/proxy.ts
|
|
6559
|
+
/**
|
|
6560
|
+
* Creates a proxy object that updates the original object when the proxy is updated.
|
|
6561
|
+
* @param initObject - The initial object to proxy.
|
|
6562
|
+
* @returns The proxy object.
|
|
6563
|
+
*
|
|
6564
|
+
* @example
|
|
6565
|
+
* ```ts
|
|
6566
|
+
* const obj = proxy({ name: 'John' })
|
|
6567
|
+
* console.log(obj.name) // John
|
|
6568
|
+
*
|
|
6569
|
+
* obj.proxy.update({ name: 'Jane' })
|
|
6570
|
+
* console.log(obj.name) // Jane
|
|
6571
|
+
*
|
|
6572
|
+
* const obj2 = proxy()
|
|
6573
|
+
*
|
|
6574
|
+
* obj2.any // Error: Proxy not updated. Call object.proxy.update() to update the proxy.
|
|
6575
|
+
*
|
|
6576
|
+
* obj2.proxy.source // undefined
|
|
6577
|
+
* obj2.update({ name: 'John' })
|
|
6578
|
+
*
|
|
6579
|
+
* // get the original object
|
|
6580
|
+
* obj2.proxy.source // { name: 'John' }
|
|
6581
|
+
* ```
|
|
6582
|
+
*/
|
|
6583
|
+
function proxy(initObject, initExtend, options) {
|
|
6584
|
+
initObject && Reflect.set(initObject, "__proxy_updated", true);
|
|
6585
|
+
let target = initObject || { __proxy_updated: false };
|
|
6586
|
+
const extended = initExtend || {};
|
|
6587
|
+
const proxy = {
|
|
6588
|
+
update(object) {
|
|
6589
|
+
if (!object) {
|
|
6590
|
+
target = void 0;
|
|
6591
|
+
return;
|
|
6592
|
+
}
|
|
6593
|
+
Reflect.set(object, "__proxy_updated", true);
|
|
6594
|
+
target = object;
|
|
6595
|
+
},
|
|
6596
|
+
get source() {
|
|
6597
|
+
return Reflect.get(target, "__proxy_updated") ? target : void 0;
|
|
6598
|
+
},
|
|
6599
|
+
get extend() {
|
|
6600
|
+
return extended;
|
|
6601
|
+
},
|
|
6602
|
+
strictMessage: options?.strictMessage || "Proxy not updated. Call object.proxy.update() to update the proxy."
|
|
6603
|
+
};
|
|
6604
|
+
return new Proxy({}, {
|
|
6605
|
+
get: (_, p) => {
|
|
6606
|
+
if (p === "proxy") return proxy;
|
|
6607
|
+
if (p in extended) return Reflect.get(extended, p);
|
|
6608
|
+
if (!Reflect.get(target, "__proxy_updated")) throw new Error(proxy.strictMessage);
|
|
6609
|
+
return typeof target?.[p] === "function" ? target?.[p].bind(target) : target?.[p];
|
|
6610
|
+
},
|
|
6611
|
+
set: (_, p, v) => {
|
|
6612
|
+
if (p in extended) return Reflect.set(extended, p, v);
|
|
6613
|
+
target[p] = v;
|
|
6614
|
+
return true;
|
|
6615
|
+
}
|
|
6616
|
+
});
|
|
6617
|
+
}
|
|
6618
|
+
|
|
6619
|
+
//#endregion
|
|
6620
|
+
//#region src/util/ghost.ts
|
|
6621
|
+
function ghost(strictMessage) {
|
|
6622
|
+
const placeholder = proxy(void 0, {
|
|
6623
|
+
enabled: false,
|
|
6624
|
+
resolve
|
|
6625
|
+
}, { strictMessage: strictMessage || "Object is not enabled. Call ghost.resolve(value) to enable the object." });
|
|
6626
|
+
function resolve(value) {
|
|
6627
|
+
placeholder.proxy.update(value);
|
|
6628
|
+
placeholder.enabled = true;
|
|
6629
|
+
}
|
|
6630
|
+
return placeholder;
|
|
6631
|
+
}
|
|
6632
|
+
|
|
6555
6633
|
//#endregion
|
|
6556
6634
|
//#region src/util/json.ts
|
|
6557
6635
|
function tryParseJson(text) {
|
|
@@ -6633,68 +6711,6 @@ function pipe(...fns) {
|
|
|
6633
6711
|
}
|
|
6634
6712
|
pipe.promise = pPipe;
|
|
6635
6713
|
|
|
6636
|
-
//#endregion
|
|
6637
|
-
//#region src/util/proxy.ts
|
|
6638
|
-
/**
|
|
6639
|
-
* Creates a proxy object that updates the original object when the proxy is updated.
|
|
6640
|
-
* @param initObject - The initial object to proxy.
|
|
6641
|
-
* @returns The proxy object.
|
|
6642
|
-
*
|
|
6643
|
-
* @example
|
|
6644
|
-
* ```ts
|
|
6645
|
-
* const obj = proxy({ name: 'John' })
|
|
6646
|
-
* console.log(obj.name) // John
|
|
6647
|
-
*
|
|
6648
|
-
* obj.proxy.update({ name: 'Jane' })
|
|
6649
|
-
* console.log(obj.name) // Jane
|
|
6650
|
-
*
|
|
6651
|
-
* const obj2 = proxy()
|
|
6652
|
-
*
|
|
6653
|
-
* obj2.any // Error: Proxy not updated. Call object.proxy.update() to update the proxy.
|
|
6654
|
-
*
|
|
6655
|
-
* obj2.proxy.source // undefined
|
|
6656
|
-
* obj2.update({ name: 'John' })
|
|
6657
|
-
*
|
|
6658
|
-
* // get the original object
|
|
6659
|
-
* obj2.proxy.source // { name: 'John' }
|
|
6660
|
-
* ```
|
|
6661
|
-
*/
|
|
6662
|
-
function proxy(initObject, initExtend, options) {
|
|
6663
|
-
initObject && Reflect.set(initObject, "__proxy_updated", true);
|
|
6664
|
-
let target = initObject || { __proxy_updated: false };
|
|
6665
|
-
const extended = initExtend || {};
|
|
6666
|
-
const proxy = {
|
|
6667
|
-
update(object) {
|
|
6668
|
-
if (!object) {
|
|
6669
|
-
target = void 0;
|
|
6670
|
-
return;
|
|
6671
|
-
}
|
|
6672
|
-
Reflect.set(object, "__proxy_updated", true);
|
|
6673
|
-
target = object;
|
|
6674
|
-
},
|
|
6675
|
-
get source() {
|
|
6676
|
-
return Reflect.get(target, "__proxy_updated") ? target : void 0;
|
|
6677
|
-
},
|
|
6678
|
-
get extend() {
|
|
6679
|
-
return extended;
|
|
6680
|
-
},
|
|
6681
|
-
strictMessage: options?.strictMessage || "Proxy not updated. Call object.proxy.update() to update the proxy."
|
|
6682
|
-
};
|
|
6683
|
-
return new Proxy({}, {
|
|
6684
|
-
get: (_, p) => {
|
|
6685
|
-
if (p === "proxy") return proxy;
|
|
6686
|
-
if (p in extended) return Reflect.get(extended, p);
|
|
6687
|
-
if (!Reflect.get(target, "__proxy_updated")) throw new Error(proxy.strictMessage);
|
|
6688
|
-
return typeof target?.[p] === "function" ? target?.[p].bind(target) : target?.[p];
|
|
6689
|
-
},
|
|
6690
|
-
set: (_, p, v) => {
|
|
6691
|
-
if (p in extended) return Reflect.set(extended, p, v);
|
|
6692
|
-
target[p] = v;
|
|
6693
|
-
return true;
|
|
6694
|
-
}
|
|
6695
|
-
});
|
|
6696
|
-
}
|
|
6697
|
-
|
|
6698
6714
|
//#endregion
|
|
6699
6715
|
//#region src/util/random.ts
|
|
6700
6716
|
/**
|
|
@@ -6704,6 +6720,7 @@ function proxy(initObject, initExtend, options) {
|
|
|
6704
6720
|
* @example
|
|
6705
6721
|
* ```ts
|
|
6706
6722
|
* randomItem(['a', 'b', 'c']) // 'a' | 'b' | 'c'
|
|
6723
|
+
* ```
|
|
6707
6724
|
*/
|
|
6708
6725
|
function randomItem(array) {
|
|
6709
6726
|
return array[Math.floor(Math.random() * array.length)];
|
|
@@ -6716,6 +6733,7 @@ function randomItem(array) {
|
|
|
6716
6733
|
* @example
|
|
6717
6734
|
* ```ts
|
|
6718
6735
|
* randomNumber(0, 100) // 0-100
|
|
6736
|
+
* ```
|
|
6719
6737
|
*/
|
|
6720
6738
|
function randomNumber(min, max) {
|
|
6721
6739
|
return Math.random() * (max - min) + min;
|
|
@@ -6731,6 +6749,7 @@ const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwy
|
|
|
6731
6749
|
* randomString() // 10 characters long
|
|
6732
6750
|
* randomString(20) // 20 characters long
|
|
6733
6751
|
* randomString(20, 'abcdefghijklmnopqrstuvwxyz') // 20 characters long
|
|
6752
|
+
* ```
|
|
6734
6753
|
*/
|
|
6735
6754
|
function randomString(size = 10, chars = urlAlphabet) {
|
|
6736
6755
|
let id = "";
|
|
@@ -6804,6 +6823,7 @@ function numberish(value) {
|
|
|
6804
6823
|
* ```ts
|
|
6805
6824
|
* to(Promise.resolve('data')) // Promise<[null, 'data']>
|
|
6806
6825
|
* to(Promise.reject(new Error('error'))) // Promise<[Error, undefined]>
|
|
6826
|
+
* ```
|
|
6807
6827
|
*/
|
|
6808
6828
|
async function to(promise, error) {
|
|
6809
6829
|
return (isFunction(promise) ? promise() : promise).then((data) => [null, data]).catch((err) => {
|
|
@@ -6823,6 +6843,7 @@ async function to(promise, error) {
|
|
|
6823
6843
|
* ```ts
|
|
6824
6844
|
* toArray(arrorOrItemOrUndefined) // item[] | undefined
|
|
6825
6845
|
* toArray(arrayOrItemOrUndefined, true) // item[]
|
|
6846
|
+
* ```
|
|
6826
6847
|
*/
|
|
6827
6848
|
function toArray(value, required = false) {
|
|
6828
6849
|
if (!value) return required === false ? void 0 : [];
|
|
@@ -6891,6 +6912,7 @@ const riposte = select;
|
|
|
6891
6912
|
* ```ts
|
|
6892
6913
|
* unwrap({ name: 'John' }) // { name: 'John' }
|
|
6893
6914
|
* unwrap(() => { return { name: 'John' } }) // { name: 'John' }
|
|
6915
|
+
* ```
|
|
6894
6916
|
*/
|
|
6895
6917
|
function unwrap(value) {
|
|
6896
6918
|
return typeof value === "function" ? value() : value;
|
|
@@ -6903,6 +6925,7 @@ function unwrap(value) {
|
|
|
6903
6925
|
* @example
|
|
6904
6926
|
* ```ts
|
|
6905
6927
|
* whenever(value, (value) => { return 'value' }) // value
|
|
6928
|
+
* ```
|
|
6906
6929
|
*/
|
|
6907
6930
|
function whenever(value, callback) {
|
|
6908
6931
|
return value ? callback(value) : void 0;
|
|
@@ -7157,6 +7180,7 @@ const _reFullWs = /^\s*$/;
|
|
|
7157
7180
|
* b()
|
|
7158
7181
|
* }
|
|
7159
7182
|
* `
|
|
7183
|
+
* ```
|
|
7160
7184
|
*/
|
|
7161
7185
|
function unindent(str) {
|
|
7162
7186
|
const lines = (typeof str === "string" ? str : str[0]).split("\n");
|
|
@@ -7208,6 +7232,7 @@ exports.find = find;
|
|
|
7208
7232
|
exports.formatNumeric = formatNumeric;
|
|
7209
7233
|
exports.formdataToObject = formdataToObject;
|
|
7210
7234
|
exports.get = get;
|
|
7235
|
+
exports.ghost = ghost;
|
|
7211
7236
|
exports.groupBy = groupBy;
|
|
7212
7237
|
exports.gt = gt;
|
|
7213
7238
|
exports.gte = gte;
|
package/dist/index.d.cts
CHANGED
|
@@ -223,28 +223,11 @@ declare const Bignumber: typeof _Bignumber;
|
|
|
223
223
|
*
|
|
224
224
|
* do not use Bignumber directly, use bignumber function instead
|
|
225
225
|
*/
|
|
226
|
-
declare const BIG_INTS: {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
};
|
|
232
|
-
b: {
|
|
233
|
-
v: number;
|
|
234
|
-
d: number;
|
|
235
|
-
n: string;
|
|
236
|
-
};
|
|
237
|
-
m: {
|
|
238
|
-
v: number;
|
|
239
|
-
d: number;
|
|
240
|
-
n: string;
|
|
241
|
-
};
|
|
242
|
-
k: {
|
|
243
|
-
v: number;
|
|
244
|
-
d: number;
|
|
245
|
-
n: string;
|
|
246
|
-
};
|
|
247
|
-
};
|
|
226
|
+
declare const BIG_INTS: Record<Delimiter, {
|
|
227
|
+
v: number;
|
|
228
|
+
d: number;
|
|
229
|
+
n: string;
|
|
230
|
+
}>;
|
|
248
231
|
type Delimiter = 'k' | 'm' | 'b' | 't';
|
|
249
232
|
interface DecimalOptions {
|
|
250
233
|
d?: number;
|
|
@@ -390,6 +373,7 @@ declare function template(str: string, ...args: (string | number | bigint | unde
|
|
|
390
373
|
* b()
|
|
391
374
|
* }
|
|
392
375
|
* `
|
|
376
|
+
* ```
|
|
393
377
|
*/
|
|
394
378
|
declare function unindent(str: TemplateStringsArray | string): string;
|
|
395
379
|
//#endregion
|
|
@@ -483,6 +467,7 @@ declare namespace compose {
|
|
|
483
467
|
* ```ts
|
|
484
468
|
* const deferred = new Deferred()
|
|
485
469
|
* deferred.resolve('value')
|
|
470
|
+
* ```
|
|
486
471
|
*/
|
|
487
472
|
declare class Deferred<T> extends Promise<T> {
|
|
488
473
|
resolve: (value?: T) => Deferred<T>;
|
|
@@ -498,9 +483,17 @@ declare class Deferred<T> extends Promise<T> {
|
|
|
498
483
|
* @example
|
|
499
484
|
* ```ts
|
|
500
485
|
* delay(1000).then(() => { console.log('1 second') })
|
|
486
|
+
* ```
|
|
501
487
|
*/
|
|
502
488
|
declare function delay(ms: number): Promise<void>;
|
|
503
489
|
//#endregion
|
|
490
|
+
//#region src/util/ghost.d.ts
|
|
491
|
+
type Ghost<T extends object> = T & {
|
|
492
|
+
enabled: boolean;
|
|
493
|
+
resolve: (value: T) => void;
|
|
494
|
+
};
|
|
495
|
+
declare function ghost<T extends object>(strictMessage?: string): Ghost<T>;
|
|
496
|
+
//#endregion
|
|
504
497
|
//#region src/util/json.d.ts
|
|
505
498
|
declare function tryParseJson<T = any>(text: string | undefined | null): T | undefined;
|
|
506
499
|
//#endregion
|
|
@@ -674,6 +667,7 @@ declare function proxy<T extends object, E extends object = {}>(initObject?: T,
|
|
|
674
667
|
* @example
|
|
675
668
|
* ```ts
|
|
676
669
|
* randomItem(['a', 'b', 'c']) // 'a' | 'b' | 'c'
|
|
670
|
+
* ```
|
|
677
671
|
*/
|
|
678
672
|
declare function randomItem<T>(array: T[]): T;
|
|
679
673
|
/**
|
|
@@ -684,6 +678,7 @@ declare function randomItem<T>(array: T[]): T;
|
|
|
684
678
|
* @example
|
|
685
679
|
* ```ts
|
|
686
680
|
* randomNumber(0, 100) // 0-100
|
|
681
|
+
* ```
|
|
687
682
|
*/
|
|
688
683
|
declare function randomNumber(min: number, max: number): number;
|
|
689
684
|
/**
|
|
@@ -696,6 +691,7 @@ declare function randomNumber(min: number, max: number): number;
|
|
|
696
691
|
* randomString() // 10 characters long
|
|
697
692
|
* randomString(20) // 20 characters long
|
|
698
693
|
* randomString(20, 'abcdefghijklmnopqrstuvwxyz') // 20 characters long
|
|
694
|
+
* ```
|
|
699
695
|
*/
|
|
700
696
|
declare function randomString(size?: number, chars?: string): string;
|
|
701
697
|
//#endregion
|
|
@@ -745,6 +741,7 @@ declare function numberish(value: Numberish): string;
|
|
|
745
741
|
* ```ts
|
|
746
742
|
* to(Promise.resolve('data')) // Promise<[null, 'data']>
|
|
747
743
|
* to(Promise.reject(new Error('error'))) // Promise<[Error, undefined]>
|
|
744
|
+
* ```
|
|
748
745
|
*/
|
|
749
746
|
declare function to<T, U = Error>(promise: Promise<T> | (() => Promise<T>), error?: object): Promise<[U, undefined] | [null, T]>;
|
|
750
747
|
//#endregion
|
|
@@ -758,6 +755,7 @@ declare function to<T, U = Error>(promise: Promise<T> | (() => Promise<T>), erro
|
|
|
758
755
|
* ```ts
|
|
759
756
|
* toArray(arrorOrItemOrUndefined) // item[] | undefined
|
|
760
757
|
* toArray(arrayOrItemOrUndefined, true) // item[]
|
|
758
|
+
* ```
|
|
761
759
|
*/
|
|
762
760
|
declare function toArray<T, R extends boolean>(value?: T | T[], required?: R): R extends true ? T[] : T[] | undefined;
|
|
763
761
|
//#endregion
|
|
@@ -806,6 +804,7 @@ declare const riposte: typeof select;
|
|
|
806
804
|
* ```ts
|
|
807
805
|
* unwrap({ name: 'John' }) // { name: 'John' }
|
|
808
806
|
* unwrap(() => { return { name: 'John' } }) // { name: 'John' }
|
|
807
|
+
* ```
|
|
809
808
|
*/
|
|
810
809
|
declare function unwrap<T extends object>(value: T | (() => T)): T;
|
|
811
810
|
/**
|
|
@@ -816,8 +815,9 @@ declare function unwrap<T extends object>(value: T | (() => T)): T;
|
|
|
816
815
|
* @example
|
|
817
816
|
* ```ts
|
|
818
817
|
* whenever(value, (value) => { return 'value' }) // value
|
|
818
|
+
* ```
|
|
819
819
|
*/
|
|
820
820
|
declare function whenever<T, C extends (value: Exclude<T, null | undefined>) => any>(value: T, callback: C): ReturnType<C> | undefined;
|
|
821
821
|
declare function call<T extends Fn<any>>(fn: T, ...args: Parameters<T>): ReturnType<T>;
|
|
822
822
|
//#endregion
|
|
823
|
-
export { AnyFn, ArgumentsType, Arrayable, Assign, Awaitable, BIG_INTS, Bignumber, BooleanLike, BrowserNativeObject, ConstructorType, DEFAULT_BIGNUM_CONFIG, DecimalOptions, DeepKeyof, DeepMap, DeepMerge, DeepPartial, DeepReadonly, DeepReplace, DeepRequired, Deferred, Delimiter, Dimension, DynamicObject, ElementOf, Fn, FormatGroupOptions, FormatNumericOptions, IfAny, IsAny, Key, Looper, MergeInsertions, NonUndefined, Noop, Nullable, NumberObject, Numberish, Numeric, NumericObject, OmitBy, OpenFilePickerOptions, OpenImagePickerOptions, Option, Overwrite, PickBy, PromiseFn, PromiseType, Promisify, Proxyed, ReaderType, StringObject, SymbolObject, arange, average, bignumber, call, camelCase, capitalCase, chunk, clone, cloneDeep, cloneDeepWith, cloneWith, compose, concat, constantCase, cover, debounce, decimal, delay, dialsPhone, divide, dotCase, downloadBlobFile, downloadNetworkFile, downloadUrlFile, ensurePrefix, ensureSuffix, find, formatNumeric, formdataToObject, get, groupBy, gt, gte, integer, isAndroid, isArguments, isArray, isArrayBuffer, isArrayLike, isArrayLikeObject, isBoolean, isBrowser, isBuffer, isChrome, isDate, isEdge, isElement, isEmpty, isEqual, isEqualWith, isError, isFF, isFormData, isFunction, isIE, isIE11, isIE9, isIOS, isInteger, isMap, isMatch, isMatchWith, isMobile, isNaN, isNative, isNull, isNumber, isObject, isObjectLike, isPhantomJS, isPlainObject, isRegexp, isSet, isString, isSymbol, isTruthy, isUndefined, isWeakMap, isWeakSet, isWeex, isWindow, join, kebabCase, keyBy, keys, loop, lt, lte, max, maxBy, merge, mergeWith, min, minBy, multiply, noCase, nonnanable, noop, numberify, numberish, objectToFormdata, off, omit, omitBy, on, once, openFilePicker, openImagePicker, parseNumeric, pascalCase, pascalSnakeCase, pathCase, percentage, pick, pickBy, pipe, plus, proxy, randomItem, randomNumber, randomString, range, readFileReader, redirectTo, riposte, select, selectImages, sentenceCase, set, shortenId, showOpenFilePicker, showOpenImagePicker, size, slash, snakeCase, stringify, template, to, toArray, trainCase, truncate, tryParseJson, unindent, uniq, uniqBy, uniqWith, unit, unwrap, values, whenever, zeroRemove, zerofill };
|
|
823
|
+
export { AnyFn, ArgumentsType, Arrayable, Assign, Awaitable, BIG_INTS, Bignumber, BooleanLike, BrowserNativeObject, ConstructorType, DEFAULT_BIGNUM_CONFIG, DecimalOptions, DeepKeyof, DeepMap, DeepMerge, DeepPartial, DeepReadonly, DeepReplace, DeepRequired, Deferred, Delimiter, Dimension, DynamicObject, ElementOf, Fn, FormatGroupOptions, FormatNumericOptions, Ghost, IfAny, IsAny, Key, Looper, MergeInsertions, NonUndefined, Noop, Nullable, NumberObject, Numberish, Numeric, NumericObject, OmitBy, OpenFilePickerOptions, OpenImagePickerOptions, Option, Overwrite, PickBy, PromiseFn, PromiseType, Promisify, Proxyed, ReaderType, StringObject, SymbolObject, arange, average, bignumber, call, camelCase, capitalCase, chunk, clone, cloneDeep, cloneDeepWith, cloneWith, compose, concat, constantCase, cover, debounce, decimal, delay, dialsPhone, divide, dotCase, downloadBlobFile, downloadNetworkFile, downloadUrlFile, ensurePrefix, ensureSuffix, find, formatNumeric, formdataToObject, get, ghost, groupBy, gt, gte, integer, isAndroid, isArguments, isArray, isArrayBuffer, isArrayLike, isArrayLikeObject, isBoolean, isBrowser, isBuffer, isChrome, isDate, isEdge, isElement, isEmpty, isEqual, isEqualWith, isError, isFF, isFormData, isFunction, isIE, isIE11, isIE9, isIOS, isInteger, isMap, isMatch, isMatchWith, isMobile, isNaN, isNative, isNull, isNumber, isObject, isObjectLike, isPhantomJS, isPlainObject, isRegexp, isSet, isString, isSymbol, isTruthy, isUndefined, isWeakMap, isWeakSet, isWeex, isWindow, join, kebabCase, keyBy, keys, loop, lt, lte, max, maxBy, merge, mergeWith, min, minBy, multiply, noCase, nonnanable, noop, numberify, numberish, objectToFormdata, off, omit, omitBy, on, once, openFilePicker, openImagePicker, parseNumeric, pascalCase, pascalSnakeCase, pathCase, percentage, pick, pickBy, pipe, plus, proxy, randomItem, randomNumber, randomString, range, readFileReader, redirectTo, riposte, select, selectImages, sentenceCase, set, shortenId, showOpenFilePicker, showOpenImagePicker, size, slash, snakeCase, stringify, template, to, toArray, trainCase, truncate, tryParseJson, unindent, uniq, uniqBy, uniqWith, unit, unwrap, values, whenever, zeroRemove, zerofill };
|
package/dist/index.d.mts
CHANGED
|
@@ -223,28 +223,11 @@ declare const Bignumber: typeof _Bignumber;
|
|
|
223
223
|
*
|
|
224
224
|
* do not use Bignumber directly, use bignumber function instead
|
|
225
225
|
*/
|
|
226
|
-
declare const BIG_INTS: {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
};
|
|
232
|
-
b: {
|
|
233
|
-
v: number;
|
|
234
|
-
d: number;
|
|
235
|
-
n: string;
|
|
236
|
-
};
|
|
237
|
-
m: {
|
|
238
|
-
v: number;
|
|
239
|
-
d: number;
|
|
240
|
-
n: string;
|
|
241
|
-
};
|
|
242
|
-
k: {
|
|
243
|
-
v: number;
|
|
244
|
-
d: number;
|
|
245
|
-
n: string;
|
|
246
|
-
};
|
|
247
|
-
};
|
|
226
|
+
declare const BIG_INTS: Record<Delimiter, {
|
|
227
|
+
v: number;
|
|
228
|
+
d: number;
|
|
229
|
+
n: string;
|
|
230
|
+
}>;
|
|
248
231
|
type Delimiter = 'k' | 'm' | 'b' | 't';
|
|
249
232
|
interface DecimalOptions {
|
|
250
233
|
d?: number;
|
|
@@ -390,6 +373,7 @@ declare function template(str: string, ...args: (string | number | bigint | unde
|
|
|
390
373
|
* b()
|
|
391
374
|
* }
|
|
392
375
|
* `
|
|
376
|
+
* ```
|
|
393
377
|
*/
|
|
394
378
|
declare function unindent(str: TemplateStringsArray | string): string;
|
|
395
379
|
//#endregion
|
|
@@ -483,6 +467,7 @@ declare namespace compose {
|
|
|
483
467
|
* ```ts
|
|
484
468
|
* const deferred = new Deferred()
|
|
485
469
|
* deferred.resolve('value')
|
|
470
|
+
* ```
|
|
486
471
|
*/
|
|
487
472
|
declare class Deferred<T> extends Promise<T> {
|
|
488
473
|
resolve: (value?: T) => Deferred<T>;
|
|
@@ -498,9 +483,17 @@ declare class Deferred<T> extends Promise<T> {
|
|
|
498
483
|
* @example
|
|
499
484
|
* ```ts
|
|
500
485
|
* delay(1000).then(() => { console.log('1 second') })
|
|
486
|
+
* ```
|
|
501
487
|
*/
|
|
502
488
|
declare function delay(ms: number): Promise<void>;
|
|
503
489
|
//#endregion
|
|
490
|
+
//#region src/util/ghost.d.ts
|
|
491
|
+
type Ghost<T extends object> = T & {
|
|
492
|
+
enabled: boolean;
|
|
493
|
+
resolve: (value: T) => void;
|
|
494
|
+
};
|
|
495
|
+
declare function ghost<T extends object>(strictMessage?: string): Ghost<T>;
|
|
496
|
+
//#endregion
|
|
504
497
|
//#region src/util/json.d.ts
|
|
505
498
|
declare function tryParseJson<T = any>(text: string | undefined | null): T | undefined;
|
|
506
499
|
//#endregion
|
|
@@ -674,6 +667,7 @@ declare function proxy<T extends object, E extends object = {}>(initObject?: T,
|
|
|
674
667
|
* @example
|
|
675
668
|
* ```ts
|
|
676
669
|
* randomItem(['a', 'b', 'c']) // 'a' | 'b' | 'c'
|
|
670
|
+
* ```
|
|
677
671
|
*/
|
|
678
672
|
declare function randomItem<T>(array: T[]): T;
|
|
679
673
|
/**
|
|
@@ -684,6 +678,7 @@ declare function randomItem<T>(array: T[]): T;
|
|
|
684
678
|
* @example
|
|
685
679
|
* ```ts
|
|
686
680
|
* randomNumber(0, 100) // 0-100
|
|
681
|
+
* ```
|
|
687
682
|
*/
|
|
688
683
|
declare function randomNumber(min: number, max: number): number;
|
|
689
684
|
/**
|
|
@@ -696,6 +691,7 @@ declare function randomNumber(min: number, max: number): number;
|
|
|
696
691
|
* randomString() // 10 characters long
|
|
697
692
|
* randomString(20) // 20 characters long
|
|
698
693
|
* randomString(20, 'abcdefghijklmnopqrstuvwxyz') // 20 characters long
|
|
694
|
+
* ```
|
|
699
695
|
*/
|
|
700
696
|
declare function randomString(size?: number, chars?: string): string;
|
|
701
697
|
//#endregion
|
|
@@ -745,6 +741,7 @@ declare function numberish(value: Numberish): string;
|
|
|
745
741
|
* ```ts
|
|
746
742
|
* to(Promise.resolve('data')) // Promise<[null, 'data']>
|
|
747
743
|
* to(Promise.reject(new Error('error'))) // Promise<[Error, undefined]>
|
|
744
|
+
* ```
|
|
748
745
|
*/
|
|
749
746
|
declare function to<T, U = Error>(promise: Promise<T> | (() => Promise<T>), error?: object): Promise<[U, undefined] | [null, T]>;
|
|
750
747
|
//#endregion
|
|
@@ -758,6 +755,7 @@ declare function to<T, U = Error>(promise: Promise<T> | (() => Promise<T>), erro
|
|
|
758
755
|
* ```ts
|
|
759
756
|
* toArray(arrorOrItemOrUndefined) // item[] | undefined
|
|
760
757
|
* toArray(arrayOrItemOrUndefined, true) // item[]
|
|
758
|
+
* ```
|
|
761
759
|
*/
|
|
762
760
|
declare function toArray<T, R extends boolean>(value?: T | T[], required?: R): R extends true ? T[] : T[] | undefined;
|
|
763
761
|
//#endregion
|
|
@@ -806,6 +804,7 @@ declare const riposte: typeof select;
|
|
|
806
804
|
* ```ts
|
|
807
805
|
* unwrap({ name: 'John' }) // { name: 'John' }
|
|
808
806
|
* unwrap(() => { return { name: 'John' } }) // { name: 'John' }
|
|
807
|
+
* ```
|
|
809
808
|
*/
|
|
810
809
|
declare function unwrap<T extends object>(value: T | (() => T)): T;
|
|
811
810
|
/**
|
|
@@ -816,8 +815,9 @@ declare function unwrap<T extends object>(value: T | (() => T)): T;
|
|
|
816
815
|
* @example
|
|
817
816
|
* ```ts
|
|
818
817
|
* whenever(value, (value) => { return 'value' }) // value
|
|
818
|
+
* ```
|
|
819
819
|
*/
|
|
820
820
|
declare function whenever<T, C extends (value: Exclude<T, null | undefined>) => any>(value: T, callback: C): ReturnType<C> | undefined;
|
|
821
821
|
declare function call<T extends Fn<any>>(fn: T, ...args: Parameters<T>): ReturnType<T>;
|
|
822
822
|
//#endregion
|
|
823
|
-
export { AnyFn, ArgumentsType, Arrayable, Assign, Awaitable, BIG_INTS, Bignumber, BooleanLike, BrowserNativeObject, ConstructorType, DEFAULT_BIGNUM_CONFIG, DecimalOptions, DeepKeyof, DeepMap, DeepMerge, DeepPartial, DeepReadonly, DeepReplace, DeepRequired, Deferred, Delimiter, Dimension, DynamicObject, ElementOf, Fn, FormatGroupOptions, FormatNumericOptions, IfAny, IsAny, Key, Looper, MergeInsertions, NonUndefined, Noop, Nullable, NumberObject, Numberish, Numeric, NumericObject, OmitBy, OpenFilePickerOptions, OpenImagePickerOptions, Option, Overwrite, PickBy, PromiseFn, PromiseType, Promisify, Proxyed, ReaderType, StringObject, SymbolObject, arange, average, bignumber, call, camelCase, capitalCase, chunk, clone, cloneDeep, cloneDeepWith, cloneWith, compose, concat, constantCase, cover, debounce, decimal, delay, dialsPhone, divide, dotCase, downloadBlobFile, downloadNetworkFile, downloadUrlFile, ensurePrefix, ensureSuffix, find, formatNumeric, formdataToObject, get, groupBy, gt, gte, integer, isAndroid, isArguments, isArray, isArrayBuffer, isArrayLike, isArrayLikeObject, isBoolean, isBrowser, isBuffer, isChrome, isDate, isEdge, isElement, isEmpty, isEqual, isEqualWith, isError, isFF, isFormData, isFunction, isIE, isIE11, isIE9, isIOS, isInteger, isMap, isMatch, isMatchWith, isMobile, isNaN, isNative, isNull, isNumber, isObject, isObjectLike, isPhantomJS, isPlainObject, isRegexp, isSet, isString, isSymbol, isTruthy, isUndefined, isWeakMap, isWeakSet, isWeex, isWindow, join, kebabCase, keyBy, keys, loop, lt, lte, max, maxBy, merge, mergeWith, min, minBy, multiply, noCase, nonnanable, noop, numberify, numberish, objectToFormdata, off, omit, omitBy, on, once, openFilePicker, openImagePicker, parseNumeric, pascalCase, pascalSnakeCase, pathCase, percentage, pick, pickBy, pipe, plus, proxy, randomItem, randomNumber, randomString, range, readFileReader, redirectTo, riposte, select, selectImages, sentenceCase, set, shortenId, showOpenFilePicker, showOpenImagePicker, size, slash, snakeCase, stringify, template, to, toArray, trainCase, truncate, tryParseJson, unindent, uniq, uniqBy, uniqWith, unit, unwrap, values, whenever, zeroRemove, zerofill };
|
|
823
|
+
export { AnyFn, ArgumentsType, Arrayable, Assign, Awaitable, BIG_INTS, Bignumber, BooleanLike, BrowserNativeObject, ConstructorType, DEFAULT_BIGNUM_CONFIG, DecimalOptions, DeepKeyof, DeepMap, DeepMerge, DeepPartial, DeepReadonly, DeepReplace, DeepRequired, Deferred, Delimiter, Dimension, DynamicObject, ElementOf, Fn, FormatGroupOptions, FormatNumericOptions, Ghost, IfAny, IsAny, Key, Looper, MergeInsertions, NonUndefined, Noop, Nullable, NumberObject, Numberish, Numeric, NumericObject, OmitBy, OpenFilePickerOptions, OpenImagePickerOptions, Option, Overwrite, PickBy, PromiseFn, PromiseType, Promisify, Proxyed, ReaderType, StringObject, SymbolObject, arange, average, bignumber, call, camelCase, capitalCase, chunk, clone, cloneDeep, cloneDeepWith, cloneWith, compose, concat, constantCase, cover, debounce, decimal, delay, dialsPhone, divide, dotCase, downloadBlobFile, downloadNetworkFile, downloadUrlFile, ensurePrefix, ensureSuffix, find, formatNumeric, formdataToObject, get, ghost, groupBy, gt, gte, integer, isAndroid, isArguments, isArray, isArrayBuffer, isArrayLike, isArrayLikeObject, isBoolean, isBrowser, isBuffer, isChrome, isDate, isEdge, isElement, isEmpty, isEqual, isEqualWith, isError, isFF, isFormData, isFunction, isIE, isIE11, isIE9, isIOS, isInteger, isMap, isMatch, isMatchWith, isMobile, isNaN, isNative, isNull, isNumber, isObject, isObjectLike, isPhantomJS, isPlainObject, isRegexp, isSet, isString, isSymbol, isTruthy, isUndefined, isWeakMap, isWeakSet, isWeex, isWindow, join, kebabCase, keyBy, keys, loop, lt, lte, max, maxBy, merge, mergeWith, min, minBy, multiply, noCase, nonnanable, noop, numberify, numberish, objectToFormdata, off, omit, omitBy, on, once, openFilePicker, openImagePicker, parseNumeric, pascalCase, pascalSnakeCase, pathCase, percentage, pick, pickBy, pipe, plus, proxy, randomItem, randomNumber, randomString, range, readFileReader, redirectTo, riposte, select, selectImages, sentenceCase, set, shortenId, showOpenFilePicker, showOpenImagePicker, size, slash, snakeCase, stringify, template, to, toArray, trainCase, truncate, tryParseJson, unindent, uniq, uniqBy, uniqWith, unit, unwrap, values, whenever, zeroRemove, zerofill };
|