@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<unknown, unknown>>(this: ThisType): this is Omit<Result<TData>, 'data'> & {
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<unknown, unknown>>(this: ThisType): this is Omit<Result<TData>, 'error'> & {
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) => this.error instanceof 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,CAAI,IAAQ;QACxB,OAAO,IAAI,MAAM,CAAW,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,OAAO,CAAS,KAAa;QAClC,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;IAED,iBAAiB;IACf,8DAA8D;IAC9D,GAAG,UAAmD;QAEtD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,YAAY,SAAS,CAAC,CAAC;IACzE,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;AAjFD,wBAiFC"}
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.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.10.6",
38
- "@squiz/optimization-logger": "^1.10.0"
37
+ "inversify": "^7.11.0",
38
+ "@squiz/optimization-logger": "^1.10.1"
39
39
  },
40
40
  "author": "",
41
41
  "license": "ISC"