modern-ts 0.8.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/LICENSE +201 -0
- package/README.md +223 -0
- package/README.zh-CN.md +223 -0
- package/dist/chunks/Errors-BWEYu-AB.cjs +2 -0
- package/dist/chunks/Errors-BWEYu-AB.cjs.map +1 -0
- package/dist/chunks/Errors-DwUAvFIF.mjs +63 -0
- package/dist/chunks/Errors-DwUAvFIF.mjs.map +1 -0
- package/dist/chunks/Math-CGEH1ClN.mjs +68 -0
- package/dist/chunks/Math-CGEH1ClN.mjs.map +1 -0
- package/dist/chunks/Math-CWZVxSF-.cjs +2 -0
- package/dist/chunks/Math-CWZVxSF-.cjs.map +1 -0
- package/dist/chunks/base-B9k8Lqvf.mjs +56 -0
- package/dist/chunks/base-B9k8Lqvf.mjs.map +1 -0
- package/dist/chunks/base-BTXL1y_I.cjs +2 -0
- package/dist/chunks/base-BTXL1y_I.cjs.map +1 -0
- package/dist/chunks/base-BpECeKwU.mjs +19 -0
- package/dist/chunks/base-BpECeKwU.mjs.map +1 -0
- package/dist/chunks/base-BvHqpP_s.cjs +2 -0
- package/dist/chunks/base-BvHqpP_s.cjs.map +1 -0
- package/dist/chunks/base-K-RHLZ-S.mjs +46 -0
- package/dist/chunks/base-K-RHLZ-S.mjs.map +1 -0
- package/dist/chunks/base-r6kn0B0D.cjs +2 -0
- package/dist/chunks/base-r6kn0B0D.cjs.map +1 -0
- package/dist/chunks/combine-async-DcG-3p8i.cjs +2 -0
- package/dist/chunks/combine-async-DcG-3p8i.cjs.map +1 -0
- package/dist/chunks/combine-async-Dcg4ya1R.mjs +236 -0
- package/dist/chunks/combine-async-Dcg4ya1R.mjs.map +1 -0
- package/dist/chunks/delay-CG3cD7bk.cjs +2 -0
- package/dist/chunks/delay-CG3cD7bk.cjs.map +1 -0
- package/dist/chunks/delay-CKIXpP71.mjs +32 -0
- package/dist/chunks/delay-CKIXpP71.mjs.map +1 -0
- package/dist/chunks/helper-BVabbpmX.mjs +165 -0
- package/dist/chunks/helper-BVabbpmX.mjs.map +1 -0
- package/dist/chunks/helper-tsqZMRHW.cjs +3 -0
- package/dist/chunks/helper-tsqZMRHW.cjs.map +1 -0
- package/dist/chunks/local-8JVtLN0O.mjs +10 -0
- package/dist/chunks/local-8JVtLN0O.mjs.map +1 -0
- package/dist/chunks/local-Da4yU-nE.cjs +2 -0
- package/dist/chunks/local-Da4yU-nE.cjs.map +1 -0
- package/dist/chunks/types-B7X_LBjM.cjs +2 -0
- package/dist/chunks/types-B7X_LBjM.cjs.map +1 -0
- package/dist/chunks/types-DE2SnSbz.mjs +5 -0
- package/dist/chunks/types-DE2SnSbz.mjs.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.mjs +759 -0
- package/dist/index.mjs.map +1 -0
- package/dist/subpath/Arr.cjs +2 -0
- package/dist/subpath/Arr.cjs.map +1 -0
- package/dist/subpath/Arr.mjs +539 -0
- package/dist/subpath/Arr.mjs.map +1 -0
- package/dist/subpath/Concurrent.cjs +15 -0
- package/dist/subpath/Concurrent.cjs.map +1 -0
- package/dist/subpath/Concurrent.mjs +4044 -0
- package/dist/subpath/Concurrent.mjs.map +1 -0
- package/dist/subpath/FetchQ.cjs +2 -0
- package/dist/subpath/FetchQ.cjs.map +1 -0
- package/dist/subpath/FetchQ.mjs +519 -0
- package/dist/subpath/FetchQ.mjs.map +1 -0
- package/dist/subpath/Fit.cjs +2 -0
- package/dist/subpath/Fit.cjs.map +1 -0
- package/dist/subpath/Fit.mjs +914 -0
- package/dist/subpath/Fit.mjs.map +1 -0
- package/dist/subpath/Lazy.cjs +2 -0
- package/dist/subpath/Lazy.cjs.map +1 -0
- package/dist/subpath/Lazy.mjs +72 -0
- package/dist/subpath/Lazy.mjs.map +1 -0
- package/dist/subpath/Maps.cjs +2 -0
- package/dist/subpath/Maps.cjs.map +1 -0
- package/dist/subpath/Maps.mjs +123 -0
- package/dist/subpath/Maps.mjs.map +1 -0
- package/dist/subpath/Maybe.cjs +2 -0
- package/dist/subpath/Maybe.cjs.map +1 -0
- package/dist/subpath/Maybe.mjs +329 -0
- package/dist/subpath/Maybe.mjs.map +1 -0
- package/dist/subpath/Reactive.cjs +2 -0
- package/dist/subpath/Reactive.cjs.map +1 -0
- package/dist/subpath/Reactive.mjs +1204 -0
- package/dist/subpath/Reactive.mjs.map +1 -0
- package/dist/subpath/Reader.cjs +2 -0
- package/dist/subpath/Reader.cjs.map +1 -0
- package/dist/subpath/Reader.mjs +75 -0
- package/dist/subpath/Reader.mjs.map +1 -0
- package/dist/subpath/ReaderT.cjs +2 -0
- package/dist/subpath/ReaderT.cjs.map +1 -0
- package/dist/subpath/ReaderT.mjs +148 -0
- package/dist/subpath/ReaderT.mjs.map +1 -0
- package/dist/subpath/Resource.cjs +2 -0
- package/dist/subpath/Resource.cjs.map +1 -0
- package/dist/subpath/Resource.mjs +150 -0
- package/dist/subpath/Resource.mjs.map +1 -0
- package/dist/subpath/Result.cjs +2 -0
- package/dist/subpath/Result.cjs.map +1 -0
- package/dist/subpath/Result.mjs +337 -0
- package/dist/subpath/Result.mjs.map +1 -0
- package/dist/subpath/Sets.cjs +2 -0
- package/dist/subpath/Sets.cjs.map +1 -0
- package/dist/subpath/Sets.mjs +92 -0
- package/dist/subpath/Sets.mjs.map +1 -0
- package/dist/subpath/Str.cjs +2 -0
- package/dist/subpath/Str.cjs.map +1 -0
- package/dist/subpath/Str.mjs +114 -0
- package/dist/subpath/Str.mjs.map +1 -0
- package/dist/subpath/TxScope.cjs +2 -0
- package/dist/subpath/TxScope.cjs.map +1 -0
- package/dist/subpath/TxScope.mjs +138 -0
- package/dist/subpath/TxScope.mjs.map +1 -0
- package/dist/subpath/TypeTool.cjs +2 -0
- package/dist/subpath/TypeTool.cjs.map +1 -0
- package/dist/subpath/TypeTool.mjs +9 -0
- package/dist/subpath/TypeTool.mjs.map +1 -0
- package/dist/subpath/Utils.cjs +2 -0
- package/dist/subpath/Utils.cjs.map +1 -0
- package/dist/subpath/Utils.mjs +835 -0
- package/dist/subpath/Utils.mjs.map +1 -0
- package/dist/subpath/VirtualTime.cjs +2 -0
- package/dist/subpath/VirtualTime.cjs.map +1 -0
- package/dist/subpath/VirtualTime.mjs +1186 -0
- package/dist/subpath/VirtualTime.mjs.map +1 -0
- package/dist/types/Arr.d.ts +2 -0
- package/dist/types/Concurrent/Lock/condition_variable.d.ts +138 -0
- package/dist/types/Concurrent/Lock/mutex.d.ts +185 -0
- package/dist/types/Concurrent/Lock/rwlock.d.ts +253 -0
- package/dist/types/Concurrent/Lock/semaphore.d.ts +208 -0
- package/dist/types/Concurrent/Valve/__export__.d.ts +5 -0
- package/dist/types/Concurrent/Valve/circuit-breaker.d.ts +146 -0
- package/dist/types/Concurrent/Valve/leaky-bucket.d.ts +115 -0
- package/dist/types/Concurrent/Valve/sliding-window.d.ts +91 -0
- package/dist/types/Concurrent/Valve/token-bucket.d.ts +68 -0
- package/dist/types/Concurrent/__export__.d.ts +15 -0
- package/dist/types/Concurrent/barrier.d.ts +255 -0
- package/dist/types/Concurrent/channel.d.ts +239 -0
- package/dist/types/Concurrent/delay.d.ts +42 -0
- package/dist/types/Concurrent/ext/map.d.ts +82 -0
- package/dist/types/Concurrent/ext/other.d.ts +113 -0
- package/dist/types/Concurrent/ext/race.d.ts +31 -0
- package/dist/types/Concurrent/ext/some.d.ts +64 -0
- package/dist/types/Concurrent/limiter.d.ts +131 -0
- package/dist/types/Concurrent/scheduler.d.ts +171 -0
- package/dist/types/Concurrent/task-scope.d.ts +282 -0
- package/dist/types/Concurrent.d.ts +2 -0
- package/dist/types/Errors.d.ts +66 -0
- package/dist/types/FetchQ.d.ts +2 -0
- package/dist/types/Fit/__export__.d.ts +5 -0
- package/dist/types/Fit/base.d.ts +325 -0
- package/dist/types/Fit/parser.d.ts +110 -0
- package/dist/types/Fit/standard-schema.d.ts +127 -0
- package/dist/types/Fit/sugar.d.ts +274 -0
- package/dist/types/Fit/tool.d.ts +585 -0
- package/dist/types/Fit.d.ts +2 -0
- package/dist/types/Lazy.d.ts +2 -0
- package/dist/types/Maps.d.ts +2 -0
- package/dist/types/Maybe/__export__.d.ts +6 -0
- package/dist/types/Maybe/base.d.ts +62 -0
- package/dist/types/Maybe/consumers-async.d.ts +58 -0
- package/dist/types/Maybe/consumers.d.ts +63 -0
- package/dist/types/Maybe/operators-async.d.ts +145 -0
- package/dist/types/Maybe/operators.d.ts +177 -0
- package/dist/types/Maybe/types.d.ts +12 -0
- package/dist/types/Maybe.d.ts +2 -0
- package/dist/types/MockClock/Timeline.d.ts +392 -0
- package/dist/types/MockClock/TimerHandle.d.ts +159 -0
- package/dist/types/MockClock/TimerHeap.d.ts +21 -0
- package/dist/types/MockClock/VirtualTimeManager.d.ts +23 -0
- package/dist/types/MockClock/__export__.d.ts +104 -0
- package/dist/types/MockClock/hooks/__export__.d.ts +9 -0
- package/dist/types/MockClock/hooks/hookAbortSignal.d.ts +3 -0
- package/dist/types/MockClock/hooks/hookDate.d.ts +3 -0
- package/dist/types/MockClock/hooks/hookIntl.d.ts +3 -0
- package/dist/types/MockClock/hooks/hookMessageChannel.d.ts +3 -0
- package/dist/types/MockClock/hooks/hookMicrotasks.d.ts +3 -0
- package/dist/types/MockClock/hooks/hookOs.d.ts +3 -0
- package/dist/types/MockClock/hooks/hookPerformance.d.ts +3 -0
- package/dist/types/MockClock/hooks/hookProcess.d.ts +3 -0
- package/dist/types/MockClock/hooks/hookTimers.d.ts +3 -0
- package/dist/types/MockClock/types.d.ts +103 -0
- package/dist/types/Other/FetchQ.d.ts +320 -0
- package/dist/types/Other/deque.d.ts +59 -0
- package/dist/types/Other/disjointSet.d.ts +53 -0
- package/dist/types/Other/heap.d.ts +41 -0
- package/dist/types/Other/lazy.d.ts +127 -0
- package/dist/types/Other/queue.d.ts +42 -0
- package/dist/types/Other/secret.d.ts +111 -0
- package/dist/types/Other/stack.d.ts +40 -0
- package/dist/types/Reactive/__export__.d.ts +4 -0
- package/dist/types/Reactive/event_emitter.d.ts +195 -0
- package/dist/types/Reactive/flow-combination.d.ts +74 -0
- package/dist/types/Reactive/flow.d.ts +180 -0
- package/dist/types/Reactive/pace.d.ts +80 -0
- package/dist/types/Reactive.d.ts +2 -0
- package/dist/types/Reader/__export-readerT__.d.ts +4 -0
- package/dist/types/Reader/__export-reader__.d.ts +4 -0
- package/dist/types/Reader/local.d.ts +39 -0
- package/dist/types/Reader/reader-async.d.ts +84 -0
- package/dist/types/Reader/reader.d.ts +96 -0
- package/dist/types/Reader/readerT-async.d.ts +186 -0
- package/dist/types/Reader/readerT.d.ts +178 -0
- package/dist/types/Reader/types.d.ts +37 -0
- package/dist/types/Reader.d.ts +2 -0
- package/dist/types/ReaderT.d.ts +2 -0
- package/dist/types/Resource/TxScope-async.d.ts +86 -0
- package/dist/types/Resource/TxScope.d.ts +85 -0
- package/dist/types/Resource/__export-TxScope__.d.ts +2 -0
- package/dist/types/Resource/__export-resource__.d.ts +2 -0
- package/dist/types/Resource/resource-async.d.ts +79 -0
- package/dist/types/Resource/resource.d.ts +78 -0
- package/dist/types/Resource/types.d.ts +79 -0
- package/dist/types/Resource.d.ts +2 -0
- package/dist/types/Result/Consumers/branch-async.d.ts +77 -0
- package/dist/types/Result/Consumers/branch.d.ts +70 -0
- package/dist/types/Result/Consumers/inspect.d.ts +66 -0
- package/dist/types/Result/Operators/Async/combine-async.d.ts +69 -0
- package/dist/types/Result/Operators/Async/partition-async.d.ts +29 -0
- package/dist/types/Result/Operators/Async/reduce-async.d.ts +15 -0
- package/dist/types/Result/Operators/Async/transform-async.d.ts +90 -0
- package/dist/types/Result/Operators/combine.d.ts +60 -0
- package/dist/types/Result/Operators/flatten.d.ts +26 -0
- package/dist/types/Result/Operators/partition.d.ts +25 -0
- package/dist/types/Result/Operators/reduce.d.ts +12 -0
- package/dist/types/Result/Operators/transform.d.ts +70 -0
- package/dist/types/Result/__export__.d.ts +14 -0
- package/dist/types/Result/base.d.ts +115 -0
- package/dist/types/Result/types.d.ts +34 -0
- package/dist/types/Result.d.ts +2 -0
- package/dist/types/Sets.d.ts +2 -0
- package/dist/types/Str.d.ts +2 -0
- package/dist/types/TxScope.d.ts +2 -0
- package/dist/types/TypeTool.d.ts +2 -0
- package/dist/types/Utils/Array/__export__.d.ts +10 -0
- package/dist/types/Utils/Array/filtering.d.ts +89 -0
- package/dist/types/Utils/Array/flatten.d.ts +45 -0
- package/dist/types/Utils/Array/grouping.d.ts +44 -0
- package/dist/types/Utils/Array/iteration.d.ts +86 -0
- package/dist/types/Utils/Array/operators.d.ts +62 -0
- package/dist/types/Utils/Array/randomization.d.ts +76 -0
- package/dist/types/Utils/Array/set.d.ts +108 -0
- package/dist/types/Utils/Array/slice.d.ts +189 -0
- package/dist/types/Utils/Array/sorting.d.ts +55 -0
- package/dist/types/Utils/Array/zip.d.ts +93 -0
- package/dist/types/Utils/Functions/__export__.d.ts +5 -0
- package/dist/types/Utils/Functions/base.d.ts +157 -0
- package/dist/types/Utils/Functions/curry.d.ts +73 -0
- package/dist/types/Utils/Functions/debounce.d.ts +240 -0
- package/dist/types/Utils/Functions/defer.d.ts +43 -0
- package/dist/types/Utils/Functions/pipe.d.ts +205 -0
- package/dist/types/Utils/Map.d.ts +284 -0
- package/dist/types/Utils/Math.d.ts +225 -0
- package/dist/types/Utils/Object/__export__.d.ts +2 -0
- package/dist/types/Utils/Object/base.d.ts +131 -0
- package/dist/types/Utils/Object/clone.d.ts +81 -0
- package/dist/types/Utils/Predicates.d.ts +361 -0
- package/dist/types/Utils/Set.d.ts +105 -0
- package/dist/types/Utils/String.d.ts +217 -0
- package/dist/types/Utils/__export__.d.ts +9 -0
- package/dist/types/Utils/type-tool.d.ts +168 -0
- package/dist/types/Utils.d.ts +2 -0
- package/dist/types/VirtualTime.d.ts +2 -0
- package/dist/types/helper.d.ts +71 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/unknown-error.d.ts +98 -0
- package/package.json +179 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { AnyMaybe, Maybe } from './types';
|
|
2
|
+
import { MaybePromise } from '../Utils/type-tool';
|
|
3
|
+
/**
|
|
4
|
+
* Asynchronously pattern matches on a Maybe value, executing the appropriate callback
|
|
5
|
+
* @param val - The Maybe value or Promise of Maybe to match on
|
|
6
|
+
* @param onSome - Callback executed when value is Some
|
|
7
|
+
* @param onNone - Callback executed when value is None
|
|
8
|
+
* @param signal - Optional AbortSignal for cancellation
|
|
9
|
+
* @returns Promise resolving to the result of the executed callback
|
|
10
|
+
*/
|
|
11
|
+
export declare function matchAsync<T, R>(val: AnyMaybe<T>, onSome: (value: T, signal?: AbortSignal) => MaybePromise<R>, onNone: (signal?: AbortSignal) => MaybePromise<R>, signal?: AbortSignal): Promise<R>;
|
|
12
|
+
/**
|
|
13
|
+
* Executes callback only if Maybe value is Some (single callback version)
|
|
14
|
+
* @returns Promise resolving to callback result or undefined
|
|
15
|
+
*/
|
|
16
|
+
export declare function ifSomeAsync<T, R1>(val: AnyMaybe<T>, onSome: (value: T) => MaybePromise<R1>): Promise<R1 | void>;
|
|
17
|
+
/**
|
|
18
|
+
* Executes appropriate callback based on Maybe value (two callback version)
|
|
19
|
+
* @returns Promise resolving to result of either callback
|
|
20
|
+
*/
|
|
21
|
+
export declare function ifSomeAsync<T, R1, R2>(val: AnyMaybe<T>, onSome: (value: T) => MaybePromise<R1>, onElse: () => MaybePromise<R2>): Promise<R1 | R2>;
|
|
22
|
+
/**
|
|
23
|
+
* Executes callback only if Maybe value is None (single callback version)
|
|
24
|
+
* @returns Promise resolving to callback result or undefined
|
|
25
|
+
*/
|
|
26
|
+
export declare function ifNoneAsync<T, R1>(val: AnyMaybe<T>, onNone: () => MaybePromise<R1>): Promise<R1 | void>;
|
|
27
|
+
/**
|
|
28
|
+
* Executes appropriate callback based on Maybe value (two callback version)
|
|
29
|
+
* @returns Promise resolving to result of either callback
|
|
30
|
+
*/
|
|
31
|
+
export declare function ifNoneAsync<T, R1, R2>(val: AnyMaybe<T>, onNone: () => MaybePromise<R1>, onElse: (value: T) => MaybePromise<R2>): Promise<R1 | R2>;
|
|
32
|
+
/**
|
|
33
|
+
* Executes a side effect for Some values without modifying the Maybe
|
|
34
|
+
* @param val - The Maybe value or Promise of Maybe to inspect
|
|
35
|
+
* @param fn - Side effect function for Some values
|
|
36
|
+
* @param signal - Optional AbortSignal for cancellation
|
|
37
|
+
* @returns Promise resolving to the original Maybe value
|
|
38
|
+
*/
|
|
39
|
+
export declare function peekAsync<T>(val: AnyMaybe<T>, fn: (v: T, signal?: AbortSignal) => MaybePromise<void>, signal?: AbortSignal): Promise<Maybe<T>>;
|
|
40
|
+
/**
|
|
41
|
+
* Executes a side effect for None values without modifying the Maybe
|
|
42
|
+
* @param val - The Maybe value or Promise of Maybe to inspect
|
|
43
|
+
* @param fn - Side effect function for None values
|
|
44
|
+
* @param signal - Optional AbortSignal for cancellation
|
|
45
|
+
* @returns Promise resolving to the original Maybe value
|
|
46
|
+
*/
|
|
47
|
+
export declare function peekNoneAsync<T>(val: AnyMaybe<T>, fn: (signal?: AbortSignal) => MaybePromise<void>, signal?: AbortSignal): Promise<Maybe<T>>;
|
|
48
|
+
/**
|
|
49
|
+
* Executes side effects for both Some and None cases without modifying the Maybe
|
|
50
|
+
* @param val - The Maybe value or Promise of Maybe to inspect
|
|
51
|
+
* @param handlers - Object containing optional Some and None handlers
|
|
52
|
+
* @param signal - Optional AbortSignal for cancellation
|
|
53
|
+
* @returns Promise resolving to the original Maybe value
|
|
54
|
+
*/
|
|
55
|
+
export declare function peekBothAsync<T>(val: AnyMaybe<T>, { fnSome, fnNone, }: {
|
|
56
|
+
fnSome?: (v: T, signal?: AbortSignal) => MaybePromise<void>;
|
|
57
|
+
fnNone?: (signal?: AbortSignal) => MaybePromise<void>;
|
|
58
|
+
}, signal?: AbortSignal): Promise<Maybe<T>>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Maybe } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Pattern matching for Maybe type
|
|
4
|
+
* @param val - Maybe value to match
|
|
5
|
+
* @param onSome - Callback for Some case
|
|
6
|
+
* @param onNone - Callback for None case
|
|
7
|
+
* @returns Result of the matched case
|
|
8
|
+
*/
|
|
9
|
+
export declare const match: <T, R>(val: Maybe<T>, onSome: (value: T) => R, onNone: () => R) => R;
|
|
10
|
+
/**
|
|
11
|
+
* Execute callback only if Maybe is Some
|
|
12
|
+
* @param val - Maybe value to check
|
|
13
|
+
* @param onSome - Callback for Some case
|
|
14
|
+
* @returns Callback result or undefined
|
|
15
|
+
*/
|
|
16
|
+
export declare function ifSome<T, R1>(val: Maybe<T>, onSome: (value: T) => R1): R1 | void;
|
|
17
|
+
/**
|
|
18
|
+
* Execute callback for Some, fallback for None
|
|
19
|
+
* @param val - Maybe value to check
|
|
20
|
+
* @param onSome - Callback for Some case
|
|
21
|
+
* @param onElse - Fallback callback
|
|
22
|
+
* @returns Result of either callback
|
|
23
|
+
*/
|
|
24
|
+
export declare function ifSome<T, R1, R2>(val: Maybe<T>, onSome: (value: T) => R1, onElse: () => R2): R1 | R2;
|
|
25
|
+
/**
|
|
26
|
+
* Execute callback only if Maybe is None
|
|
27
|
+
* @param val - Maybe value to check
|
|
28
|
+
* @param onNone - Callback for None case
|
|
29
|
+
* @returns Callback result or undefined
|
|
30
|
+
*/
|
|
31
|
+
export declare function ifNone<T, R1>(val: Maybe<T>, onNone: () => R1): R1 | void;
|
|
32
|
+
/**
|
|
33
|
+
* Execute callback for None, fallback for Some
|
|
34
|
+
* @param val - Maybe value to check
|
|
35
|
+
* @param onNone - Callback for None case
|
|
36
|
+
* @param onElse - Fallback callback
|
|
37
|
+
* @returns Result of either callback
|
|
38
|
+
*/
|
|
39
|
+
export declare function ifNone<T, R1, R2>(val: Maybe<T>, onNone: () => R1, onElse: (value: T) => R2): R1 | R2;
|
|
40
|
+
/**
|
|
41
|
+
* Peek at Some value without consuming
|
|
42
|
+
* @param val - Maybe value to inspect
|
|
43
|
+
* @param fn - Side effect callback
|
|
44
|
+
* @returns Original Maybe value
|
|
45
|
+
*/
|
|
46
|
+
export declare const peek: <T>(val: Maybe<T>, fn: (v: T) => void) => Maybe<T>;
|
|
47
|
+
/**
|
|
48
|
+
* Peek at None case without consuming
|
|
49
|
+
* @param val - Maybe value to inspect
|
|
50
|
+
* @param fn - Side effect callback
|
|
51
|
+
* @returns Original Maybe value
|
|
52
|
+
*/
|
|
53
|
+
export declare const peekNone: <T>(val: Maybe<T>, fn: () => void) => Maybe<T>;
|
|
54
|
+
/**
|
|
55
|
+
* Peek at both cases with separate callbacks
|
|
56
|
+
* @param val - Maybe value to inspect
|
|
57
|
+
* @param callbacks - Object with Some and None handlers
|
|
58
|
+
* @returns Original Maybe value
|
|
59
|
+
*/
|
|
60
|
+
export declare function peekBoth<T>(val: Maybe<T>, { fnSome, fnNone, }: {
|
|
61
|
+
fnSome?: (v: T) => void;
|
|
62
|
+
fnNone?: () => void;
|
|
63
|
+
}): Maybe<T>;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { AnyMaybe, AsyncMaybe } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Applies async function from Maybe to async value.
|
|
4
|
+
* @typeparam T - Input type
|
|
5
|
+
* @typeparam R - Result type
|
|
6
|
+
* @param fn_val - Maybe function
|
|
7
|
+
* @param val - Maybe value
|
|
8
|
+
* @param signal - Optional AbortSignal
|
|
9
|
+
* @returns AsyncMaybe<R>
|
|
10
|
+
*/
|
|
11
|
+
export declare const apAsync: <T, R>(fn_val: AnyMaybe<(v: T) => R | Promise<R>>, val: AnyMaybe<T>, signal?: AbortSignal) => AsyncMaybe<R>;
|
|
12
|
+
/**
|
|
13
|
+
* Transforms async Maybe value with async function.
|
|
14
|
+
* @typeparam T - Input type
|
|
15
|
+
* @typeparam R - Result type
|
|
16
|
+
* @param val - Maybe value
|
|
17
|
+
* @param fn - Async transformation function
|
|
18
|
+
* @param signal - Optional AbortSignal
|
|
19
|
+
* @returns AsyncMaybe<R>
|
|
20
|
+
*/
|
|
21
|
+
export declare const mapAsync: <T, R>(val: AnyMaybe<T>, fn: (v: T) => R | Promise<R>, signal?: AbortSignal) => AsyncMaybe<R>;
|
|
22
|
+
/**
|
|
23
|
+
* Maps value only if predicate passes (async).
|
|
24
|
+
* @typeparam T - Input type
|
|
25
|
+
* @typeparam R - Result type
|
|
26
|
+
* @param val - Maybe value
|
|
27
|
+
* @param predicate - Async condition check
|
|
28
|
+
* @param fn - Async transformation function
|
|
29
|
+
* @param signal - Optional AbortSignal
|
|
30
|
+
* @returns AsyncMaybe<R>
|
|
31
|
+
*/
|
|
32
|
+
export declare const mapIfAsync: <T, R>(val: AnyMaybe<T>, predicate: (v: T) => boolean | Promise<boolean>, fn: (v: T) => R | Promise<R>, signal?: AbortSignal) => AsyncMaybe<R>;
|
|
33
|
+
/**
|
|
34
|
+
* Chains async computations that may fail.
|
|
35
|
+
* @typeparam T - Input type
|
|
36
|
+
* @typeparam R - Result type
|
|
37
|
+
* @param val - Maybe value
|
|
38
|
+
* @param fn - Async function returning Maybe
|
|
39
|
+
* @param signal - Optional AbortSignal
|
|
40
|
+
* @returns AsyncMaybe<R>
|
|
41
|
+
*/
|
|
42
|
+
export declare const andThenAsync: <T, R>(val: AnyMaybe<T>, fn: (v: T) => AnyMaybe<R>, signal?: AbortSignal) => AsyncMaybe<R>;
|
|
43
|
+
/**
|
|
44
|
+
* Filters async Maybe value with async predicate.
|
|
45
|
+
* @typeparam T - Value type
|
|
46
|
+
* @param val - Maybe value
|
|
47
|
+
* @param predicate - Async filter condition
|
|
48
|
+
* @param signal - Optional AbortSignal
|
|
49
|
+
* @returns AsyncMaybe<T>
|
|
50
|
+
*/
|
|
51
|
+
export declare const filterAsync: <T>(val: AnyMaybe<T>, predicate: (v: T) => boolean | Promise<boolean>, signal?: AbortSignal) => AsyncMaybe<T>;
|
|
52
|
+
/**
|
|
53
|
+
* Zips two async Maybes into tuple if both are Some.
|
|
54
|
+
* @typeparam T - First type
|
|
55
|
+
* @typeparam U - Second type
|
|
56
|
+
* @param a - First Maybe
|
|
57
|
+
* @param b - Second Maybe
|
|
58
|
+
* @param signal - Optional AbortSignal
|
|
59
|
+
* @returns AsyncMaybe<[T, U]>
|
|
60
|
+
*/
|
|
61
|
+
export declare const zipAsync: <T, U>(a: AnyMaybe<T>, b: AnyMaybe<U>, signal?: AbortSignal) => AsyncMaybe<[T, U]>;
|
|
62
|
+
/**
|
|
63
|
+
* Extracts value from async Maybe or returns default.
|
|
64
|
+
* @typeparam T - Input type
|
|
65
|
+
* @typeparam R - Result type
|
|
66
|
+
* @param val - Maybe value
|
|
67
|
+
* @param initial - Default value or Promise
|
|
68
|
+
* @param onSome - Async handler for Some case
|
|
69
|
+
* @param signal - Optional AbortSignal
|
|
70
|
+
* @returns Promise<R>
|
|
71
|
+
*/
|
|
72
|
+
export declare const foldAsync: <T, R>(val: AnyMaybe<T>, initial: R | Promise<R>, onSome: (v: T) => R | Promise<R>, signal?: AbortSignal) => Promise<R>;
|
|
73
|
+
/**
|
|
74
|
+
* Returns value if Some, otherwise async fallback.
|
|
75
|
+
* @typeparam T - Value type
|
|
76
|
+
* @param val - Maybe value
|
|
77
|
+
* @param fn - Async fallback supplier
|
|
78
|
+
* @param signal - Optional AbortSignal
|
|
79
|
+
* @returns AsyncMaybe<T>
|
|
80
|
+
*/
|
|
81
|
+
export declare const orElseAsync: <T>(val: AnyMaybe<T>, fn: () => AnyMaybe<T>, signal?: AbortSignal) => AsyncMaybe<T>;
|
|
82
|
+
/**
|
|
83
|
+
* Maps array with async function, fails if any returns None.
|
|
84
|
+
* @typeparam T - Input type
|
|
85
|
+
* @typeparam R - Output type
|
|
86
|
+
* @param items - Input array
|
|
87
|
+
* @param fn - Async mapping function
|
|
88
|
+
* @param signal - Optional AbortSignal
|
|
89
|
+
* @returns AsyncMaybe<R[]>
|
|
90
|
+
*/
|
|
91
|
+
export declare const mapAllAsync: <T, R>(items: readonly T[], fn: (it: T, i: number) => AnyMaybe<R>, signal?: AbortSignal) => AsyncMaybe<R[]>;
|
|
92
|
+
/**
|
|
93
|
+
* Returns all async values if all are Some, None otherwise.
|
|
94
|
+
* @typeparam T - Element type
|
|
95
|
+
* @param vals - Array of async Maybes
|
|
96
|
+
* @param signal - Optional AbortSignal
|
|
97
|
+
* @returns AsyncMaybe<T[]>
|
|
98
|
+
*/
|
|
99
|
+
export declare const allAsync: <T>(vals: readonly AnyMaybe<T>[], signal?: AbortSignal) => AsyncMaybe<T[]>;
|
|
100
|
+
/**
|
|
101
|
+
* Returns first Some value from async array, None if none found.
|
|
102
|
+
* @typeparam T - Element type
|
|
103
|
+
* @param vals - Array of async Maybes
|
|
104
|
+
* @param signal - Optional AbortSignal
|
|
105
|
+
* @returns AsyncMaybe<T>
|
|
106
|
+
*/
|
|
107
|
+
export declare const firstSomeAsync: <T>(vals: readonly AnyMaybe<T>[], signal?: AbortSignal) => AsyncMaybe<T>;
|
|
108
|
+
/**
|
|
109
|
+
* Reduces array of async Maybes with async reducer.
|
|
110
|
+
* @typeparam T - Element type
|
|
111
|
+
* @typeparam R - Result type
|
|
112
|
+
* @param vals - Array of async Maybes
|
|
113
|
+
* @param initial - Initial value
|
|
114
|
+
* @param reducer - Async reduction function
|
|
115
|
+
* @param signal - Optional AbortSignal
|
|
116
|
+
* @returns AsyncMaybe<R>
|
|
117
|
+
*/
|
|
118
|
+
export declare function reduceAsync<T, R>(vals: readonly AnyMaybe<T>[], initial: R, reducer: (acc: R, v: T) => R | Promise<R>, signal?: AbortSignal): AsyncMaybe<R>;
|
|
119
|
+
/**
|
|
120
|
+
* Performs async scan reduction on array of async Maybes.
|
|
121
|
+
* @typeparam T - Element type
|
|
122
|
+
* @typeparam R - Result type
|
|
123
|
+
* @param vals - Array of async Maybes
|
|
124
|
+
* @param initial - Initial value
|
|
125
|
+
* @param scanner - Async scanning function
|
|
126
|
+
* @param signal - Optional AbortSignal
|
|
127
|
+
* @returns AsyncMaybe<R[]>
|
|
128
|
+
*/
|
|
129
|
+
export declare function scanAsync<T, R>(vals: readonly AnyMaybe<T>[], initial: R, scanner: (acc: R, v: T) => R | Promise<R>, signal?: AbortSignal): AsyncMaybe<R[]>;
|
|
130
|
+
/**
|
|
131
|
+
* Collects all Some values from async array.
|
|
132
|
+
* @typeparam T - Element type
|
|
133
|
+
* @param vals - Array of async Maybes
|
|
134
|
+
* @param signal - Optional AbortSignal
|
|
135
|
+
* @returns Promise<T[]> - Only Some values
|
|
136
|
+
*/
|
|
137
|
+
export declare const collectSomesAsync: <T>(vals: readonly AnyMaybe<T>[], signal?: AbortSignal) => Promise<T[]>;
|
|
138
|
+
/**
|
|
139
|
+
* Partitions async array into Some values and None count.
|
|
140
|
+
* @typeparam T - Element type
|
|
141
|
+
* @param vals - Array of async Maybes
|
|
142
|
+
* @param signal - Optional AbortSignal
|
|
143
|
+
* @returns Promise<[T[], number]> - [Some values, None count]
|
|
144
|
+
*/
|
|
145
|
+
export declare const partitionAsync: <T>(vals: readonly AnyMaybe<T>[], signal?: AbortSignal) => Promise<[T[], number]>;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { Maybe } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Transforms the contained value if Some, returns None otherwise.
|
|
4
|
+
* @typeparam T - Original value type
|
|
5
|
+
* @typeparam R - Result type
|
|
6
|
+
* @param val - Maybe value
|
|
7
|
+
* @param fn - Transformation function
|
|
8
|
+
* @returns Maybe<R>
|
|
9
|
+
*/
|
|
10
|
+
export declare const map: <T, R>(val: Maybe<T>, fn: (value: T) => R) => Maybe<R>;
|
|
11
|
+
/**
|
|
12
|
+
* Chains computations that may fail. If Some, applies fn, otherwise returns None.
|
|
13
|
+
* @typeparam T - Original value type
|
|
14
|
+
* @typeparam R - Result type
|
|
15
|
+
* @param val - Maybe value
|
|
16
|
+
* @param fn - Function returning Maybe<R>
|
|
17
|
+
* @returns Maybe<R>
|
|
18
|
+
*/
|
|
19
|
+
export declare const andThen: <T, R>(val: Maybe<T>, fn: (value: T) => Maybe<R>) => Maybe<R>;
|
|
20
|
+
/**
|
|
21
|
+
* Applies a Maybe-wrapped function to a Maybe value.
|
|
22
|
+
* @typeparam T - Input type
|
|
23
|
+
* @typeparam R - Result type
|
|
24
|
+
* @param fn_val - Maybe<(v: T) => R>
|
|
25
|
+
* @param val - Maybe<T>
|
|
26
|
+
* @returns Maybe<R>
|
|
27
|
+
*/
|
|
28
|
+
export declare const ap: <T, R>(fn_val: Maybe<(v: T) => R>, val: Maybe<T>) => Maybe<R>;
|
|
29
|
+
/**
|
|
30
|
+
* Returns Some if value satisfies predicate, None otherwise.
|
|
31
|
+
* @typeparam T - Value type
|
|
32
|
+
* @param val - Maybe value
|
|
33
|
+
* @param predicate - Filter condition
|
|
34
|
+
* @returns Maybe<T>
|
|
35
|
+
*/
|
|
36
|
+
export declare const filter: <T>(val: Maybe<T>, predicate: (v: T) => boolean) => Maybe<T>;
|
|
37
|
+
/**
|
|
38
|
+
* Maps value if predicate passes, returns None otherwise.
|
|
39
|
+
* @typeparam T - Original type
|
|
40
|
+
* @typeparam R - Result type
|
|
41
|
+
* @param val - Maybe value
|
|
42
|
+
* @param predicate - Condition to check
|
|
43
|
+
* @param fn - Transformation function
|
|
44
|
+
* @returns Maybe<R>
|
|
45
|
+
*/
|
|
46
|
+
export declare const mapIf: <T, R>(val: Maybe<T>, predicate: (v: T) => boolean, fn: (v: T) => R) => Maybe<R>;
|
|
47
|
+
/**
|
|
48
|
+
* Returns other if val is Some, None otherwise.
|
|
49
|
+
* @typeparam T - First type
|
|
50
|
+
* @typeparam U - Second type
|
|
51
|
+
* @param val - Maybe<T>
|
|
52
|
+
* @param other - Maybe<U>
|
|
53
|
+
* @returns Maybe<U>
|
|
54
|
+
*/
|
|
55
|
+
export declare const and: <T, U>(val: Maybe<T>, other: Maybe<U>) => Maybe<U>;
|
|
56
|
+
/**
|
|
57
|
+
* Returns first Some value, otherwise other.
|
|
58
|
+
* @typeparam T - Value type
|
|
59
|
+
* @param val - First Maybe
|
|
60
|
+
* @param other - Fallback Maybe
|
|
61
|
+
* @returns Maybe<T>
|
|
62
|
+
*/
|
|
63
|
+
export declare const or: <T>(val: Maybe<T>, other: Maybe<T>) => Maybe<T>;
|
|
64
|
+
/**
|
|
65
|
+
* Returns val if Some, otherwise calls fn for fallback.
|
|
66
|
+
* @typeparam T - Value type
|
|
67
|
+
* @param val - Maybe value
|
|
68
|
+
* @param fn - Fallback supplier
|
|
69
|
+
* @returns Maybe<T>
|
|
70
|
+
*/
|
|
71
|
+
export declare const orElse: <T>(val: Maybe<T>, fn: () => Maybe<T>) => Maybe<T>;
|
|
72
|
+
/**
|
|
73
|
+
* Extracts value or returns default.
|
|
74
|
+
* @typeparam T - Input type
|
|
75
|
+
* @typeparam R - Output type
|
|
76
|
+
* @param val - Maybe value
|
|
77
|
+
* @param initial - Default value
|
|
78
|
+
* @param onSome - Handler for Some case
|
|
79
|
+
* @returns R
|
|
80
|
+
*/
|
|
81
|
+
export declare const fold: <T, R>(val: Maybe<T>, initial: R, onSome: (v: T) => R) => R;
|
|
82
|
+
/**
|
|
83
|
+
* Checks if Maybe contains specific value.
|
|
84
|
+
* @typeparam T - Value type
|
|
85
|
+
* @param val - Maybe value
|
|
86
|
+
* @param x - Value to compare
|
|
87
|
+
* @returns boolean
|
|
88
|
+
*/
|
|
89
|
+
export declare const contains: <T>(val: Maybe<T>, x: T) => boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Combines two Maybes into tuple if both are Some.
|
|
92
|
+
* @typeparam T - First type
|
|
93
|
+
* @typeparam U - Second type
|
|
94
|
+
* @param a - Maybe<T>
|
|
95
|
+
* @param b - Maybe<U>
|
|
96
|
+
* @returns Maybe<[T, U]>
|
|
97
|
+
*/
|
|
98
|
+
export declare const zip: <T, U>(a: Maybe<T>, b: Maybe<U>) => Maybe<[T, U]>;
|
|
99
|
+
/**
|
|
100
|
+
* Applies function to two Maybes if both are Some.
|
|
101
|
+
* @typeparam T - First type
|
|
102
|
+
* @typeparam U - Second type
|
|
103
|
+
* @typeparam R - Result type
|
|
104
|
+
* @param ma - Maybe<T>
|
|
105
|
+
* @param mb - Maybe<U>
|
|
106
|
+
* @param fn - Combining function
|
|
107
|
+
* @returns Maybe<R>
|
|
108
|
+
*/
|
|
109
|
+
export declare const zipWith: <T, U, R>(ma: Maybe<T>, mb: Maybe<U>, fn: (a: T, b: U) => R) => Maybe<R>;
|
|
110
|
+
/**
|
|
111
|
+
* Returns array of all values if all are Some, None otherwise.
|
|
112
|
+
* @typeparam T - Element type
|
|
113
|
+
* @param vals - Array of Maybes
|
|
114
|
+
* @returns Maybe<T[]>
|
|
115
|
+
*/
|
|
116
|
+
export declare const all: <T>(vals: readonly Maybe<T>[]) => Maybe<T[]>;
|
|
117
|
+
/**
|
|
118
|
+
* Maps array to Maybes, returns Some of results if all succeed.
|
|
119
|
+
* @typeparam T - Input type
|
|
120
|
+
* @typeparam U - Output type
|
|
121
|
+
* @param items - Input array
|
|
122
|
+
* @param fn - Mapping function
|
|
123
|
+
* @returns Maybe<U[]>
|
|
124
|
+
*/
|
|
125
|
+
export declare const mapAll: <T, U>(items: readonly T[], fn: (it: T, i: number) => Maybe<U>) => Maybe<U[]>;
|
|
126
|
+
/**
|
|
127
|
+
* Partitions array into Some values and None count.
|
|
128
|
+
* @typeparam T - Element type
|
|
129
|
+
* @param vals - Array of Maybes
|
|
130
|
+
* @returns [T[], number] - [Some values, None count]
|
|
131
|
+
*/
|
|
132
|
+
export declare const partition: <T>(vals: readonly Maybe<T>[]) => [T[], number];
|
|
133
|
+
/**
|
|
134
|
+
* Collects all Some values from array.
|
|
135
|
+
* @typeparam T - Element type
|
|
136
|
+
* @param vals - Array of Maybes
|
|
137
|
+
* @returns T[] - Only Some values
|
|
138
|
+
*/
|
|
139
|
+
export declare const collectSomes: <T>(vals: readonly Maybe<T>[]) => T[];
|
|
140
|
+
/**
|
|
141
|
+
* Returns first Some value in array, None if none found.
|
|
142
|
+
* @typeparam T - Element type
|
|
143
|
+
* @param vals - Array of Maybes
|
|
144
|
+
* @returns Maybe<T>
|
|
145
|
+
*/
|
|
146
|
+
export declare const firstSome: <T>(vals: readonly Maybe<T>[]) => Maybe<T>;
|
|
147
|
+
/**
|
|
148
|
+
* Reduces array of Maybes. Returns None if any is None.
|
|
149
|
+
* @typeparam T - Element type
|
|
150
|
+
* @typeparam R - Result type
|
|
151
|
+
* @param vals - Array of Maybes
|
|
152
|
+
* @param initial - Initial value
|
|
153
|
+
* @param reducer - Reduction function
|
|
154
|
+
* @returns Maybe<R>
|
|
155
|
+
*/
|
|
156
|
+
export declare function reduce<T, R>(vals: readonly Maybe<T>[], initial: R, reducer: (acc: R, v: T) => R): Maybe<R>;
|
|
157
|
+
/**
|
|
158
|
+
* Performs scan reduction. Returns None if any is None.
|
|
159
|
+
* @typeparam T - Element type
|
|
160
|
+
* @typeparam R - Result type
|
|
161
|
+
* @param vals - Array of Maybes
|
|
162
|
+
* @param initial - Initial value
|
|
163
|
+
* @param scanner - Scanning function
|
|
164
|
+
* @returns Maybe<R[]>
|
|
165
|
+
*/
|
|
166
|
+
export declare function scan<T, R>(vals: readonly Maybe<T>[], initial: R, scanner: (acc: R, v: T) => R): Maybe<R[]>;
|
|
167
|
+
/**
|
|
168
|
+
* Folds with separate handlers for Some/None.
|
|
169
|
+
* @typeparam T - Element type
|
|
170
|
+
* @typeparam R - Result type
|
|
171
|
+
* @param vals - Array of Maybes
|
|
172
|
+
* @param initial - Initial value
|
|
173
|
+
* @param onSome - Handler for Some values
|
|
174
|
+
* @param onNone - Handler for None values
|
|
175
|
+
* @returns R
|
|
176
|
+
*/
|
|
177
|
+
export declare const folds: <T, R>(vals: readonly Maybe<T>[], initial: R, onSome: (acc: R, v: T) => R, onNone: (acc: R) => R) => R;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A nullable type that can be `T`, `null`, or `undefined`.
|
|
3
|
+
*/
|
|
4
|
+
export type Maybe<T> = T | null | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* A Promise that resolves to a {@link Maybe} value.
|
|
7
|
+
*/
|
|
8
|
+
export type AsyncMaybe<T> = Promise<Maybe<T>>;
|
|
9
|
+
/**
|
|
10
|
+
* A union of all possible maybe-like types - synchronous, asynchronous, or Promise-like.
|
|
11
|
+
*/
|
|
12
|
+
export type AnyMaybe<T> = Maybe<T> | AsyncMaybe<T> | PromiseLike<Maybe<T>>;
|