@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/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
- t: {
228
- v: number;
229
- d: number;
230
- n: string;
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
- t: {
228
- v: number;
229
- d: number;
230
- n: string;
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 };