inray 0.0.2 → 0.0.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/LICENSE.md +1 -0
- package/README.md +220 -36
- package/dist/async/abortable.d.ts +2 -2
- package/dist/async/abortable.d.ts.map +1 -1
- package/dist/async/abortable.js.map +1 -1
- package/dist/caching/mod.d.ts +2 -0
- package/dist/caching/mod.d.ts.map +1 -0
- package/dist/caching/mod.js +2 -0
- package/dist/caching/mod.js.map +1 -0
- package/dist/caching/src/cache.d.ts +89 -0
- package/dist/caching/src/cache.d.ts.map +1 -0
- package/dist/caching/src/cache.js +309 -0
- package/dist/caching/src/cache.js.map +1 -0
- package/dist/caching/src/hashing/cache.d.ts +92 -0
- package/dist/caching/src/hashing/cache.d.ts.map +1 -0
- package/dist/caching/src/hashing/cache.js +119 -0
- package/dist/caching/src/hashing/cache.js.map +1 -0
- package/dist/caching/src/hashing/hooks/eventified.d.ts +157 -0
- package/dist/caching/src/hashing/hooks/eventified.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/eventified.js +333 -0
- package/dist/caching/src/hashing/hooks/eventified.js.map +1 -0
- package/dist/caching/src/hashing/hooks/index.d.ts +199 -0
- package/dist/caching/src/hashing/hooks/index.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/index.js +383 -0
- package/dist/caching/src/hashing/hooks/index.js.map +1 -0
- package/dist/caching/src/hashing/hooks/types.d.ts +217 -0
- package/dist/caching/src/hashing/hooks/types.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/types.js +10 -0
- package/dist/caching/src/hashing/hooks/types.js.map +1 -0
- package/dist/caching/src/hashing/index.d.ts +236 -0
- package/dist/caching/src/hashing/index.d.ts.map +1 -0
- package/dist/caching/src/hashing/index.js +447 -0
- package/dist/caching/src/hashing/index.js.map +1 -0
- package/dist/caching/src/hashing/providers/crc.d.ts +15 -0
- package/dist/caching/src/hashing/providers/crc.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/crc.js +49 -0
- package/dist/caching/src/hashing/providers/crc.js.map +1 -0
- package/dist/caching/src/hashing/providers/crypto.d.ts +19 -0
- package/dist/caching/src/hashing/providers/crypto.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/crypto.js +28 -0
- package/dist/caching/src/hashing/providers/crypto.js.map +1 -0
- package/dist/caching/src/hashing/providers/djb2.d.ts +60 -0
- package/dist/caching/src/hashing/providers/djb2.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/djb2.js +92 -0
- package/dist/caching/src/hashing/providers/djb2.js.map +1 -0
- package/dist/caching/src/hashing/providers/fnv1.d.ts +33 -0
- package/dist/caching/src/hashing/providers/fnv1.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/fnv1.js +68 -0
- package/dist/caching/src/hashing/providers/fnv1.js.map +1 -0
- package/dist/caching/src/hashing/providers/murmur.d.ts +81 -0
- package/dist/caching/src/hashing/providers/murmur.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/murmur.js +173 -0
- package/dist/caching/src/hashing/providers/murmur.js.map +1 -0
- package/dist/caching/src/hashing/providers.d.ts +126 -0
- package/dist/caching/src/hashing/providers.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers.js +163 -0
- package/dist/caching/src/hashing/providers.js.map +1 -0
- package/dist/caching/src/hashing/types.d.ts +340 -0
- package/dist/caching/src/hashing/types.d.ts.map +1 -0
- package/dist/caching/src/hashing/types.js +10 -0
- package/dist/caching/src/hashing/types.js.map +1 -0
- package/dist/caching/src/keyValue/capabilities.d.ts +161 -0
- package/dist/caching/src/keyValue/capabilities.d.ts.map +1 -0
- package/dist/caching/src/keyValue/capabilities.js +334 -0
- package/dist/caching/src/keyValue/capabilities.js.map +1 -0
- package/dist/caching/src/keyValue/event-manager.d.ts +27 -0
- package/dist/caching/src/keyValue/event-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/event-manager.js +88 -0
- package/dist/caching/src/keyValue/event-manager.js.map +1 -0
- package/dist/caching/src/keyValue/generic-store.d.ts +243 -0
- package/dist/caching/src/keyValue/generic-store.d.ts.map +1 -0
- package/dist/caching/src/keyValue/generic-store.js +295 -0
- package/dist/caching/src/keyValue/generic-store.js.map +1 -0
- package/dist/caching/src/keyValue/hooks-manager.d.ts +21 -0
- package/dist/caching/src/keyValue/hooks-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/hooks-manager.js +59 -0
- package/dist/caching/src/keyValue/hooks-manager.js.map +1 -0
- package/dist/caching/src/keyValue/index.d.ts +334 -0
- package/dist/caching/src/keyValue/index.d.ts.map +1 -0
- package/dist/caching/src/keyValue/index.js +796 -0
- package/dist/caching/src/keyValue/index.js.map +1 -0
- package/dist/caching/src/keyValue/serialize/serialize.d.ts +12 -0
- package/dist/caching/src/keyValue/serialize/serialize.d.ts.map +1 -0
- package/dist/caching/src/keyValue/serialize/serialize.js +64 -0
- package/dist/caching/src/keyValue/serialize/serialize.js.map +1 -0
- package/dist/caching/src/keyValue/stats-manager.d.ts +27 -0
- package/dist/caching/src/keyValue/stats-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/stats-manager.js +64 -0
- package/dist/caching/src/keyValue/stats-manager.js.map +1 -0
- package/dist/caching/src/keyValue/types.d.ts +22 -0
- package/dist/caching/src/keyValue/types.d.ts.map +1 -0
- package/dist/caching/src/keyValue/types.js +11 -0
- package/dist/caching/src/keyValue/types.js.map +1 -0
- package/dist/caching/src/keyv-adapter.d.ts +40 -0
- package/dist/caching/src/keyv-adapter.d.ts.map +1 -0
- package/dist/caching/src/keyv-adapter.js +56 -0
- package/dist/caching/src/keyv-adapter.js.map +1 -0
- package/dist/caching/src/utils/cache-tags.d.ts +275 -0
- package/dist/caching/src/utils/cache-tags.d.ts.map +1 -0
- package/dist/caching/src/utils/cache-tags.js +407 -0
- package/dist/caching/src/utils/cache-tags.js.map +1 -0
- package/dist/caching/src/utils/cacheable-item-types.d.ts +35 -0
- package/dist/caching/src/utils/cacheable-item-types.d.ts.map +1 -0
- package/dist/caching/src/utils/cacheable-item-types.js +10 -0
- package/dist/caching/src/utils/cacheable-item-types.js.map +1 -0
- package/dist/caching/src/utils/coalesce-async.d.ts +29 -0
- package/dist/caching/src/utils/coalesce-async.d.ts.map +1 -0
- package/dist/caching/src/utils/coalesce-async.js +88 -0
- package/dist/caching/src/utils/coalesce-async.js.map +1 -0
- package/dist/caching/src/utils/hash.d.ts +55 -0
- package/dist/caching/src/utils/hash.d.ts.map +1 -0
- package/dist/caching/src/utils/hash.js +116 -0
- package/dist/caching/src/utils/hash.js.map +1 -0
- package/dist/caching/src/utils/index.d.ts +24 -0
- package/dist/caching/src/utils/index.d.ts.map +1 -0
- package/dist/caching/src/utils/index.js +21 -0
- package/dist/caching/src/utils/index.js.map +1 -0
- package/dist/caching/src/utils/is-keyv-instance.d.ts +10 -0
- package/dist/caching/src/utils/is-keyv-instance.d.ts.map +1 -0
- package/dist/caching/src/utils/is-keyv-instance.js +37 -0
- package/dist/caching/src/utils/is-keyv-instance.js.map +1 -0
- package/dist/caching/src/utils/is-object.d.ts +10 -0
- package/dist/caching/src/utils/is-object.d.ts.map +1 -0
- package/dist/caching/src/utils/is-object.js +13 -0
- package/dist/caching/src/utils/is-object.js.map +1 -0
- package/dist/caching/src/utils/less-than.d.ts +10 -0
- package/dist/caching/src/utils/less-than.d.ts.map +1 -0
- package/dist/caching/src/utils/less-than.js +13 -0
- package/dist/caching/src/utils/less-than.js.map +1 -0
- package/dist/caching/src/utils/memoize.d.ts +107 -0
- package/dist/caching/src/utils/memoize.d.ts.map +1 -0
- package/dist/caching/src/utils/memoize.js +201 -0
- package/dist/caching/src/utils/memoize.js.map +1 -0
- package/dist/caching/src/utils/mock-cacheable.d.ts +28 -0
- package/dist/caching/src/utils/mock-cacheable.d.ts.map +1 -0
- package/dist/caching/src/utils/mock-cacheable.js +87 -0
- package/dist/caching/src/utils/mock-cacheable.js.map +1 -0
- package/dist/caching/src/utils/run-if-fn.d.ts +12 -0
- package/dist/caching/src/utils/run-if-fn.d.ts.map +1 -0
- package/dist/caching/src/utils/run-if-fn.js +12 -0
- package/dist/caching/src/utils/run-if-fn.js.map +1 -0
- package/dist/caching/src/utils/shorthand-time.d.ts +27 -0
- package/dist/caching/src/utils/shorthand-time.d.ts.map +1 -0
- package/dist/caching/src/utils/shorthand-time.js +96 -0
- package/dist/caching/src/utils/shorthand-time.js.map +1 -0
- package/dist/caching/src/utils/sleep.d.ts +10 -0
- package/dist/caching/src/utils/sleep.d.ts.map +1 -0
- package/dist/caching/src/utils/sleep.js +11 -0
- package/dist/caching/src/utils/sleep.js.map +1 -0
- package/dist/caching/src/utils/stats.d.ts +354 -0
- package/dist/caching/src/utils/stats.d.ts.map +1 -0
- package/dist/caching/src/utils/stats.js +593 -0
- package/dist/caching/src/utils/stats.js.map +1 -0
- package/dist/caching/src/utils/ttl.d.ts +58 -0
- package/dist/caching/src/utils/ttl.d.ts.map +1 -0
- package/dist/caching/src/utils/ttl.js +77 -0
- package/dist/caching/src/utils/ttl.js.map +1 -0
- package/dist/logtape/logtape/level.d.ts +1 -2
- package/dist/logtape/logtape/level.d.ts.map +1 -1
- package/dist/logtape/logtape/level.js +1 -1
- package/dist/logtape/logtape/level.js.map +1 -1
- package/dist/logtape/logtape/mod.d.ts +1 -1
- package/dist/logtape/logtape/mod.d.ts.map +1 -1
- package/dist/logtape/logtape/mod.js +1 -1
- package/dist/logtape/logtape/mod.js.map +1 -1
- package/dist/utils/mod.d.ts +1 -1
- package/dist/utils/mod.d.ts.map +1 -1
- package/dist/utils/mod.js.map +1 -1
- package/dist/utils/validation/inRangeOfMaxInt32.d.ts +2 -0
- package/dist/utils/validation/inRangeOfMaxInt32.d.ts.map +1 -0
- package/dist/utils/validation/inRangeOfMaxInt32.js +4 -0
- package/dist/utils/validation/inRangeOfMaxInt32.js.map +1 -0
- package/dist/utils/validation/isEmail.d.ts +2 -0
- package/dist/utils/validation/isEmail.d.ts.map +1 -0
- package/dist/utils/validation/isEmail.js +7 -0
- package/dist/utils/validation/isEmail.js.map +1 -0
- package/dist/utils/validation/isEmptyObject.d.ts +9 -0
- package/dist/utils/validation/isEmptyObject.d.ts.map +1 -0
- package/dist/utils/validation/isEmptyObject.js +16 -0
- package/dist/utils/validation/isEmptyObject.js.map +1 -0
- package/dist/utils/validation/isNotEmptyString.d.ts +7 -0
- package/dist/utils/validation/isNotEmptyString.d.ts.map +1 -0
- package/dist/utils/validation/isNotEmptyString.js +17 -0
- package/dist/utils/validation/isNotEmptyString.js.map +1 -0
- package/dist/utils/validation/isPositiveInteger.d.ts +2 -0
- package/dist/utils/validation/isPositiveInteger.d.ts.map +1 -0
- package/dist/utils/validation/isPositiveInteger.js +7 -0
- package/dist/utils/validation/isPositiveInteger.js.map +1 -0
- package/dist/utils/validation/isUuid.d.ts +2 -0
- package/dist/utils/validation/isUuid.d.ts.map +1 -0
- package/dist/utils/validation/isUuid.js +7 -0
- package/dist/utils/validation/isUuid.js.map +1 -0
- package/dist/utils/validation/isUuidArray.d.ts +2 -0
- package/dist/utils/validation/isUuidArray.d.ts.map +1 -0
- package/dist/utils/validation/isUuidArray.js +7 -0
- package/dist/utils/validation/isUuidArray.js.map +1 -0
- package/dist/utils/validation/isValidFileName.d.ts +2 -0
- package/dist/utils/validation/isValidFileName.d.ts.map +1 -0
- package/dist/utils/validation/isValidFileName.js +33 -0
- package/dist/utils/validation/isValidFileName.js.map +1 -0
- package/dist/utils/validation/isValidUrlLike.d.ts +6 -0
- package/dist/utils/validation/isValidUrlLike.d.ts.map +1 -0
- package/dist/utils/validation/isValidUrlLike.js +8 -0
- package/dist/utils/validation/isValidUrlLike.js.map +1 -0
- package/dist/utils/validation/mod.d.ts +21 -0
- package/dist/utils/validation/mod.d.ts.map +1 -0
- package/dist/utils/validation/mod.js +21 -0
- package/dist/utils/validation/mod.js.map +1 -0
- package/dist/utils/validation/vEnvBoolean.d.ts +3 -0
- package/dist/utils/validation/vEnvBoolean.d.ts.map +1 -0
- package/dist/utils/validation/vEnvBoolean.js +5 -0
- package/dist/utils/validation/vEnvBoolean.js.map +1 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.d.ts +3 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.d.ts.map +1 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.js +5 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.js.map +1 -0
- package/dist/utils/validation/vEnvLogLevel.d.ts +4 -0
- package/dist/utils/validation/vEnvLogLevel.d.ts.map +1 -0
- package/dist/utils/validation/vEnvLogLevel.js +6 -0
- package/dist/utils/validation/vEnvLogLevel.js.map +1 -0
- package/dist/utils/validation/vFileName.d.ts +4 -0
- package/dist/utils/validation/vFileName.d.ts.map +1 -0
- package/dist/utils/validation/vFileName.js +21 -0
- package/dist/utils/validation/vFileName.js.map +1 -0
- package/dist/utils/validation/vISO8601DateTime.d.ts +5 -0
- package/dist/utils/validation/vISO8601DateTime.d.ts.map +1 -0
- package/dist/utils/validation/vISO8601DateTime.js +37 -0
- package/dist/utils/validation/vISO8601DateTime.js.map +1 -0
- package/dist/utils/validation/vLatinInput.d.ts +3 -0
- package/dist/utils/validation/vLatinInput.d.ts.map +1 -0
- package/dist/utils/validation/vLatinInput.js +3 -0
- package/dist/utils/validation/vLatinInput.js.map +1 -0
- package/dist/utils/validation/vOmniBoolean.d.ts +3 -0
- package/dist/utils/validation/vOmniBoolean.d.ts.map +1 -0
- package/dist/utils/validation/vOmniBoolean.js +10 -0
- package/dist/utils/validation/vOmniBoolean.js.map +1 -0
- package/dist/utils/validation/vQueryBoolean.d.ts +3 -0
- package/dist/utils/validation/vQueryBoolean.d.ts.map +1 -0
- package/dist/utils/validation/vQueryBoolean.js +7 -0
- package/dist/utils/validation/vQueryBoolean.js.map +1 -0
- package/dist/utils/validation/vQueryEmailArray.d.ts +9 -0
- package/dist/utils/validation/vQueryEmailArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryEmailArray.js +29 -0
- package/dist/utils/validation/vQueryEmailArray.js.map +1 -0
- package/dist/utils/validation/vQueryNumberArray.d.ts +10 -0
- package/dist/utils/validation/vQueryNumberArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryNumberArray.js +32 -0
- package/dist/utils/validation/vQueryNumberArray.js.map +1 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.d.ts +3 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.js +25 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.js.map +1 -0
- package/dist/utils/validation/vQueryUuidArray.d.ts +9 -0
- package/dist/utils/validation/vQueryUuidArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryUuidArray.js +27 -0
- package/dist/utils/validation/vQueryUuidArray.js.map +1 -0
- package/package.json +19 -3
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
import type { PerStoreTtl } from './ttl.ts';
|
|
10
|
+
export type CacheInstance = {
|
|
11
|
+
get: (key: string) => Promise<any | undefined>;
|
|
12
|
+
has: (key: string) => Promise<boolean>;
|
|
13
|
+
set: (key: string, value: any, ttl?: number | string | PerStoreTtl) => Promise<void>;
|
|
14
|
+
on: (event: string, listener: (...args: any[]) => void) => void;
|
|
15
|
+
emit: (event: string, ...args: any[]) => boolean;
|
|
16
|
+
};
|
|
17
|
+
export type CacheSyncInstance = {
|
|
18
|
+
get: (key: string) => any | undefined;
|
|
19
|
+
has: (key: string) => boolean;
|
|
20
|
+
set: (key: string, value: any, ttl?: number | string) => void;
|
|
21
|
+
on: (event: string, listener: (...args: any[]) => void) => void;
|
|
22
|
+
emit: (event: string, ...args: any[]) => boolean;
|
|
23
|
+
};
|
|
24
|
+
export type GetOrSetKey = string | ((options?: GetOrSetOptions) => string);
|
|
25
|
+
type GetOrSetThrowErrorsContext = 'function' | 'store';
|
|
26
|
+
export type GetOrSetFunctionOptions = {
|
|
27
|
+
ttl?: number | string;
|
|
28
|
+
cacheErrors?: boolean;
|
|
29
|
+
/** Whether or not to throw errors:
|
|
30
|
+
* - `false` (default) - do not throw any errors
|
|
31
|
+
* - `true` - throw any error
|
|
32
|
+
* - `"function"` - only throw errors that occur in the provided function / setter
|
|
33
|
+
* - `"store"` - only throw errors that occur when getting/setting the cache
|
|
34
|
+
*/
|
|
35
|
+
throwErrors?: boolean | GetOrSetThrowErrorsContext;
|
|
36
|
+
/**
|
|
37
|
+
* If set, this will bypass the instances nonBlocking setting for the get call.
|
|
38
|
+
* @type {boolean}
|
|
39
|
+
*/
|
|
40
|
+
nonBlocking?: boolean;
|
|
41
|
+
};
|
|
42
|
+
export type GetOrSetOptions = Omit<GetOrSetFunctionOptions, 'ttl'> & {
|
|
43
|
+
ttl?: number | string | PerStoreTtl;
|
|
44
|
+
cacheId?: string;
|
|
45
|
+
cache: CacheInstance;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Options for {@link getOrSetSync}, the synchronous counterpart to {@link GetOrSetOptions}. It
|
|
49
|
+
* targets a {@link CacheSyncInstance} and its `ttl` is always a single value (a number in
|
|
50
|
+
* milliseconds or a shorthand string), never a per-store object. The inherited `nonBlocking`
|
|
51
|
+
* option has no effect on a single, synchronous store.
|
|
52
|
+
*/
|
|
53
|
+
export type GetOrSetSyncOptions = GetOrSetFunctionOptions & {
|
|
54
|
+
cache: CacheSyncInstance;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* A cache key for {@link getOrSetSync}: either a string or a function that derives the key from the
|
|
58
|
+
* resolved {@link GetOrSetSyncOptions}.
|
|
59
|
+
*/
|
|
60
|
+
export type GetOrSetSyncKey = string | ((options?: GetOrSetSyncOptions) => string);
|
|
61
|
+
export type CreateWrapKey = (function_: AnyFunction, arguments_: any[], options?: WrapFunctionOptions) => string;
|
|
62
|
+
export type WrapFunctionOptions = {
|
|
63
|
+
ttl?: number | string;
|
|
64
|
+
keyPrefix?: string;
|
|
65
|
+
createKey?: CreateWrapKey;
|
|
66
|
+
cacheErrors?: boolean;
|
|
67
|
+
cacheId?: string;
|
|
68
|
+
serialize?: (object: any) => string;
|
|
69
|
+
};
|
|
70
|
+
export type WrapOptions = Omit<WrapFunctionOptions, 'ttl'> & {
|
|
71
|
+
ttl?: number | string | PerStoreTtl;
|
|
72
|
+
cache: CacheInstance;
|
|
73
|
+
serialize?: (object: any) => string;
|
|
74
|
+
};
|
|
75
|
+
export type WrapSyncOptions = WrapFunctionOptions & {
|
|
76
|
+
cache: CacheSyncInstance;
|
|
77
|
+
serialize?: (object: any) => string;
|
|
78
|
+
};
|
|
79
|
+
export type AnyFunction = (...arguments_: any[]) => any;
|
|
80
|
+
export declare function wrapSync<T>(function_: AnyFunction, options: WrapSyncOptions): AnyFunction;
|
|
81
|
+
export declare function getOrSet<T>(key: GetOrSetKey, function_: () => Promise<T>, options: GetOrSetOptions): Promise<T | undefined>;
|
|
82
|
+
/**
|
|
83
|
+
* Synchronous counterpart to {@link getOrSet}. Reads `key` from the cache and, on a miss, computes
|
|
84
|
+
* the value with `function_`, stores it, and returns it.
|
|
85
|
+
*
|
|
86
|
+
* Unlike {@link getOrSet} there is no request coalescing: synchronous code runs to completion
|
|
87
|
+
* without interleaving, so concurrent callers cannot stampede the setter the way they can with an
|
|
88
|
+
* async cache.
|
|
89
|
+
*
|
|
90
|
+
* Error handling mirrors {@link getOrSet}: errors are emitted on the cache's `error` event, can be
|
|
91
|
+
* cached when `cacheErrors` is set, and can be rethrown selectively via `throwErrors` (`true` for
|
|
92
|
+
* any error, `"function"` for setter errors, `"store"` for cache read/write errors).
|
|
93
|
+
*
|
|
94
|
+
* @param key - The cache key, or a function that derives it from the resolved options.
|
|
95
|
+
* @param function_ - The setter invoked on a cache miss to compute the value.
|
|
96
|
+
* @param options - The {@link GetOrSetSyncOptions} including the target synchronous cache.
|
|
97
|
+
* @returns The cached or freshly computed value, or `undefined`.
|
|
98
|
+
*/
|
|
99
|
+
export declare function getOrSetSync<T>(key: GetOrSetSyncKey, function_: () => T, options: GetOrSetSyncOptions): T | undefined;
|
|
100
|
+
export declare function wrap<T>(function_: AnyFunction, options: WrapOptions): AnyFunction;
|
|
101
|
+
export type CreateWrapKeyOptions = {
|
|
102
|
+
keyPrefix?: string;
|
|
103
|
+
serialize?: (object: any) => string;
|
|
104
|
+
};
|
|
105
|
+
export declare function createWrapKey(function_: AnyFunction, arguments_: any[], options?: CreateWrapKeyOptions): string;
|
|
106
|
+
export {};
|
|
107
|
+
//# sourceMappingURL=memoize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/memoize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
import { coalesceAsync } from "./coalesce-async.js";
|
|
10
|
+
import { hashSync } from "./hash.js";
|
|
11
|
+
export function wrapSync(function_, options) {
|
|
12
|
+
const { ttl, keyPrefix, cache, serialize } = options;
|
|
13
|
+
// biome-ignore lint/suspicious/noExplicitAny: type format
|
|
14
|
+
return (...arguments_) => {
|
|
15
|
+
let cacheKey = createWrapKey(function_, arguments_, {
|
|
16
|
+
keyPrefix,
|
|
17
|
+
serialize
|
|
18
|
+
});
|
|
19
|
+
if (options.createKey) {
|
|
20
|
+
cacheKey = options.createKey(function_, arguments_, options);
|
|
21
|
+
}
|
|
22
|
+
let value = cache.get(cacheKey);
|
|
23
|
+
if (value === undefined) {
|
|
24
|
+
try {
|
|
25
|
+
value = function_(...arguments_);
|
|
26
|
+
cache.set(cacheKey, value, ttl);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
cache.emit('error', error);
|
|
30
|
+
if (options.cacheErrors) {
|
|
31
|
+
cache.set(cacheKey, error, ttl);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export async function getOrSet(key, function_, options) {
|
|
39
|
+
const keyString = typeof key === 'function' ? key(options) : key;
|
|
40
|
+
let value;
|
|
41
|
+
try {
|
|
42
|
+
value = await options.cache.get(keyString);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
options.cache.emit('error', error);
|
|
46
|
+
if (options.throwErrors === true || options.throwErrors === 'store') {
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (value === undefined) {
|
|
51
|
+
const cacheId = options.cacheId ?? 'default';
|
|
52
|
+
const coalesceKey = `${cacheId}::${keyString}`;
|
|
53
|
+
value = await coalesceAsync(coalesceKey, async () => {
|
|
54
|
+
let result;
|
|
55
|
+
try {
|
|
56
|
+
// try to do the logic passed in as the setter
|
|
57
|
+
try {
|
|
58
|
+
result = await function_();
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
throw new ErrorEnvelope(error, 'function');
|
|
62
|
+
}
|
|
63
|
+
// try to write the result to the cache
|
|
64
|
+
try {
|
|
65
|
+
await options.cache.set(keyString, result, options.ttl);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
throw new ErrorEnvelope(error, 'store');
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
catch (caught) {
|
|
73
|
+
const errorType = caught instanceof ErrorEnvelope
|
|
74
|
+
? caught.context
|
|
75
|
+
: /* c8 ignore next 1 */
|
|
76
|
+
undefined;
|
|
77
|
+
const error = caught instanceof ErrorEnvelope ? caught.error : caught;
|
|
78
|
+
options.cache.emit('error', error);
|
|
79
|
+
// Only cache errors that originated in the value function — a failed store write has
|
|
80
|
+
// no error worth caching and the store is already unhealthy. Wrapping the write also
|
|
81
|
+
// keeps a second failure from escaping as an uncaught rejection that bypasses the
|
|
82
|
+
// throwErrors handling below.
|
|
83
|
+
if (options.cacheErrors && errorType === 'function') {
|
|
84
|
+
try {
|
|
85
|
+
await options.cache.set(keyString, error, options.ttl);
|
|
86
|
+
}
|
|
87
|
+
catch (storeError) {
|
|
88
|
+
options.cache.emit('error', storeError);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (options.throwErrors === true || options.throwErrors === errorType) {
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return value;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Synchronous counterpart to {@link getOrSet}. Reads `key` from the cache and, on a miss, computes
|
|
102
|
+
* the value with `function_`, stores it, and returns it.
|
|
103
|
+
*
|
|
104
|
+
* Unlike {@link getOrSet} there is no request coalescing: synchronous code runs to completion
|
|
105
|
+
* without interleaving, so concurrent callers cannot stampede the setter the way they can with an
|
|
106
|
+
* async cache.
|
|
107
|
+
*
|
|
108
|
+
* Error handling mirrors {@link getOrSet}: errors are emitted on the cache's `error` event, can be
|
|
109
|
+
* cached when `cacheErrors` is set, and can be rethrown selectively via `throwErrors` (`true` for
|
|
110
|
+
* any error, `"function"` for setter errors, `"store"` for cache read/write errors).
|
|
111
|
+
*
|
|
112
|
+
* @param key - The cache key, or a function that derives it from the resolved options.
|
|
113
|
+
* @param function_ - The setter invoked on a cache miss to compute the value.
|
|
114
|
+
* @param options - The {@link GetOrSetSyncOptions} including the target synchronous cache.
|
|
115
|
+
* @returns The cached or freshly computed value, or `undefined`.
|
|
116
|
+
*/
|
|
117
|
+
export function getOrSetSync(key, function_, options) {
|
|
118
|
+
const keyString = typeof key === 'function' ? key(options) : key;
|
|
119
|
+
let value;
|
|
120
|
+
try {
|
|
121
|
+
value = options.cache.get(keyString);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
options.cache.emit('error', error);
|
|
125
|
+
if (options.throwErrors === true || options.throwErrors === 'store') {
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (value === undefined) {
|
|
130
|
+
try {
|
|
131
|
+
// try to do the logic passed in as the setter
|
|
132
|
+
try {
|
|
133
|
+
value = function_();
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
throw new ErrorEnvelope(error, 'function');
|
|
137
|
+
}
|
|
138
|
+
// try to write the result to the cache
|
|
139
|
+
try {
|
|
140
|
+
options.cache.set(keyString, value, options.ttl);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
throw new ErrorEnvelope(error, 'store');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (caught) {
|
|
147
|
+
const errorType = caught instanceof ErrorEnvelope
|
|
148
|
+
? caught.context
|
|
149
|
+
: /* c8 ignore next 1 */
|
|
150
|
+
undefined;
|
|
151
|
+
const error = caught instanceof ErrorEnvelope ? caught.error : caught;
|
|
152
|
+
options.cache.emit('error', error);
|
|
153
|
+
// Only cache errors that originated in the value function — a failed store write has no
|
|
154
|
+
// error worth caching and the store is already unhealthy. Wrapping the write also keeps a
|
|
155
|
+
// second failure from escaping as an uncaught throw that bypasses the throwErrors handling
|
|
156
|
+
// below.
|
|
157
|
+
if (options.cacheErrors && errorType === 'function') {
|
|
158
|
+
try {
|
|
159
|
+
options.cache.set(keyString, error, options.ttl);
|
|
160
|
+
}
|
|
161
|
+
catch (storeError) {
|
|
162
|
+
options.cache.emit('error', storeError);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (options.throwErrors === true || options.throwErrors === errorType) {
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return value;
|
|
171
|
+
}
|
|
172
|
+
export function wrap(function_, options) {
|
|
173
|
+
const { keyPrefix, serialize } = options;
|
|
174
|
+
return async (...arguments_) => {
|
|
175
|
+
let cacheKey = createWrapKey(function_, arguments_, {
|
|
176
|
+
keyPrefix,
|
|
177
|
+
serialize
|
|
178
|
+
});
|
|
179
|
+
if (options.createKey) {
|
|
180
|
+
// @ts-ignore original library same
|
|
181
|
+
cacheKey = options.createKey(function_, arguments_, options);
|
|
182
|
+
}
|
|
183
|
+
return getOrSet(cacheKey, async () => function_(...arguments_), options);
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
export function createWrapKey(function_, arguments_, options) {
|
|
187
|
+
const { keyPrefix, serialize } = options || {};
|
|
188
|
+
if (!keyPrefix) {
|
|
189
|
+
return `${function_.name}::${hashSync(arguments_, { serialize })}`;
|
|
190
|
+
}
|
|
191
|
+
return `${keyPrefix}::${function_.name}::${hashSync(arguments_, { serialize })}`;
|
|
192
|
+
}
|
|
193
|
+
class ErrorEnvelope {
|
|
194
|
+
error;
|
|
195
|
+
context;
|
|
196
|
+
constructor(error, context) {
|
|
197
|
+
this.error = error;
|
|
198
|
+
this.context = context;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=memoize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/memoize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
import type { CacheInstance, CacheSyncInstance } from './memoize.ts';
|
|
10
|
+
export declare class MockCacheable implements CacheInstance {
|
|
11
|
+
private readonly cache;
|
|
12
|
+
private readonly listeners;
|
|
13
|
+
get(key: string): Promise<any | undefined>;
|
|
14
|
+
has(key: string): Promise<boolean>;
|
|
15
|
+
set(key: string, value: any, ttl?: number | string): Promise<void>;
|
|
16
|
+
on(event: string, listener: (...args: any[]) => void): void;
|
|
17
|
+
emit(event: string, ...args: any[]): boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare class MockCacheableMemory implements CacheSyncInstance {
|
|
20
|
+
private readonly cache;
|
|
21
|
+
private readonly listeners;
|
|
22
|
+
get(key: string): any | undefined;
|
|
23
|
+
has(key: string): boolean;
|
|
24
|
+
set(key: string, value: any, ttl?: number | string): void;
|
|
25
|
+
on(event: string, listener: (...args: any[]) => void): void;
|
|
26
|
+
emit(event: string, ...args: any[]): boolean;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=mock-cacheable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-cacheable.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/mock-cacheable.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAGL,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGrE,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;IAE3E,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAU1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAM3D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;CAU7C;AAED,qBAAa,mBAAoB,YAAW,iBAAiB;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;IAEjF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAUjC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYzD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAK3D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;CAU7C"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
import { shorthandToMilliseconds } from "./shorthand-time.js";
|
|
10
|
+
export class MockCacheable {
|
|
11
|
+
cache = new Map();
|
|
12
|
+
listeners = {};
|
|
13
|
+
async get(key) {
|
|
14
|
+
const item = this.cache.get(key);
|
|
15
|
+
if (item?.expires && Date.now() > item.expires) {
|
|
16
|
+
this.cache.delete(key);
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
return item?.value;
|
|
20
|
+
}
|
|
21
|
+
async has(key) {
|
|
22
|
+
return (await this.get(key)) !== undefined;
|
|
23
|
+
}
|
|
24
|
+
// @ts-ignore original library same
|
|
25
|
+
async set(key, value, ttl) {
|
|
26
|
+
let expires;
|
|
27
|
+
if (ttl) {
|
|
28
|
+
const ttlMs = shorthandToMilliseconds(ttl);
|
|
29
|
+
if (ttlMs && ttlMs > 0) {
|
|
30
|
+
expires = Date.now() + ttlMs;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
this.cache.set(key, { key, value, expires });
|
|
34
|
+
}
|
|
35
|
+
on(event, listener) {
|
|
36
|
+
this.listeners[event] ||= [];
|
|
37
|
+
this.listeners[event].push(listener);
|
|
38
|
+
}
|
|
39
|
+
emit(event, ...args) {
|
|
40
|
+
const listeners = this.listeners[event];
|
|
41
|
+
if (listeners) {
|
|
42
|
+
for (const listener of listeners) {
|
|
43
|
+
listener(...args);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export class MockCacheableMemory {
|
|
50
|
+
cache = new Map();
|
|
51
|
+
listeners = {};
|
|
52
|
+
get(key) {
|
|
53
|
+
const result = this.cache.get(key);
|
|
54
|
+
if (result?.expires && Date.now() > result.expires) {
|
|
55
|
+
this.cache.delete(key);
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
return result?.value;
|
|
59
|
+
}
|
|
60
|
+
has(key) {
|
|
61
|
+
return this.get(key) !== undefined;
|
|
62
|
+
}
|
|
63
|
+
set(key, value, ttl) {
|
|
64
|
+
let expires;
|
|
65
|
+
if (ttl) {
|
|
66
|
+
const ttlMs = shorthandToMilliseconds(ttl);
|
|
67
|
+
if (ttlMs && ttlMs > 0) {
|
|
68
|
+
expires = Date.now() + ttlMs;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
this.cache.set(key, { key, value, expires });
|
|
72
|
+
}
|
|
73
|
+
on(event, listener) {
|
|
74
|
+
this.listeners[event] ||= [];
|
|
75
|
+
this.listeners[event].push(listener);
|
|
76
|
+
}
|
|
77
|
+
emit(event, ...args) {
|
|
78
|
+
const listeners = this.listeners[event];
|
|
79
|
+
if (listeners) {
|
|
80
|
+
for (const listener of listeners) {
|
|
81
|
+
listener(...args);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=mock-cacheable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-cacheable.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/mock-cacheable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
type Function_<P, T> = (...arguments_: P[]) => T;
|
|
10
|
+
export declare function runIfFn<T, P>(valueOrFunction: T | Function_<P, T>, ...arguments_: P[]): T;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=run-if-fn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-if-fn.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/run-if-fn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAGL,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAEjD,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAEzF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
export function runIfFn(valueOrFunction, ...arguments_) {
|
|
10
|
+
return typeof valueOrFunction === 'function' ? valueOrFunction(...arguments_) : valueOrFunction;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=run-if-fn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-if-fn.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/run-if-fn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAKL,MAAM,UAAU,OAAO,CAAO,eAAoC,EAAE,GAAG,UAAe;IACpF,OAAO,OAAO,eAAe,KAAK,UAAU,CAAC,CAAC,CAAE,eAAmC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;AACvH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/**
|
|
10
|
+
* Converts a shorthand time string or number into milliseconds.
|
|
11
|
+
* The shorthand can be a string like '1s', '2m', '3h', '4d', or a number representing milliseconds.
|
|
12
|
+
* If the input is undefined, it returns undefined.
|
|
13
|
+
* If the input is a string that does not match the expected format, it throws an error.
|
|
14
|
+
* @param shorthand - A shorthand time string or number representing milliseconds.
|
|
15
|
+
* @returns The equivalent time in milliseconds or undefined.
|
|
16
|
+
*/
|
|
17
|
+
export declare const shorthandToMilliseconds: (shorthand?: string | number) => number | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Converts a shorthand time string or number into a timestamp.
|
|
20
|
+
* If the shorthand is undefined, it returns the current date's timestamp.
|
|
21
|
+
* If the shorthand is a valid time format, it adds that duration to the current date's timestamp.
|
|
22
|
+
* @param shorthand - A shorthand time string or number representing milliseconds.
|
|
23
|
+
* @param fromDate - An optional Date object to calculate from. Defaults to the current date if not provided.
|
|
24
|
+
* @returns The timestamp in milliseconds since epoch.
|
|
25
|
+
*/
|
|
26
|
+
export declare const shorthandToTime: (shorthand?: string | number, fromDate?: Date) => number;
|
|
27
|
+
//# sourceMappingURL=shorthand-time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shorthand-time.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/shorthand-time.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,GAAG,MAAM,KAAG,MAAM,GAAG,SA0E9E,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,GAAG,MAAM,EAAE,WAAW,IAAI,KAAG,MAS9E,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/**
|
|
10
|
+
* Converts a shorthand time string or number into milliseconds.
|
|
11
|
+
* The shorthand can be a string like '1s', '2m', '3h', '4d', or a number representing milliseconds.
|
|
12
|
+
* If the input is undefined, it returns undefined.
|
|
13
|
+
* If the input is a string that does not match the expected format, it throws an error.
|
|
14
|
+
* @param shorthand - A shorthand time string or number representing milliseconds.
|
|
15
|
+
* @returns The equivalent time in milliseconds or undefined.
|
|
16
|
+
*/
|
|
17
|
+
export const shorthandToMilliseconds = (shorthand) => {
|
|
18
|
+
let milliseconds;
|
|
19
|
+
if (shorthand === undefined) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
if (typeof shorthand === 'number') {
|
|
23
|
+
milliseconds = shorthand;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// Verify type safety before converting to string
|
|
27
|
+
if (typeof shorthand !== 'string') {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
// convert it to string
|
|
31
|
+
shorthand = shorthand.trim();
|
|
32
|
+
// Check if the string is purely numeric
|
|
33
|
+
if (Number.isNaN(Number(shorthand))) {
|
|
34
|
+
// Use a case-insensitive regex that supports decimals and 'ms' unit
|
|
35
|
+
const match = /^([\d.]+)\s*(ms|s|m|h|hr|d)$/i.exec(shorthand);
|
|
36
|
+
if (!match) {
|
|
37
|
+
throw new Error(`Unsupported time format: "${shorthand}". Use 'ms', 's', 'm', 'h', 'hr', or 'd'.`);
|
|
38
|
+
}
|
|
39
|
+
const [, value, unit] = match;
|
|
40
|
+
const numericValue = Number.parseFloat(value);
|
|
41
|
+
const unitLower = unit.toLowerCase();
|
|
42
|
+
switch (unitLower) {
|
|
43
|
+
case 'ms': {
|
|
44
|
+
milliseconds = numericValue;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case 's': {
|
|
48
|
+
milliseconds = numericValue * 1000;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
case 'm': {
|
|
52
|
+
milliseconds = numericValue * 1000 * 60;
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
case 'h': {
|
|
56
|
+
milliseconds = numericValue * 1000 * 60 * 60;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
case 'hr': {
|
|
60
|
+
milliseconds = numericValue * 1000 * 60 * 60;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
case 'd': {
|
|
64
|
+
milliseconds = numericValue * 1000 * 60 * 60 * 24;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
/* v8 ignore next -- @preserve */
|
|
68
|
+
default: {
|
|
69
|
+
milliseconds = Number(shorthand);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/* v8 ignore next -- @preserve */
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
milliseconds = Number(shorthand);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return milliseconds;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Converts a shorthand time string or number into a timestamp.
|
|
82
|
+
* If the shorthand is undefined, it returns the current date's timestamp.
|
|
83
|
+
* If the shorthand is a valid time format, it adds that duration to the current date's timestamp.
|
|
84
|
+
* @param shorthand - A shorthand time string or number representing milliseconds.
|
|
85
|
+
* @param fromDate - An optional Date object to calculate from. Defaults to the current date if not provided.
|
|
86
|
+
* @returns The timestamp in milliseconds since epoch.
|
|
87
|
+
*/
|
|
88
|
+
export const shorthandToTime = (shorthand, fromDate) => {
|
|
89
|
+
fromDate ??= new Date();
|
|
90
|
+
const milliseconds = shorthandToMilliseconds(shorthand);
|
|
91
|
+
if (milliseconds === undefined) {
|
|
92
|
+
return fromDate.getTime();
|
|
93
|
+
}
|
|
94
|
+
return fromDate.getTime() + milliseconds;
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=shorthand-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shorthand-time.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/shorthand-time.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,SAA2B,EAAsB,EAAE;IACzF,IAAI,YAAoB,CAAC;IAEzB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,YAAY,GAAG,SAAS,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,iDAAiD;QACjD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,uBAAuB;QACvB,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAE7B,wCAAwC;QACxC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACpC,oEAAoE;YACpE,MAAM,KAAK,GAAG,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE9D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,2CAA2C,CAAC,CAAC;YACrG,CAAC;YAED,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;YAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAErC,QAAQ,SAAS,EAAE,CAAC;gBAClB,KAAK,IAAI,CAAC,CAAC,CAAC;oBACV,YAAY,GAAG,YAAY,CAAC;oBAC5B,MAAM;gBACR,CAAC;gBAED,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC;oBACnC,MAAM;gBACR,CAAC;gBAED,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,YAAY,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;oBACxC,MAAM;gBACR,CAAC;gBAED,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,YAAY,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC7C,MAAM;gBACR,CAAC;gBAED,KAAK,IAAI,CAAC,CAAC,CAAC;oBACV,YAAY,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC7C,MAAM;gBACR,CAAC;gBAED,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,YAAY,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAClD,MAAM;gBACR,CAAC;gBAED,iCAAiC;gBACjC,OAAO,CAAC,CAAC,CAAC;oBACR,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,iCAAiC;QACnC,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAA2B,EAAE,QAAe,EAAU,EAAE;IACtF,QAAQ,KAAK,IAAI,IAAI,EAAE,CAAC;IAExB,MAAM,YAAY,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC;AAC3C,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
10
|
+
//# sourceMappingURL=sleep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/sleep.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL,eAAO,MAAM,KAAK,GAAU,IAAI,MAAM,qBAAsD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
// TODO SDK
|
|
10
|
+
export const sleep = async (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
11
|
+
//# sourceMappingURL=sleep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/sleep.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,WAAW;AAEX,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC"}
|