@squiz/optimization-utils 6.0.0 → 6.0.2
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.
|
@@ -1,20 +1,43 @@
|
|
|
1
1
|
export type ResultType = 'success' | 'failure';
|
|
2
|
-
export declare class Result<TData, TError = Error> {
|
|
2
|
+
export declare class Result<const TData, const TError = Error> {
|
|
3
3
|
readonly type: ResultType;
|
|
4
4
|
readonly data?: TData;
|
|
5
5
|
readonly error?: TError;
|
|
6
6
|
private constructor();
|
|
7
|
-
static success<U>(data?: U): Result<U, never>;
|
|
8
|
-
static failure<TError>(error: TError): Result<never, TError>;
|
|
9
|
-
isSuccess<ThisType extends Result<
|
|
7
|
+
static success<const U>(data?: U): Result<U, never>;
|
|
8
|
+
static failure<const TError>(error: TError): Result<never, TError>;
|
|
9
|
+
isSuccess<ThisType extends Result<TData, TError>>(this: ThisType): this is Omit<Result<TData>, 'data'> & {
|
|
10
10
|
data: TData;
|
|
11
11
|
type: 'success';
|
|
12
12
|
};
|
|
13
|
-
isFailure<ThisType extends Result<
|
|
13
|
+
isFailure<ThisType extends Result<TData, TError>>(this: ThisType): this is Omit<Result<TData>, 'error'> & {
|
|
14
14
|
error: TError;
|
|
15
15
|
type: 'failure';
|
|
16
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* Checks if the error in this Result instance is an instance of any of the provided error types
|
|
19
|
+
* or equals any of the provided error values.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const result = Result.failure(new TypeError('Invalid type'));
|
|
24
|
+
* result.isErrorInstanceOf(TypeError); // true
|
|
25
|
+
* result.isErrorInstanceOf(RangeError); // false
|
|
26
|
+
* result.isErrorInstanceOf(TypeError, RangeError); // true
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
17
29
|
isErrorInstanceOf(...errorTypes: Array<new (...args: Array<any>) => any>): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Checks if the error in this Result instance equals any of the provided error values.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const result = Result.failure('MISSING_QUERY_EXECUTION_ID');
|
|
36
|
+
* result.isErrorInstanceOf('MISSING_QUERY_EXECUTION_ID'); // true
|
|
37
|
+
* result.isErrorInstanceOf('OTHER_ERROR'); // false
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
isErrorInstanceOf(...errorTypes: Array<unknown>): boolean;
|
|
18
41
|
throw(): never | void;
|
|
19
42
|
unwrap(): TData;
|
|
20
43
|
match<TResult, TErrorResult>(handlers: {
|
|
@@ -25,7 +25,14 @@ class Result {
|
|
|
25
25
|
isErrorInstanceOf(
|
|
26
26
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
27
|
...errorTypes) {
|
|
28
|
-
return errorTypes.some((errorType) =>
|
|
28
|
+
return errorTypes.some((errorType) => {
|
|
29
|
+
if (typeof errorType === 'function') {
|
|
30
|
+
return this.error instanceof errorType;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return this.error === errorType;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
29
36
|
}
|
|
30
37
|
throw() {
|
|
31
38
|
if (this.error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Result.js","sourceRoot":"","sources":["../../src/data-structures/Result.ts"],"names":[],"mappings":";;;AAEA,MAAa,MAAM;IACD,IAAI,CAAa;IACjB,IAAI,CAAS;IACb,KAAK,CAAU;IAE/B,YAAoB,IAAgB,EAAE,IAAY,EAAE,KAAc;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"Result.js","sourceRoot":"","sources":["../../src/data-structures/Result.ts"],"names":[],"mappings":";;;AAEA,MAAa,MAAM;IACD,IAAI,CAAa;IACjB,IAAI,CAAS;IACb,KAAK,CAAU;IAE/B,YAAoB,IAAgB,EAAE,IAAY,EAAE,KAAc;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,CAAU,IAAQ;QAC9B,OAAO,IAAI,MAAM,CAAW,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,OAAO,CAAe,KAAa;QACxC,OAAO,IAAI,MAAM,CAAgB,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,SAAS;QAGP,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjC,CAAC;IAED,SAAS;QAMP,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjC,CAAC;IA6BD,iBAAiB;IACf,8DAA8D;IAC9D,GAAG,UAA+D;QAElE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACnC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;gBACpC,OAAO,IAAI,CAAC,KAAK,YAAY,SAAS,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,IAAK,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAwB,QAG5B;QACC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;IACrC,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;IACpC,CAAC;CACF;AAlHD,wBAkHC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@squiz/optimization-utils",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"dependencies": {},
|
|
35
35
|
"devDependencies": {},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"inversify": "^7.
|
|
38
|
-
"@squiz/optimization-logger": "^1.10.
|
|
37
|
+
"inversify": "^7.11.0",
|
|
38
|
+
"@squiz/optimization-logger": "^1.10.1"
|
|
39
39
|
},
|
|
40
40
|
"author": "",
|
|
41
41
|
"license": "ISC"
|