generic-result-type 2.0.0 → 2.1.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/README.md +16 -1
- package/dist/index.cjs +23 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -6
- package/dist/index.d.ts +12 -6
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ This package supports **both ESM and CommonJS** out of the box.
|
|
|
17
17
|
ESM:
|
|
18
18
|
|
|
19
19
|
```ts
|
|
20
|
-
import { success, fail } from 'generic-result-type';
|
|
20
|
+
import { success, fail, type Result } from 'generic-result-type';
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
CommonJS:
|
|
@@ -68,6 +68,21 @@ console.log('Value:', result.value);
|
|
|
68
68
|
|
|
69
69
|
TypeScript will correctly narrow the type inside each branch without casting.
|
|
70
70
|
|
|
71
|
+
### Mapping
|
|
72
|
+
|
|
73
|
+
You can map the value or the error of a Result with these methods:
|
|
74
|
+
|
|
75
|
+
* map
|
|
76
|
+
* mapErr
|
|
77
|
+
* mapAsync
|
|
78
|
+
* mapErrAsync
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
const numberResult = getSomeNumberResult().map(x => x * 2);
|
|
82
|
+
|
|
83
|
+
const responseResult = await getSomeStringResult().mapAsync(async x => fetch(x));
|
|
84
|
+
```
|
|
85
|
+
|
|
71
86
|
## License
|
|
72
87
|
|
|
73
88
|
ISC
|
package/dist/index.cjs
CHANGED
|
@@ -34,20 +34,42 @@ var ErrorResult = class _ErrorResult {
|
|
|
34
34
|
this.error = error;
|
|
35
35
|
this.success = false;
|
|
36
36
|
}
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters
|
|
37
38
|
map(mapFunction) {
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await
|
|
42
|
+
async mapAsync(mapFunction) {
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
mapErr(mapFunction) {
|
|
38
46
|
return new _ErrorResult(mapFunction(this.error));
|
|
39
47
|
}
|
|
48
|
+
async mapErrAsync(mapFunction) {
|
|
49
|
+
return new _ErrorResult(await mapFunction(this.error));
|
|
50
|
+
}
|
|
40
51
|
};
|
|
41
52
|
|
|
42
53
|
// src/successResult.mts
|
|
43
54
|
var SuccessResult = class _SuccessResult {
|
|
44
55
|
constructor(value) {
|
|
45
|
-
this.value = value;
|
|
46
56
|
this.success = true;
|
|
57
|
+
this.value = value;
|
|
47
58
|
}
|
|
48
59
|
map(mapFunction) {
|
|
49
60
|
return new _SuccessResult(mapFunction(this.value));
|
|
50
61
|
}
|
|
62
|
+
async mapAsync(mapFunction) {
|
|
63
|
+
return new _SuccessResult(await mapFunction(this.value));
|
|
64
|
+
}
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters
|
|
66
|
+
mapErr(mapFunction) {
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await
|
|
70
|
+
async mapErrAsync(mapFunction) {
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
51
73
|
};
|
|
52
74
|
|
|
53
75
|
// src/index.mts
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.mts","../src/errorResult.mts","../src/successResult.mts"],"sourcesContent":["import type { IErrorResult } from './errorResult.mjs';\nimport { ErrorResult } from './errorResult.mjs';\nimport type { ISuccessResult } from './successResult.mjs';\nimport { SuccessResult } from './successResult.mjs';\n\nexport type { ISuccessResult };\nexport type { IErrorResult };\n\nexport type
|
|
1
|
+
{"version":3,"sources":["../src/index.mts","../src/errorResult.mts","../src/successResult.mts"],"sourcesContent":["import type { IErrorResult } from './errorResult.mjs';\nimport { ErrorResult } from './errorResult.mjs';\nimport type { ISuccessResult } from './successResult.mjs';\nimport { SuccessResult } from './successResult.mjs';\n\nexport type { ISuccessResult };\nexport type { IErrorResult };\n\nexport type Result<T = void, E = Error> = ISuccessResult<T> | IErrorResult<E>;\n\nexport function success(): ISuccessResult;\nexport function success<T>(value: T): ISuccessResult<T>;\nexport function success<T>(value?: T): ISuccessResult<T> {\n return new SuccessResult(value as T);\n};\n\nexport function fail<E>(error: E): IErrorResult<E> {\n return new ErrorResult(error);\n}\n\nexport const isSuccessResult = <T, E = Error>(result: Result<T, E>): result is ISuccessResult<T> => {\n return result.success;\n};\n\nexport const isErrorResult = <T, E = Error>(result: Result<T, E>): result is IErrorResult<E> => {\n return !result.success;\n};\n\nexport function combine(...results: Result[]): Result {\n for (const r of results) {\n if (!r.success) {\n return r;\n }\n }\n return new SuccessResult(undefined);\n}\n","export interface IErrorResult<E = Error> {\n readonly success: false;\n readonly error: E;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\n readonly map: <M>(mapFunction: (value: never) => M) => IErrorResult<E>;\n readonly mapAsync: <M>(mapFunction: (value: never) => Promise<M>) => Promise<IErrorResult<E>>;\n readonly mapErr: <M>(mapFunction: (value: E) => M) => IErrorResult<M>;\n readonly mapErrAsync: <M>(mapFunction: (value: E) => Promise<M>) => Promise<IErrorResult<M>>;\n}\n\nexport class ErrorResult<E> implements IErrorResult<E> {\n public readonly success = false as const;\n\n public constructor(public readonly error: E) { /* empty */ }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters\n public map<M>(mapFunction: (error: never) => M): this {\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await\n public async mapAsync<M>(mapFunction: (value: never) => Promise<M>): Promise<this> {\n return this;\n }\n\n public mapErr<M>(mapFunction: (error: E) => M): ErrorResult<M> {\n return new ErrorResult(mapFunction(this.error));\n }\n\n public async mapErrAsync<M>(mapFunction: (value: E) => Promise<M>): Promise<ErrorResult<M>> {\n return new ErrorResult(await mapFunction(this.error));\n }\n}\n","export interface ISuccessResult<T = void> {\n readonly success: true;\n readonly value: T;\n readonly map: <M>(mapFunction: (value: T) => M) => ISuccessResult<M>;\n readonly mapAsync: <M>(mapFunction: (value: T) => Promise<M>) => Promise<ISuccessResult<M>>;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\n readonly mapErr: <M>(mapFunction: (value: never) => M) => ISuccessResult<T>;\n readonly mapErrAsync: <M>(mapFunction: (value: never) => Promise<M>) => Promise<ISuccessResult<T>>;\n}\n\nexport class SuccessResult<T = void> implements ISuccessResult<T> {\n public readonly success = true as const;\n public readonly value: T;\n\n public constructor(value?: T) {\n this.value = value as T;\n }\n\n public map<M>(mapFunction: (value: T) => M): SuccessResult<M> {\n return new SuccessResult(mapFunction(this.value));\n }\n\n public async mapAsync<M>(mapFunction: (value: T) => Promise<M>): Promise<SuccessResult<M>> {\n return new SuccessResult(await mapFunction(this.value));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters\n public mapErr<M>(mapFunction: (error: never) => M): this {\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await\n public async mapErrAsync<M>(mapFunction: (value: never) => Promise<M>): Promise<this> {\n return this;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACUO,IAAM,cAAN,MAAM,aAA0C;AAAA,EAG9C,YAA4B,OAAU;AAAV;AAFnC,SAAgB,UAAU;AAAA,EAEiC;AAAA;AAAA,EAGpD,IAAO,aAAwC;AACpD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAa,SAAY,aAA0D;AACjF,WAAO;AAAA,EACT;AAAA,EAEO,OAAU,aAA8C;AAC7D,WAAO,IAAI,aAAY,YAAY,KAAK,KAAK,CAAC;AAAA,EAChD;AAAA,EAEA,MAAa,YAAe,aAAgE;AAC1F,WAAO,IAAI,aAAY,MAAM,YAAY,KAAK,KAAK,CAAC;AAAA,EACtD;AACF;;;ACtBO,IAAM,gBAAN,MAAM,eAAqD;AAAA,EAIzD,YAAY,OAAW;AAH9B,SAAgB,UAAU;AAIxB,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,IAAO,aAAgD;AAC5D,WAAO,IAAI,eAAc,YAAY,KAAK,KAAK,CAAC;AAAA,EAClD;AAAA,EAEA,MAAa,SAAY,aAAkE;AACzF,WAAO,IAAI,eAAc,MAAM,YAAY,KAAK,KAAK,CAAC;AAAA,EACxD;AAAA;AAAA,EAGO,OAAU,aAAwC;AACvD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAa,YAAe,aAA0D;AACpF,WAAO;AAAA,EACT;AACF;;;AFvBO,SAAS,QAAW,OAA8B;AACvD,SAAO,IAAI,cAAc,KAAU;AACrC;AAEO,SAAS,KAAQ,OAA2B;AACjD,SAAO,IAAI,YAAY,KAAK;AAC9B;AAEO,IAAM,kBAAkB,CAAe,WAAsD;AAClG,SAAO,OAAO;AAChB;AAEO,IAAM,gBAAgB,CAAe,WAAoD;AAC9F,SAAO,CAAC,OAAO;AACjB;AAEO,SAAS,WAAW,SAA2B;AACpD,aAAW,KAAK,SAAS;AACvB,QAAI,CAAC,EAAE,SAAS;AACd,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO,IAAI,cAAc,MAAS;AACpC;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
interface IErrorResult<E = Error> {
|
|
2
2
|
readonly success: false;
|
|
3
3
|
readonly error: E;
|
|
4
|
-
readonly map: <M>(mapFunction: (value:
|
|
4
|
+
readonly map: <M>(mapFunction: (value: never) => M) => IErrorResult<E>;
|
|
5
|
+
readonly mapAsync: <M>(mapFunction: (value: never) => Promise<M>) => Promise<IErrorResult<E>>;
|
|
6
|
+
readonly mapErr: <M>(mapFunction: (value: E) => M) => IErrorResult<M>;
|
|
7
|
+
readonly mapErrAsync: <M>(mapFunction: (value: E) => Promise<M>) => Promise<IErrorResult<M>>;
|
|
5
8
|
}
|
|
6
9
|
|
|
7
10
|
interface ISuccessResult<T = void> {
|
|
8
11
|
readonly success: true;
|
|
9
12
|
readonly value: T;
|
|
10
13
|
readonly map: <M>(mapFunction: (value: T) => M) => ISuccessResult<M>;
|
|
14
|
+
readonly mapAsync: <M>(mapFunction: (value: T) => Promise<M>) => Promise<ISuccessResult<M>>;
|
|
15
|
+
readonly mapErr: <M>(mapFunction: (value: never) => M) => ISuccessResult<T>;
|
|
16
|
+
readonly mapErrAsync: <M>(mapFunction: (value: never) => Promise<M>) => Promise<ISuccessResult<T>>;
|
|
11
17
|
}
|
|
12
18
|
|
|
13
|
-
type
|
|
19
|
+
type Result<T = void, E = Error> = ISuccessResult<T> | IErrorResult<E>;
|
|
14
20
|
declare function success(): ISuccessResult;
|
|
15
21
|
declare function success<T>(value: T): ISuccessResult<T>;
|
|
16
22
|
declare function fail<E>(error: E): IErrorResult<E>;
|
|
17
|
-
declare const isSuccessResult: <T, E = Error>(result:
|
|
18
|
-
declare const isErrorResult: <T, E = Error>(result:
|
|
19
|
-
declare function combine(...results:
|
|
23
|
+
declare const isSuccessResult: <T, E = Error>(result: Result<T, E>) => result is ISuccessResult<T>;
|
|
24
|
+
declare const isErrorResult: <T, E = Error>(result: Result<T, E>) => result is IErrorResult<E>;
|
|
25
|
+
declare function combine(...results: Result[]): Result;
|
|
20
26
|
|
|
21
|
-
export { type IErrorResult, type ISuccessResult, type
|
|
27
|
+
export { type IErrorResult, type ISuccessResult, type Result, combine, fail, isErrorResult, isSuccessResult, success };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
interface IErrorResult<E = Error> {
|
|
2
2
|
readonly success: false;
|
|
3
3
|
readonly error: E;
|
|
4
|
-
readonly map: <M>(mapFunction: (value:
|
|
4
|
+
readonly map: <M>(mapFunction: (value: never) => M) => IErrorResult<E>;
|
|
5
|
+
readonly mapAsync: <M>(mapFunction: (value: never) => Promise<M>) => Promise<IErrorResult<E>>;
|
|
6
|
+
readonly mapErr: <M>(mapFunction: (value: E) => M) => IErrorResult<M>;
|
|
7
|
+
readonly mapErrAsync: <M>(mapFunction: (value: E) => Promise<M>) => Promise<IErrorResult<M>>;
|
|
5
8
|
}
|
|
6
9
|
|
|
7
10
|
interface ISuccessResult<T = void> {
|
|
8
11
|
readonly success: true;
|
|
9
12
|
readonly value: T;
|
|
10
13
|
readonly map: <M>(mapFunction: (value: T) => M) => ISuccessResult<M>;
|
|
14
|
+
readonly mapAsync: <M>(mapFunction: (value: T) => Promise<M>) => Promise<ISuccessResult<M>>;
|
|
15
|
+
readonly mapErr: <M>(mapFunction: (value: never) => M) => ISuccessResult<T>;
|
|
16
|
+
readonly mapErrAsync: <M>(mapFunction: (value: never) => Promise<M>) => Promise<ISuccessResult<T>>;
|
|
11
17
|
}
|
|
12
18
|
|
|
13
|
-
type
|
|
19
|
+
type Result<T = void, E = Error> = ISuccessResult<T> | IErrorResult<E>;
|
|
14
20
|
declare function success(): ISuccessResult;
|
|
15
21
|
declare function success<T>(value: T): ISuccessResult<T>;
|
|
16
22
|
declare function fail<E>(error: E): IErrorResult<E>;
|
|
17
|
-
declare const isSuccessResult: <T, E = Error>(result:
|
|
18
|
-
declare const isErrorResult: <T, E = Error>(result:
|
|
19
|
-
declare function combine(...results:
|
|
23
|
+
declare const isSuccessResult: <T, E = Error>(result: Result<T, E>) => result is ISuccessResult<T>;
|
|
24
|
+
declare const isErrorResult: <T, E = Error>(result: Result<T, E>) => result is IErrorResult<E>;
|
|
25
|
+
declare function combine(...results: Result[]): Result;
|
|
20
26
|
|
|
21
|
-
export { type IErrorResult, type ISuccessResult, type
|
|
27
|
+
export { type IErrorResult, type ISuccessResult, type Result, combine, fail, isErrorResult, isSuccessResult, success };
|
package/dist/index.js
CHANGED
|
@@ -4,20 +4,42 @@ var ErrorResult = class _ErrorResult {
|
|
|
4
4
|
this.error = error;
|
|
5
5
|
this.success = false;
|
|
6
6
|
}
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters
|
|
7
8
|
map(mapFunction) {
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await
|
|
12
|
+
async mapAsync(mapFunction) {
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
mapErr(mapFunction) {
|
|
8
16
|
return new _ErrorResult(mapFunction(this.error));
|
|
9
17
|
}
|
|
18
|
+
async mapErrAsync(mapFunction) {
|
|
19
|
+
return new _ErrorResult(await mapFunction(this.error));
|
|
20
|
+
}
|
|
10
21
|
};
|
|
11
22
|
|
|
12
23
|
// src/successResult.mts
|
|
13
24
|
var SuccessResult = class _SuccessResult {
|
|
14
25
|
constructor(value) {
|
|
15
|
-
this.value = value;
|
|
16
26
|
this.success = true;
|
|
27
|
+
this.value = value;
|
|
17
28
|
}
|
|
18
29
|
map(mapFunction) {
|
|
19
30
|
return new _SuccessResult(mapFunction(this.value));
|
|
20
31
|
}
|
|
32
|
+
async mapAsync(mapFunction) {
|
|
33
|
+
return new _SuccessResult(await mapFunction(this.value));
|
|
34
|
+
}
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters
|
|
36
|
+
mapErr(mapFunction) {
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await
|
|
40
|
+
async mapErrAsync(mapFunction) {
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
21
43
|
};
|
|
22
44
|
|
|
23
45
|
// src/index.mts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errorResult.mts","../src/successResult.mts","../src/index.mts"],"sourcesContent":["export interface IErrorResult<E = Error> {\n readonly success: false;\n readonly error: E;\n readonly map: <M>(mapFunction: (value: E) => M) => IErrorResult<M>;\n}\n\nexport class ErrorResult<E> implements IErrorResult<E> {\n public readonly success = false as const;\n\n public constructor(public readonly error: E) { /* empty */ }\n\n public map<M>(mapFunction: (error: E) => M): ErrorResult<M> {\n return new ErrorResult(mapFunction(this.error));\n }\n}\n","export interface ISuccessResult<T = void> {\n readonly success: true;\n readonly value: T;\n readonly map: <M>(mapFunction: (value: T) => M) => ISuccessResult<M>;\n}\n\nexport class SuccessResult<T = void> implements ISuccessResult<T> {\n public readonly success = true as const;\n\n public constructor(public
|
|
1
|
+
{"version":3,"sources":["../src/errorResult.mts","../src/successResult.mts","../src/index.mts"],"sourcesContent":["export interface IErrorResult<E = Error> {\n readonly success: false;\n readonly error: E;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\n readonly map: <M>(mapFunction: (value: never) => M) => IErrorResult<E>;\n readonly mapAsync: <M>(mapFunction: (value: never) => Promise<M>) => Promise<IErrorResult<E>>;\n readonly mapErr: <M>(mapFunction: (value: E) => M) => IErrorResult<M>;\n readonly mapErrAsync: <M>(mapFunction: (value: E) => Promise<M>) => Promise<IErrorResult<M>>;\n}\n\nexport class ErrorResult<E> implements IErrorResult<E> {\n public readonly success = false as const;\n\n public constructor(public readonly error: E) { /* empty */ }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters\n public map<M>(mapFunction: (error: never) => M): this {\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await\n public async mapAsync<M>(mapFunction: (value: never) => Promise<M>): Promise<this> {\n return this;\n }\n\n public mapErr<M>(mapFunction: (error: E) => M): ErrorResult<M> {\n return new ErrorResult(mapFunction(this.error));\n }\n\n public async mapErrAsync<M>(mapFunction: (value: E) => Promise<M>): Promise<ErrorResult<M>> {\n return new ErrorResult(await mapFunction(this.error));\n }\n}\n","export interface ISuccessResult<T = void> {\n readonly success: true;\n readonly value: T;\n readonly map: <M>(mapFunction: (value: T) => M) => ISuccessResult<M>;\n readonly mapAsync: <M>(mapFunction: (value: T) => Promise<M>) => Promise<ISuccessResult<M>>;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\n readonly mapErr: <M>(mapFunction: (value: never) => M) => ISuccessResult<T>;\n readonly mapErrAsync: <M>(mapFunction: (value: never) => Promise<M>) => Promise<ISuccessResult<T>>;\n}\n\nexport class SuccessResult<T = void> implements ISuccessResult<T> {\n public readonly success = true as const;\n public readonly value: T;\n\n public constructor(value?: T) {\n this.value = value as T;\n }\n\n public map<M>(mapFunction: (value: T) => M): SuccessResult<M> {\n return new SuccessResult(mapFunction(this.value));\n }\n\n public async mapAsync<M>(mapFunction: (value: T) => Promise<M>): Promise<SuccessResult<M>> {\n return new SuccessResult(await mapFunction(this.value));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters\n public mapErr<M>(mapFunction: (error: never) => M): this {\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await\n public async mapErrAsync<M>(mapFunction: (value: never) => Promise<M>): Promise<this> {\n return this;\n }\n};\n","import type { IErrorResult } from './errorResult.mjs';\nimport { ErrorResult } from './errorResult.mjs';\nimport type { ISuccessResult } from './successResult.mjs';\nimport { SuccessResult } from './successResult.mjs';\n\nexport type { ISuccessResult };\nexport type { IErrorResult };\n\nexport type Result<T = void, E = Error> = ISuccessResult<T> | IErrorResult<E>;\n\nexport function success(): ISuccessResult;\nexport function success<T>(value: T): ISuccessResult<T>;\nexport function success<T>(value?: T): ISuccessResult<T> {\n return new SuccessResult(value as T);\n};\n\nexport function fail<E>(error: E): IErrorResult<E> {\n return new ErrorResult(error);\n}\n\nexport const isSuccessResult = <T, E = Error>(result: Result<T, E>): result is ISuccessResult<T> => {\n return result.success;\n};\n\nexport const isErrorResult = <T, E = Error>(result: Result<T, E>): result is IErrorResult<E> => {\n return !result.success;\n};\n\nexport function combine(...results: Result[]): Result {\n for (const r of results) {\n if (!r.success) {\n return r;\n }\n }\n return new SuccessResult(undefined);\n}\n"],"mappings":";AAUO,IAAM,cAAN,MAAM,aAA0C;AAAA,EAG9C,YAA4B,OAAU;AAAV;AAFnC,SAAgB,UAAU;AAAA,EAEiC;AAAA;AAAA,EAGpD,IAAO,aAAwC;AACpD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAa,SAAY,aAA0D;AACjF,WAAO;AAAA,EACT;AAAA,EAEO,OAAU,aAA8C;AAC7D,WAAO,IAAI,aAAY,YAAY,KAAK,KAAK,CAAC;AAAA,EAChD;AAAA,EAEA,MAAa,YAAe,aAAgE;AAC1F,WAAO,IAAI,aAAY,MAAM,YAAY,KAAK,KAAK,CAAC;AAAA,EACtD;AACF;;;ACtBO,IAAM,gBAAN,MAAM,eAAqD;AAAA,EAIzD,YAAY,OAAW;AAH9B,SAAgB,UAAU;AAIxB,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,IAAO,aAAgD;AAC5D,WAAO,IAAI,eAAc,YAAY,KAAK,KAAK,CAAC;AAAA,EAClD;AAAA,EAEA,MAAa,SAAY,aAAkE;AACzF,WAAO,IAAI,eAAc,MAAM,YAAY,KAAK,KAAK,CAAC;AAAA,EACxD;AAAA;AAAA,EAGO,OAAU,aAAwC;AACvD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAa,YAAe,aAA0D;AACpF,WAAO;AAAA,EACT;AACF;;;ACvBO,SAAS,QAAW,OAA8B;AACvD,SAAO,IAAI,cAAc,KAAU;AACrC;AAEO,SAAS,KAAQ,OAA2B;AACjD,SAAO,IAAI,YAAY,KAAK;AAC9B;AAEO,IAAM,kBAAkB,CAAe,WAAsD;AAClG,SAAO,OAAO;AAChB;AAEO,IAAM,gBAAgB,CAAe,WAAoD;AAC9F,SAAO,CAAC,OAAO;AACjB;AAEO,SAAS,WAAW,SAA2B;AACpD,aAAW,KAAK,SAAS;AACvB,QAAI,CAAC,EAAE,SAAS;AACd,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO,IAAI,cAAc,MAAS;AACpC;","names":[]}
|