@hairy/utils 1.49.0 → 1.50.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,84 @@ 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
+ enable: false,
6624
+ resolve: (value) => placeholder.proxy.update(value)
6625
+ }, { strictMessage: strictMessage || "Object is not enabled. Call ghost.resolve(value) to enable the object." });
6626
+ return placeholder;
6627
+ }
6628
+
6555
6629
  //#endregion
6556
6630
  //#region src/util/json.ts
6557
6631
  function tryParseJson(text) {
@@ -6633,68 +6707,6 @@ function pipe(...fns) {
6633
6707
  }
6634
6708
  pipe.promise = pPipe;
6635
6709
 
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
6710
  //#endregion
6699
6711
  //#region src/util/random.ts
6700
6712
  /**
@@ -6704,6 +6716,7 @@ function proxy(initObject, initExtend, options) {
6704
6716
  * @example
6705
6717
  * ```ts
6706
6718
  * randomItem(['a', 'b', 'c']) // 'a' | 'b' | 'c'
6719
+ * ```
6707
6720
  */
6708
6721
  function randomItem(array) {
6709
6722
  return array[Math.floor(Math.random() * array.length)];
@@ -6716,6 +6729,7 @@ function randomItem(array) {
6716
6729
  * @example
6717
6730
  * ```ts
6718
6731
  * randomNumber(0, 100) // 0-100
6732
+ * ```
6719
6733
  */
6720
6734
  function randomNumber(min, max) {
6721
6735
  return Math.random() * (max - min) + min;
@@ -6731,6 +6745,7 @@ const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwy
6731
6745
  * randomString() // 10 characters long
6732
6746
  * randomString(20) // 20 characters long
6733
6747
  * randomString(20, 'abcdefghijklmnopqrstuvwxyz') // 20 characters long
6748
+ * ```
6734
6749
  */
6735
6750
  function randomString(size = 10, chars = urlAlphabet) {
6736
6751
  let id = "";
@@ -6804,6 +6819,7 @@ function numberish(value) {
6804
6819
  * ```ts
6805
6820
  * to(Promise.resolve('data')) // Promise<[null, 'data']>
6806
6821
  * to(Promise.reject(new Error('error'))) // Promise<[Error, undefined]>
6822
+ * ```
6807
6823
  */
6808
6824
  async function to(promise, error) {
6809
6825
  return (isFunction(promise) ? promise() : promise).then((data) => [null, data]).catch((err) => {
@@ -6823,6 +6839,7 @@ async function to(promise, error) {
6823
6839
  * ```ts
6824
6840
  * toArray(arrorOrItemOrUndefined) // item[] | undefined
6825
6841
  * toArray(arrayOrItemOrUndefined, true) // item[]
6842
+ * ```
6826
6843
  */
6827
6844
  function toArray(value, required = false) {
6828
6845
  if (!value) return required === false ? void 0 : [];
@@ -6891,6 +6908,7 @@ const riposte = select;
6891
6908
  * ```ts
6892
6909
  * unwrap({ name: 'John' }) // { name: 'John' }
6893
6910
  * unwrap(() => { return { name: 'John' } }) // { name: 'John' }
6911
+ * ```
6894
6912
  */
6895
6913
  function unwrap(value) {
6896
6914
  return typeof value === "function" ? value() : value;
@@ -6903,6 +6921,7 @@ function unwrap(value) {
6903
6921
  * @example
6904
6922
  * ```ts
6905
6923
  * whenever(value, (value) => { return 'value' }) // value
6924
+ * ```
6906
6925
  */
6907
6926
  function whenever(value, callback) {
6908
6927
  return value ? callback(value) : void 0;
@@ -7157,6 +7176,7 @@ const _reFullWs = /^\s*$/;
7157
7176
  * b()
7158
7177
  * }
7159
7178
  * `
7179
+ * ```
7160
7180
  */
7161
7181
  function unindent(str) {
7162
7182
  const lines = (typeof str === "string" ? str : str[0]).split("\n");
@@ -7208,6 +7228,7 @@ exports.find = find;
7208
7228
  exports.formatNumeric = formatNumeric;
7209
7229
  exports.formdataToObject = formdataToObject;
7210
7230
  exports.get = get;
7231
+ exports.ghost = ghost;
7211
7232
  exports.groupBy = groupBy;
7212
7233
  exports.gt = gt;
7213
7234
  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 };