@hairy/utils 1.27.0 → 1.29.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
@@ -9,13 +9,13 @@ var __export = (target, all) => {
9
9
  for (var name in all)
10
10
  __defProp(target, name, { get: all[name], enumerable: true });
11
11
  };
12
- var __copyProps = (to, from, except, desc) => {
12
+ var __copyProps = (to2, from, except, desc) => {
13
13
  if (from && typeof from === "object" || typeof from === "function") {
14
14
  for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ if (!__hasOwnProp.call(to2, key) && key !== except)
16
+ __defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
17
  }
18
- return to;
18
+ return to2;
19
19
  };
20
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
21
  // If the importer is in node compatibility mode or this is not an ESM
@@ -116,6 +116,7 @@ __export(index_exports, {
116
116
  riposte: () => riposte,
117
117
  sentenceCase: () => sentenceCase,
118
118
  snakeCase: () => snakeCase,
119
+ to: () => to,
119
120
  trainCase: () => trainCase,
120
121
  truncate: () => truncate_default,
121
122
  uniq: () => uniq_default,
@@ -3285,6 +3286,17 @@ function randomArray(array) {
3285
3286
  return array[Math.floor(Math.random() * array.length)];
3286
3287
  }
3287
3288
 
3289
+ // src/util/to.ts
3290
+ async function to(promise, error) {
3291
+ return (isFunction_default(promise) ? promise() : promise).then((data) => [null, data]).catch((err) => {
3292
+ if (error) {
3293
+ const parsedError = Object.assign({}, err, error);
3294
+ return [parsedError, void 0];
3295
+ }
3296
+ return [err, void 0];
3297
+ });
3298
+ }
3299
+
3288
3300
  // src/util/util.ts
3289
3301
  function arange(x1, x2, stp = 1, z = [], z0 = z.length) {
3290
3302
  if (!x2)
@@ -3394,6 +3406,7 @@ function whenever(value, callback) {
3394
3406
  riposte,
3395
3407
  sentenceCase,
3396
3408
  snakeCase,
3409
+ to,
3397
3410
  trainCase,
3398
3411
  truncate,
3399
3412
  uniq,
package/dist/index.d.ts CHANGED
@@ -116,12 +116,15 @@ type DeepMerge<F, S> = MergeInsertions<{
116
116
 
117
117
  type Awaitable<T> = T | PromiseLike<T>;
118
118
  type Arrayable<T> = T | T[];
119
- type Nullable<T> = T | null | undefined;
119
+ type Promisify<T> = Promise<Awaited<T>>;
120
120
  type ElementOf<T> = T extends (infer E)[] ? E : never;
121
+ type Nullable<T> = T | null | undefined;
121
122
  type Fn$1<T = void> = () => T;
122
123
  type AnyFn = (...args: any[]) => any;
123
124
  type PromiseFn = (...args: any[]) => Promise<any>;
124
- type Constructor<T = void> = new (...args: any[]) => T;
125
+ type IfAny<T, Y, N> = 0 extends 1 & T ? Y : N;
126
+ type IsAny<T> = IfAny<T, true, false>;
127
+ type ConstructorType<T = void> = new (...args: any[]) => T;
125
128
  type ArgumentsType<T> = T extends ((...args: infer A) => any) ? A : never;
126
129
  declare type PromiseType<P extends PromiseLike<any>> = P extends PromiseLike<infer T> ? T : never;
127
130
  type Option<L extends Key = 'label', V extends Key = 'value', C extends Key = 'children'> = {
@@ -459,9 +462,11 @@ declare namespace pipe {
459
462
  declare function randomNumer(min: number, max: number): number;
460
463
  declare function randomArray<T>(array: T[]): T;
461
464
 
465
+ declare function to<T, U = Error>(promise: Promise<T> | (() => Promise<T>), error?: object): Promise<[U, undefined] | [null, T]>;
466
+
462
467
  declare function arange(x1: number, x2?: number, stp?: number, z?: number[], z0?: number): number[];
463
468
  declare function riposte<T>(...args: [cond: boolean, value: T][]): T;
464
469
  declare function unwrap<T extends object>(value: T | (() => T)): T;
465
470
  declare function whenever<T, C extends (value: Exclude<T, null | undefined>) => any>(value: T, callback: C): ReturnType<C> | undefined;
466
471
 
467
- export { type AnyFn, type ArgumentsType, type Arrayable, type Awaitable, BIG_INTS, BigNum, type BooleanLike, type Constructor, type DecimalOptions, type DeepKeyof, type DeepMerge, type DeepPartial, type DeepReadonly, type DeepReplace, type DeepRequired, Deferred, type Delimiter, type Dimension, type DynamicObject, type ElementOf, type Fn$1 as Fn, type FormatGroupOptions, type FormatNumericOptions, type Key, type Looper, type MergeInsertions, type Noop, type Nullable, type NumberObject, type Numberish, type Numeric, type NumericObject, type Option, type PromiseFn, type PromiseType, type StringObject, type SymbolObject, type Typeof, arange, average, camelCase, capitalCase, compose, constantCase, cover, decimal, delay, dotCase, formToObject, formatNumeric, formatSize, formatUnit, getTypeof, gt, gte, integer, isAndroid, isBrowser, isChrome, isEdge, isFF, isFormData, isIE, isIE11, isIE9, isIOS, isMobile, isPhantomJS, isTruthy, isTypeof, isWeex, isWindow, jsonTryParse, kebabCase, loop, lt, lte, noCase, noop, numerfix, objectToForm, parseNumeric, pascalCase, pascalSnakeCase, pathCase, percentage, pipe, plus, randomArray, randomNumer, riposte, sentenceCase, snakeCase, trainCase, unwrap, whenever, zerofill, zeromove };
472
+ export { type AnyFn, type ArgumentsType, type Arrayable, type Awaitable, BIG_INTS, BigNum, type BooleanLike, type ConstructorType, type DecimalOptions, type DeepKeyof, type DeepMerge, type DeepPartial, type DeepReadonly, type DeepReplace, type DeepRequired, Deferred, type Delimiter, type Dimension, type DynamicObject, type ElementOf, type Fn$1 as Fn, type FormatGroupOptions, type FormatNumericOptions, type IfAny, type IsAny, type Key, type Looper, type MergeInsertions, type Noop, type Nullable, type NumberObject, type Numberish, type Numeric, type NumericObject, type Option, type PromiseFn, type PromiseType, type Promisify, type StringObject, type SymbolObject, type Typeof, arange, average, camelCase, capitalCase, compose, constantCase, cover, decimal, delay, dotCase, formToObject, formatNumeric, formatSize, formatUnit, getTypeof, gt, gte, integer, isAndroid, isBrowser, isChrome, isEdge, isFF, isFormData, isIE, isIE11, isIE9, isIOS, isMobile, isPhantomJS, isTruthy, isTypeof, isWeex, isWindow, jsonTryParse, kebabCase, loop, lt, lte, noCase, noop, numerfix, objectToForm, parseNumeric, pascalCase, pascalSnakeCase, pathCase, percentage, pipe, plus, randomArray, randomNumer, riposte, sentenceCase, snakeCase, to, trainCase, unwrap, whenever, zerofill, zeromove };
@@ -4499,6 +4499,17 @@
4499
4499
  return array[Math.floor(Math.random() * array.length)];
4500
4500
  }
4501
4501
 
4502
+ // src/util/to.ts
4503
+ async function to(promise, error) {
4504
+ return (isFunction_default(promise) ? promise() : promise).then((data) => [null, data]).catch((err) => {
4505
+ if (error) {
4506
+ const parsedError = Object.assign({}, err, error);
4507
+ return [parsedError, void 0];
4508
+ }
4509
+ return [err, void 0];
4510
+ });
4511
+ }
4512
+
4502
4513
  // src/util/util.ts
4503
4514
  function arange(x1, x2, stp = 1, z = [], z0 = z.length) {
4504
4515
  if (!x2)
package/dist/index.js CHANGED
@@ -3154,6 +3154,17 @@ function randomArray(array) {
3154
3154
  return array[Math.floor(Math.random() * array.length)];
3155
3155
  }
3156
3156
 
3157
+ // src/util/to.ts
3158
+ async function to(promise, error) {
3159
+ return (isFunction_default(promise) ? promise() : promise).then((data) => [null, data]).catch((err) => {
3160
+ if (error) {
3161
+ const parsedError = Object.assign({}, err, error);
3162
+ return [parsedError, void 0];
3163
+ }
3164
+ return [err, void 0];
3165
+ });
3166
+ }
3167
+
3157
3168
  // src/util/util.ts
3158
3169
  function arange(x1, x2, stp = 1, z = [], z0 = z.length) {
3159
3170
  if (!x2)
@@ -3262,6 +3273,7 @@ export {
3262
3273
  riposte,
3263
3274
  sentenceCase,
3264
3275
  snakeCase,
3276
+ to,
3265
3277
  trainCase,
3266
3278
  truncate_default as truncate,
3267
3279
  uniq_default as uniq,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hairy/utils",
3
3
  "type": "module",
4
- "version": "1.27.0",
4
+ "version": "1.29.0",
5
5
  "description": "Library for anywhere",
6
6
  "author": "Hairyf <wwu710632@gmail.com>",
7
7
  "license": "MIT",