@nemigo/helpers 1.6.3 → 1.6.4
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.d.ts +8 -2
- package/dist/index.js +5 -1
- package/dist/mutate.d.ts +2 -2
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AnyFunc } from "./types.js";
|
|
1
2
|
/**
|
|
2
3
|
* Преобразует число в строку, добавляя ведущие нули для достижения указанной длины
|
|
3
4
|
*
|
|
@@ -41,15 +42,20 @@ export declare const isSameType: <A = unknown>(a: A, b: unknown) => b is A;
|
|
|
41
42
|
* ```
|
|
42
43
|
*/
|
|
43
44
|
export declare const isPromise: <T>(value: unknown) => value is Promise<T>;
|
|
45
|
+
export type FuncValue<Value, CTX = null> = Value extends AnyFunc ? never : Value | ((ctx: CTX) => Value);
|
|
46
|
+
/**
|
|
47
|
+
* Использование значения или функции, возвращающей значение
|
|
48
|
+
*/
|
|
49
|
+
export declare const getFuncValue: <Value, CTX = null>(funcValue: FuncValue<Value, CTX>, ctx: CTX) => Value;
|
|
44
50
|
export type ConditionGuardValue = object | number | string | boolean | null;
|
|
45
|
-
export type ConditionGuardType<CTX> = ConditionGuardValue
|
|
51
|
+
export type ConditionGuardType<CTX> = FuncValue<ConditionGuardValue, CTX>;
|
|
46
52
|
/**
|
|
47
53
|
* Использование значения (или функции, возвращающей значение) и приведение его к булевому
|
|
48
54
|
*
|
|
49
55
|
* @param condition - Условие для проверки
|
|
50
56
|
* @param ctx - Контекст, передаваемый в функцию-условие
|
|
51
57
|
*/
|
|
52
|
-
export declare const useConditionGuard: <CTX>(condition:
|
|
58
|
+
export declare const useConditionGuard: <CTX>(condition: ConditionGuardValue, ctx: CTX) => boolean;
|
|
53
59
|
/**
|
|
54
60
|
* Создаёт новый объект и добавляет в него ключи и значения исходного в алфавитном порядке
|
|
55
61
|
*
|
package/dist/index.js
CHANGED
|
@@ -49,13 +49,17 @@ export const isSameType = (a, b) => Object.prototype.toString.call(a) === Object
|
|
|
49
49
|
* ```
|
|
50
50
|
*/
|
|
51
51
|
export const isPromise = (value) => value instanceof Promise || typeof value?.then === "function";
|
|
52
|
+
/**
|
|
53
|
+
* Использование значения или функции, возвращающей значение
|
|
54
|
+
*/
|
|
55
|
+
export const getFuncValue = (funcValue, ctx) => typeof funcValue === "function" ? funcValue(ctx) : funcValue;
|
|
52
56
|
/**
|
|
53
57
|
* Использование значения (или функции, возвращающей значение) и приведение его к булевому
|
|
54
58
|
*
|
|
55
59
|
* @param condition - Условие для проверки
|
|
56
60
|
* @param ctx - Контекст, передаваемый в функцию-условие
|
|
57
61
|
*/
|
|
58
|
-
export const useConditionGuard = (condition, ctx) =>
|
|
62
|
+
export const useConditionGuard = (condition, ctx) => !!getFuncValue(condition, ctx);
|
|
59
63
|
//...
|
|
60
64
|
/**
|
|
61
65
|
* Создаёт новый объект и добавляет в него ключи и значения исходного в алфавитном порядке
|
package/dist/mutate.d.ts
CHANGED
|
@@ -49,7 +49,7 @@ export declare const deepMutateArray: (source: unknown[], target: unknown[]) =>
|
|
|
49
49
|
/**
|
|
50
50
|
* Контекст для {@link inject}
|
|
51
51
|
*/
|
|
52
|
-
export interface
|
|
52
|
+
export interface InjectContext<O extends Record<K, AnyFunc>, K extends keyof O> {
|
|
53
53
|
self: O;
|
|
54
54
|
method: ThisFuncCopy<O, O[K]>;
|
|
55
55
|
args: Args<O[K]>;
|
|
@@ -67,4 +67,4 @@ export interface injectContext<O extends Record<K, AnyFunc>, K extends keyof O>
|
|
|
67
67
|
*
|
|
68
68
|
* @throws {TypeError} Если `self[key]` не является функцией
|
|
69
69
|
*/
|
|
70
|
-
export declare const inject: <O extends Record<K, AnyFunc>, K extends keyof O>(self: O, key: K, func: (ctx:
|
|
70
|
+
export declare const inject: <O extends Record<K, AnyFunc>, K extends keyof O>(self: O, key: K, func: (ctx: InjectContext<O, K>) => Return<O[K]>, dynamic?: boolean) => void;
|
package/dist/types.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export type Return<F extends (...args: any[]) => any> = ReturnType<F>;
|
|
|
12
12
|
* Любая функция, полезна для дженириков
|
|
13
13
|
*/
|
|
14
14
|
export type AnyFunc = (...args: any[]) => any;
|
|
15
|
+
export type NotFunc<T> = T extends AnyFunc ? never : T;
|
|
15
16
|
/**
|
|
16
17
|
* Производная функция от {@link AnyFunc}, полезна для дженириков
|
|
17
18
|
*/
|