cancelable-promise
Advanced tools
Comparing version 4.1.0 to 4.2.0
@@ -0,1 +1,8 @@ | ||
## [4.2.0](https://github.com/alkemics/CancelablePromise/releases/tag/v4.2.0) (2021-06-17) | ||
- Fix finally usecase always been called | ||
- Merge onCancelList and finallyList | ||
- Add isCancelablePromise util | ||
- Migrate to Typescript and improve umd/esm outputs | ||
## [4.1.0](https://github.com/alkemics/CancelablePromise/releases/tag/v4.1.0) (2021-06-16) | ||
@@ -2,0 +9,0 @@ |
@@ -1,311 +0,48 @@ | ||
type CancelablePromiseExecutor<T> = ( | ||
resolve: (value?: T | PromiseLike<T>) => void, | ||
reject: (reason?: any) => void, | ||
onCancel: (cancelHandler: () => void) => void | ||
) => void; | ||
interface PromiseFulfilledResult<T> { | ||
status: 'fulfilled'; | ||
value: T; | ||
declare class CancelablePromiseInternal<T = any> { | ||
#private; | ||
constructor({ executor, internals, promise, }: { | ||
executor?: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void, onCancel: (cancelHandler: () => void) => void) => void; | ||
internals?: Internals; | ||
promise?: Promise<T>; | ||
}); | ||
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1> | CancelablePromise<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2> | CancelablePromise<TResult2>) | undefined | null): CancelablePromise<TResult1 | TResult2>; | ||
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult> | CancelablePromise<TResult>) | undefined | null): CancelablePromise<T | TResult>; | ||
finally(onfinally?: (() => void) | undefined | null, runWhenCanceled?: boolean): CancelablePromise<T>; | ||
cancel(): void; | ||
isCanceled(): boolean; | ||
} | ||
interface PromiseRejectedResult { | ||
status: 'rejected'; | ||
reason: any; | ||
export declare class CancelablePromise<T = any> extends CancelablePromiseInternal<T> { | ||
static all: { | ||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>, T11 | PromiseLike<T11>, T12 | PromiseLike<T12>]): CancelablePromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12]>; | ||
<T1_1, T2_1, T3_1, T4_1, T5_1, T6_1, T7_1, T8_1, T9_1, T10_1, T11_1>(values: readonly [T1_1 | PromiseLike<T1_1>, T2_1 | PromiseLike<T2_1>, T3_1 | PromiseLike<T3_1>, T4_1 | PromiseLike<T4_1>, T5_1 | PromiseLike<T5_1>, T6_1 | PromiseLike<T6_1>, T7_1 | PromiseLike<T7_1>, T8_1 | PromiseLike<T8_1>, T9_1 | PromiseLike<T9_1>, T10_1 | PromiseLike<T10_1>, T11_1 | PromiseLike<T11_1>]): CancelablePromise<[T1_1, T2_1, T3_1, T4_1, T5_1, T6_1, T7_1, T8_1, T9_1, T10_1, T11_1]>; | ||
<T1_2, T2_2, T3_2, T4_2, T5_2, T6_2, T7_2, T8_2, T9_2, T10_2>(values: readonly [T1_2 | PromiseLike<T1_2>, T2_2 | PromiseLike<T2_2>, T3_2 | PromiseLike<T3_2>, T4_2 | PromiseLike<T4_2>, T5_2 | PromiseLike<T5_2>, T6_2 | PromiseLike<T6_2>, T7_2 | PromiseLike<T7_2>, T8_2 | PromiseLike<T8_2>, T9_2 | PromiseLike<T9_2>, T10_2 | PromiseLike<T10_2>]): CancelablePromise<[T1_2, T2_2, T3_2, T4_2, T5_2, T6_2, T7_2, T8_2, T9_2, T10_2]>; | ||
<T1_3, T2_3, T3_3, T4_3, T5_3, T6_3, T7_3, T8_3, T9_3>(values: readonly [T1_3 | PromiseLike<T1_3>, T2_3 | PromiseLike<T2_3>, T3_3 | PromiseLike<T3_3>, T4_3 | PromiseLike<T4_3>, T5_3 | PromiseLike<T5_3>, T6_3 | PromiseLike<T6_3>, T7_3 | PromiseLike<T7_3>, T8_3 | PromiseLike<T8_3>, T9_3 | PromiseLike<T9_3>]): CancelablePromise<[T1_3, T2_3, T3_3, T4_3, T5_3, T6_3, T7_3, T8_3, T9_3]>; | ||
<T1_4, T2_4, T3_4, T4_4, T5_4, T6_4, T7_4, T8_4>(values: readonly [T1_4 | PromiseLike<T1_4>, T2_4 | PromiseLike<T2_4>, T3_4 | PromiseLike<T3_4>, T4_4 | PromiseLike<T4_4>, T5_4 | PromiseLike<T5_4>, T6_4 | PromiseLike<T6_4>, T7_4 | PromiseLike<T7_4>, T8_4 | PromiseLike<T8_4>]): CancelablePromise<[T1_4, T2_4, T3_4, T4_4, T5_4, T6_4, T7_4, T8_4]>; | ||
<T1_5, T2_5, T3_5, T4_5, T5_5, T6_5, T7_5>(values: readonly [T1_5 | PromiseLike<T1_5>, T2_5 | PromiseLike<T2_5>, T3_5 | PromiseLike<T3_5>, T4_5 | PromiseLike<T4_5>, T5_5 | PromiseLike<T5_5>, T6_5 | PromiseLike<T6_5>, T7_5 | PromiseLike<T7_5>]): CancelablePromise<[T1_5, T2_5, T3_5, T4_5, T5_5, T6_5, T7_5]>; | ||
<T1_6, T2_6, T3_6, T4_6, T5_6, T6_6>(values: readonly [T1_6 | PromiseLike<T1_6>, T2_6 | PromiseLike<T2_6>, T3_6 | PromiseLike<T3_6>, T4_6 | PromiseLike<T4_6>, T5_6 | PromiseLike<T5_6>, T6_6 | PromiseLike<T6_6>]): CancelablePromise<[T1_6, T2_6, T3_6, T4_6, T5_6, T6_6]>; | ||
<T1_7, T2_7, T3_7, T4_7, T5_7>(values: readonly [T1_7 | PromiseLike<T1_7>, T2_7 | PromiseLike<T2_7>, T3_7 | PromiseLike<T3_7>, T4_7 | PromiseLike<T4_7>, T5_7 | PromiseLike<T5_7>]): CancelablePromise<[T1_7, T2_7, T3_7, T4_7, T5_7]>; | ||
<T1_8, T2_8, T3_8, T4_8>(values: readonly [T1_8 | PromiseLike<T1_8>, T2_8 | PromiseLike<T2_8>, T3_8 | PromiseLike<T3_8>, T4_8 | PromiseLike<T4_8>]): CancelablePromise<[T1_8, T2_8, T3_8, T4_8]>; | ||
<T1_9, T2_9, T3_9>(values: readonly [T1_9 | PromiseLike<T1_9>, T2_9 | PromiseLike<T2_9>, T3_9 | PromiseLike<T3_9>]): CancelablePromise<[T1_9, T2_9, T3_9]>; | ||
<T1_10, T2_10>(values: readonly [T1_10 | PromiseLike<T1_10>, T2_10 | PromiseLike<T2_10>]): CancelablePromise<[T1_10, T2_10]>; | ||
<T_1>(values: readonly (T_1 | PromiseLike<T_1>)[]): CancelablePromise<T_1[]>; | ||
}; | ||
static allSettled: { | ||
<T_1 extends readonly unknown[] | readonly [unknown]>(values: T_1): CancelablePromise<{ -readonly [P in keyof T_1]: PromiseSettledResult<T_1[P] extends PromiseLike<infer U> ? U : T_1[P]>; }>; | ||
<T_2>(values: Iterable<T_2>): CancelablePromise<PromiseSettledResult<T_2 extends PromiseLike<infer U_1> ? U_1 : T_2>[]>; | ||
}; | ||
static race: <T_1>(values: readonly T_1[]) => CancelablePromise<T_1 extends PromiseLike<infer U> ? U : T_1>; | ||
static resolve: { | ||
(): CancelablePromise<void>; | ||
<T_1>(value: T_1 | PromiseLike<T_1> | CancelablePromise<T_1>): CancelablePromise<T_1>; | ||
}; | ||
static reject: <T_1 = never>(reason?: any) => CancelablePromise<T_1>; | ||
static isCancelable: typeof isCancelablePromise; | ||
constructor(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void, onCancel: (cancelHandler: () => void) => void) => void); | ||
} | ||
type PromiseSettledResult<T> = | ||
| PromiseFulfilledResult<T> | ||
| PromiseRejectedResult; | ||
export interface CancelablePromiseType<T> { | ||
/** | ||
* Attaches callbacks for the resolution and/or rejection of the Promise. | ||
* @param onfulfilled The callback to execute when the Promise is resolved. | ||
* @param onrejected The callback to execute when the Promise is rejected. | ||
* @returns A Promise for the completion of which ever callback is executed. | ||
*/ | ||
then<TResult1 = T, TResult2 = never>( | ||
onfulfilled?: | ||
| ((value: T) => TResult1 | PromiseLike<TResult1>) | ||
| undefined | ||
| null, | ||
onrejected?: | ||
| ((reason: any) => TResult2 | PromiseLike<TResult2>) | ||
| undefined | ||
| null | ||
): CancelablePromiseType<TResult1 | TResult2>; | ||
/** | ||
* Attaches a callback for only the rejection of the Promise. | ||
* @param onrejected The callback to execute when the Promise is rejected. | ||
* @returns A Promise for the completion of the callback. | ||
*/ | ||
catch<TResult = never>( | ||
onrejected?: | ||
| ((reason: any) => TResult | PromiseLike<TResult>) | ||
| undefined | ||
| null | ||
): CancelablePromiseType<T | TResult>; | ||
/** | ||
* Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The | ||
* resolved value cannot be modified from the callback. | ||
* @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). | ||
* @returns A Promise for the completion of the callback. | ||
*/ | ||
finally( | ||
onfinally?: (() => void) | undefined | null, | ||
runWhenCanceled?: boolean | ||
): CancelablePromiseType<T>; | ||
cancel(): void; | ||
isCanceled(): boolean; | ||
export default CancelablePromise; | ||
export declare function cancelable<T = any>(promise: Promise<T>): CancelablePromise<T>; | ||
export declare function isCancelablePromise(promise: any): boolean; | ||
interface Internals { | ||
isCanceled: boolean; | ||
onCancelList: any[]; | ||
} | ||
export interface CancelablePromiseConstructor { | ||
/** | ||
* Creates a new Promise. | ||
* @param executor A callback used to initialize the promise. This callback is passed two arguments: | ||
* a resolve callback used to resolve the promise with a value or the result of another promise, | ||
* and a reject callback used to reject the promise with a provided reason or error. | ||
*/ | ||
new <T1>(executor: CancelablePromiseExecutor<T1>): CancelablePromiseType<T1>; | ||
<T1>(executor: CancelablePromiseExecutor<T1>): CancelablePromiseType<T1>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5>, | ||
T6 | PromiseLike<T6>, | ||
T7 | PromiseLike<T7>, | ||
T8 | PromiseLike<T8>, | ||
T9 | PromiseLike<T9>, | ||
T10 | PromiseLike<T10> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5>, | ||
T6 | PromiseLike<T6>, | ||
T7 | PromiseLike<T7>, | ||
T8 | PromiseLike<T8>, | ||
T9 | PromiseLike<T9> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5, T6, T7, T8>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5>, | ||
T6 | PromiseLike<T6>, | ||
T7 | PromiseLike<T7>, | ||
T8 | PromiseLike<T8> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5, T6, T7, T8]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5, T6, T7>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5>, | ||
T6 | PromiseLike<T6>, | ||
T7 | PromiseLike<T7> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5, T6, T7]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5, T6>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5>, | ||
T6 | PromiseLike<T6> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5, T6]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2>( | ||
values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>] | ||
): CancelablePromiseType<[T1, T2]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1>( | ||
values: readonly (T1 | PromiseLike<T1>)[] | ||
): CancelablePromiseType<T1[]>; | ||
/** | ||
* Creates a Promise that is resolved or rejected when any of the provided Promises are resolved | ||
* or rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
race<T1>( | ||
values: readonly T1[] | ||
): CancelablePromiseType<T1 extends PromiseLike<infer U> ? U : T1>; | ||
/** | ||
* Creates a Promise that is resolved or rejected when any of the provided Promises are resolved | ||
* or rejected. | ||
* @param values An iterable of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
race<T1>( | ||
values: Iterable<T1> | ||
): CancelablePromiseType<T1 extends PromiseLike<infer U> ? U : T1>; | ||
/** | ||
* Creates a new rejected promise for the provided reason. | ||
* @param reason The reason the promise was rejected. | ||
* @returns A new rejected Promise. | ||
*/ | ||
reject<T1 = never>(reason?: any): CancelablePromiseType<T1>; | ||
/** | ||
* Creates a new resolved promise for the provided value. | ||
* @param value A promise. | ||
* @returns A promise whose internal state matches the provided promise. | ||
*/ | ||
resolve<T1>(value: T1 | PromiseLike<T1>): CancelablePromiseType<T1>; | ||
/** | ||
* Creates a new resolved promise . | ||
* @returns A resolved promise. | ||
*/ | ||
resolve(): CancelablePromiseType<void>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all | ||
* of the provided Promises resolve or reject. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
allSettled<T1 extends readonly unknown[] | readonly [unknown]>( | ||
values: T1 | ||
): CancelablePromiseType< | ||
{ | ||
-readonly [P in keyof T1]: PromiseSettledResult< | ||
T1[P] extends PromiseLike<infer U> ? U : T1[P] | ||
>; | ||
} | ||
>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all | ||
* of the provided Promises resolve or reject. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
allSettled<T1>( | ||
values: Iterable<T1> | ||
): CancelablePromiseType< | ||
PromiseSettledResult<T1 extends PromiseLike<infer U> ? U : T1>[] | ||
>; | ||
} | ||
export function cancelable<T>( | ||
promise: PromiseLike<T> | ||
): CancelablePromiseType<T>; | ||
export const CancelablePromise: CancelablePromiseConstructor; | ||
export default CancelablePromise; |
{ | ||
"name": "cancelable-promise", | ||
"version": "4.1.0", | ||
"version": "4.2.0", | ||
"description": "A simple cancelable promise", | ||
@@ -12,13 +12,15 @@ "keywords": [ | ||
"module": "esm/CancelablePromise.mjs", | ||
"jsnext:main": "src/CancelablePromise.js", | ||
"types": "src/CancelablePromise.d.ts", | ||
"types": "esm/CancelablePromise.d.ts", | ||
"files": [ | ||
"umd/CancelablePromise.js", | ||
"umd/CancelablePromise.js.map", | ||
"umd/CancelablePromise.min.js", | ||
"umd/CancelablePromise.min.js.map", | ||
"umd/CancelablePromise.d.ts", | ||
"esm/CancelablePromise.mjs", | ||
"esm/CancelablePromise.mjs.map", | ||
"esm/CancelablePromise.min.mjs", | ||
"esm/CancelablePromise.min.mjs.map", | ||
"esm/CancelablePromise.d.ts", | ||
"src/CancelablePromise.js", | ||
"src/CancelablePromise.d.ts", | ||
"src/CancelablePromise.ts", | ||
"LICENSE", | ||
@@ -30,11 +32,16 @@ "README.md", | ||
"scripts": { | ||
"babel": "babel src/CancelablePromise.js -d umd", | ||
"build": "npm run clean && npm run babel && npm run copy && npm run uglify", | ||
"build:babel:umd": "BABEL_ENV=umd babel src/CancelablePromise.ts -x '.ts' -d umd -s", | ||
"build:babel:esm": "BABEL_ENV=esm babel src/CancelablePromise.ts -x '.ts' -d esm -s -f 'CancelablePromise.mjs' --out-file-extension '.mjs'", | ||
"build:type": "tsc --project tsconfig.build.json --declaration --emitDeclarationOnly --outDir umd", | ||
"build:umd": "npm run build:babel:umd && npm run build:type", | ||
"build:esm": "npm run build:babel:esm", | ||
"build": "npm run clean && npm run build:umd && npm run build:esm && npm run copy && npm run uglify", | ||
"clean": "node scripts.js clean", | ||
"copy": "node scripts.js copy", | ||
"cypress:electron": "cypress run --browser electron --headless", | ||
"cypress": "cypress run --browser chrome --headless", | ||
"jest:rc": "jest --findRelatedTests", | ||
"jest": "jest --ci --maxWorkers 1", | ||
"lint:rc": "eslint --fix", | ||
"lint": "eslint .", | ||
"jest:rc": "BABEL_ENV=test jest --findRelatedTests", | ||
"jest": "BABEL_ENV=test jest --ci --maxWorkers 1", | ||
"lint:rc": "eslint --ext .js,.ts --fix", | ||
"lint": "eslint . --ext .js,.ts", | ||
"prepare": "husky install", | ||
@@ -50,7 +57,8 @@ "prepublish": "npm run build", | ||
"release:patch": "node scripts.js prepare_release patch", | ||
"test:e2e": "concurrently 'npm run test:serve' 'wait-on http://localhost:3000/esm.html && npm run cypress' --kill-others --success first", | ||
"test:e2e": "concurrently 'npm run test:serve' 'wait-on http://localhost:3000/esm.html && npm run cypress' --kill-others --kill-others-on-fail --success first", | ||
"test:serve": "node tests/esm.server.js", | ||
"test": "npm run lint && npm run jest", | ||
"uglify:esm": "terser esm/CancelablePromise.mjs -c -m -o esm/CancelablePromise.min.mjs", | ||
"uglify:umd": "terser umd/CancelablePromise.js -c -m -o umd/CancelablePromise.min.js", | ||
"test": "npm run types && npm run lint && npm run jest", | ||
"types": "tsc --project tsconfig.json --noEmit --pretty", | ||
"uglify:esm": "terser esm/CancelablePromise.mjs -c -m -o esm/CancelablePromise.min.mjs --source-map \"filename='CancelablePromise.min.mjs.map',url='CancelablePromise.min.mjs.map'\"", | ||
"uglify:umd": "terser umd/CancelablePromise.js -c -m -o umd/CancelablePromise.min.js --source-map \"filename='CancelablePromise.min.js.map',url='CancelablePromise.min.js.map'\"", | ||
"uglify": "npm run uglify:umd && npm run uglify:esm" | ||
@@ -69,20 +77,25 @@ }, | ||
"devDependencies": { | ||
"@babel/cli": "~7.14.3", | ||
"@babel/core": "~7.14.3", | ||
"@babel/preset-env": "~7.14.2", | ||
"@babel/cli": "~7.14.5", | ||
"@babel/core": "~7.14.6", | ||
"@babel/preset-env": "~7.14.5", | ||
"@babel/preset-typescript": "~7.14.5", | ||
"@types/jest": "~26.0.23", | ||
"@typescript-eslint/eslint-plugin": "~4.27.0", | ||
"@typescript-eslint/parser": "~4.27.0", | ||
"babel-eslint": "~10.1.0", | ||
"concurrently": "~6.2.0", | ||
"core-js": "~3.13.0", | ||
"cypress": "~7.4.0", | ||
"eslint": "~7.27.0", | ||
"core-js": "~3.14.0", | ||
"cypress": "~7.5.0", | ||
"eslint": "~7.28.0", | ||
"express": "~4.17.1", | ||
"fs-extra": "~10.0.0", | ||
"husky": "~6.0.0", | ||
"jest": "~27.0.1", | ||
"jest": "~27.0.4", | ||
"lint-staged": "~11.0.0", | ||
"prettier": "~2.3.0", | ||
"prettier": "~2.3.1", | ||
"semver": "~7.3.5", | ||
"terser": "~5.7.0", | ||
"typescript": "~4.3.2", | ||
"wait-on": "~5.3.0" | ||
} | ||
} |
@@ -11,2 +11,3 @@ # cancelable-promise | ||
- See [core-js](https://github.com/zloirock/core-js#ecmascript-promise) for polyfills | ||
- For example, you can use https://polyfill.io/v3/polyfill.min.js?features=Promise%2CPromise.prototype.finally for Internet Explorer 11 | ||
@@ -134,3 +135,3 @@ FYI, you can cancel a fetch request with AbortController & AbortSignal. | ||
### CancelablePromise.cancel | ||
### cancelablePromise.cancel | ||
@@ -144,3 +145,3 @@ ```javascript | ||
### CancelablePromise.isCanceled | ||
### cancelablePromise.isCanceled | ||
@@ -154,3 +155,3 @@ ```javascript | ||
### CancelablePromise.finally | ||
### cancelablePromise.finally | ||
@@ -221,2 +222,36 @@ ```javascript | ||
#### CancelablePromise.isCancelable | ||
Returns `true` if parameter is a cancelable promise. | ||
```javascript | ||
import { cancelable, CancelablePromise } from 'cancelable-promise'; | ||
CancelablePromise.isCancelable(cancelable(new Promise(() => {}))); // true | ||
CancelablePromise.isCancelable(new CancelablePromise(() => {})); // true | ||
CancelablePromise.isCancelable(new Promise(() => {})); // false | ||
CancelablePromise.isCancelable(undefined); // false | ||
CancelablePromise.isCancelable({ cancel() {} }); // false | ||
``` | ||
### Utils | ||
#### isCancelablePromise | ||
Same as `CancelablePromise.isCancelable`, it returns `true` if parameter is a cancelable promise. | ||
```javascript | ||
import { | ||
cancelable, | ||
CancelablePromise, | ||
isCancelablePromise, | ||
} from 'cancelable-promise'; | ||
isCancelablePromise(cancelable(new Promise(() => {}))); // true | ||
isCancelablePromise(new CancelablePromise(() => {})); // true | ||
isCancelablePromise(new Promise(() => {})); // false | ||
isCancelablePromise(undefined); // false | ||
isCancelablePromise({ cancel() {} }); // false | ||
``` | ||
## Scripts | ||
@@ -223,0 +258,0 @@ |
@@ -1,311 +0,48 @@ | ||
type CancelablePromiseExecutor<T> = ( | ||
resolve: (value?: T | PromiseLike<T>) => void, | ||
reject: (reason?: any) => void, | ||
onCancel: (cancelHandler: () => void) => void | ||
) => void; | ||
interface PromiseFulfilledResult<T> { | ||
status: 'fulfilled'; | ||
value: T; | ||
declare class CancelablePromiseInternal<T = any> { | ||
#private; | ||
constructor({ executor, internals, promise, }: { | ||
executor?: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void, onCancel: (cancelHandler: () => void) => void) => void; | ||
internals?: Internals; | ||
promise?: Promise<T>; | ||
}); | ||
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1> | CancelablePromise<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2> | CancelablePromise<TResult2>) | undefined | null): CancelablePromise<TResult1 | TResult2>; | ||
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult> | CancelablePromise<TResult>) | undefined | null): CancelablePromise<T | TResult>; | ||
finally(onfinally?: (() => void) | undefined | null, runWhenCanceled?: boolean): CancelablePromise<T>; | ||
cancel(): void; | ||
isCanceled(): boolean; | ||
} | ||
interface PromiseRejectedResult { | ||
status: 'rejected'; | ||
reason: any; | ||
export declare class CancelablePromise<T = any> extends CancelablePromiseInternal<T> { | ||
static all: { | ||
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>, T11 | PromiseLike<T11>, T12 | PromiseLike<T12>]): CancelablePromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12]>; | ||
<T1_1, T2_1, T3_1, T4_1, T5_1, T6_1, T7_1, T8_1, T9_1, T10_1, T11_1>(values: readonly [T1_1 | PromiseLike<T1_1>, T2_1 | PromiseLike<T2_1>, T3_1 | PromiseLike<T3_1>, T4_1 | PromiseLike<T4_1>, T5_1 | PromiseLike<T5_1>, T6_1 | PromiseLike<T6_1>, T7_1 | PromiseLike<T7_1>, T8_1 | PromiseLike<T8_1>, T9_1 | PromiseLike<T9_1>, T10_1 | PromiseLike<T10_1>, T11_1 | PromiseLike<T11_1>]): CancelablePromise<[T1_1, T2_1, T3_1, T4_1, T5_1, T6_1, T7_1, T8_1, T9_1, T10_1, T11_1]>; | ||
<T1_2, T2_2, T3_2, T4_2, T5_2, T6_2, T7_2, T8_2, T9_2, T10_2>(values: readonly [T1_2 | PromiseLike<T1_2>, T2_2 | PromiseLike<T2_2>, T3_2 | PromiseLike<T3_2>, T4_2 | PromiseLike<T4_2>, T5_2 | PromiseLike<T5_2>, T6_2 | PromiseLike<T6_2>, T7_2 | PromiseLike<T7_2>, T8_2 | PromiseLike<T8_2>, T9_2 | PromiseLike<T9_2>, T10_2 | PromiseLike<T10_2>]): CancelablePromise<[T1_2, T2_2, T3_2, T4_2, T5_2, T6_2, T7_2, T8_2, T9_2, T10_2]>; | ||
<T1_3, T2_3, T3_3, T4_3, T5_3, T6_3, T7_3, T8_3, T9_3>(values: readonly [T1_3 | PromiseLike<T1_3>, T2_3 | PromiseLike<T2_3>, T3_3 | PromiseLike<T3_3>, T4_3 | PromiseLike<T4_3>, T5_3 | PromiseLike<T5_3>, T6_3 | PromiseLike<T6_3>, T7_3 | PromiseLike<T7_3>, T8_3 | PromiseLike<T8_3>, T9_3 | PromiseLike<T9_3>]): CancelablePromise<[T1_3, T2_3, T3_3, T4_3, T5_3, T6_3, T7_3, T8_3, T9_3]>; | ||
<T1_4, T2_4, T3_4, T4_4, T5_4, T6_4, T7_4, T8_4>(values: readonly [T1_4 | PromiseLike<T1_4>, T2_4 | PromiseLike<T2_4>, T3_4 | PromiseLike<T3_4>, T4_4 | PromiseLike<T4_4>, T5_4 | PromiseLike<T5_4>, T6_4 | PromiseLike<T6_4>, T7_4 | PromiseLike<T7_4>, T8_4 | PromiseLike<T8_4>]): CancelablePromise<[T1_4, T2_4, T3_4, T4_4, T5_4, T6_4, T7_4, T8_4]>; | ||
<T1_5, T2_5, T3_5, T4_5, T5_5, T6_5, T7_5>(values: readonly [T1_5 | PromiseLike<T1_5>, T2_5 | PromiseLike<T2_5>, T3_5 | PromiseLike<T3_5>, T4_5 | PromiseLike<T4_5>, T5_5 | PromiseLike<T5_5>, T6_5 | PromiseLike<T6_5>, T7_5 | PromiseLike<T7_5>]): CancelablePromise<[T1_5, T2_5, T3_5, T4_5, T5_5, T6_5, T7_5]>; | ||
<T1_6, T2_6, T3_6, T4_6, T5_6, T6_6>(values: readonly [T1_6 | PromiseLike<T1_6>, T2_6 | PromiseLike<T2_6>, T3_6 | PromiseLike<T3_6>, T4_6 | PromiseLike<T4_6>, T5_6 | PromiseLike<T5_6>, T6_6 | PromiseLike<T6_6>]): CancelablePromise<[T1_6, T2_6, T3_6, T4_6, T5_6, T6_6]>; | ||
<T1_7, T2_7, T3_7, T4_7, T5_7>(values: readonly [T1_7 | PromiseLike<T1_7>, T2_7 | PromiseLike<T2_7>, T3_7 | PromiseLike<T3_7>, T4_7 | PromiseLike<T4_7>, T5_7 | PromiseLike<T5_7>]): CancelablePromise<[T1_7, T2_7, T3_7, T4_7, T5_7]>; | ||
<T1_8, T2_8, T3_8, T4_8>(values: readonly [T1_8 | PromiseLike<T1_8>, T2_8 | PromiseLike<T2_8>, T3_8 | PromiseLike<T3_8>, T4_8 | PromiseLike<T4_8>]): CancelablePromise<[T1_8, T2_8, T3_8, T4_8]>; | ||
<T1_9, T2_9, T3_9>(values: readonly [T1_9 | PromiseLike<T1_9>, T2_9 | PromiseLike<T2_9>, T3_9 | PromiseLike<T3_9>]): CancelablePromise<[T1_9, T2_9, T3_9]>; | ||
<T1_10, T2_10>(values: readonly [T1_10 | PromiseLike<T1_10>, T2_10 | PromiseLike<T2_10>]): CancelablePromise<[T1_10, T2_10]>; | ||
<T_1>(values: readonly (T_1 | PromiseLike<T_1>)[]): CancelablePromise<T_1[]>; | ||
}; | ||
static allSettled: { | ||
<T_1 extends readonly unknown[] | readonly [unknown]>(values: T_1): CancelablePromise<{ -readonly [P in keyof T_1]: PromiseSettledResult<T_1[P] extends PromiseLike<infer U> ? U : T_1[P]>; }>; | ||
<T_2>(values: Iterable<T_2>): CancelablePromise<PromiseSettledResult<T_2 extends PromiseLike<infer U_1> ? U_1 : T_2>[]>; | ||
}; | ||
static race: <T_1>(values: readonly T_1[]) => CancelablePromise<T_1 extends PromiseLike<infer U> ? U : T_1>; | ||
static resolve: { | ||
(): CancelablePromise<void>; | ||
<T_1>(value: T_1 | PromiseLike<T_1> | CancelablePromise<T_1>): CancelablePromise<T_1>; | ||
}; | ||
static reject: <T_1 = never>(reason?: any) => CancelablePromise<T_1>; | ||
static isCancelable: typeof isCancelablePromise; | ||
constructor(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void, onCancel: (cancelHandler: () => void) => void) => void); | ||
} | ||
type PromiseSettledResult<T> = | ||
| PromiseFulfilledResult<T> | ||
| PromiseRejectedResult; | ||
export interface CancelablePromiseType<T> { | ||
/** | ||
* Attaches callbacks for the resolution and/or rejection of the Promise. | ||
* @param onfulfilled The callback to execute when the Promise is resolved. | ||
* @param onrejected The callback to execute when the Promise is rejected. | ||
* @returns A Promise for the completion of which ever callback is executed. | ||
*/ | ||
then<TResult1 = T, TResult2 = never>( | ||
onfulfilled?: | ||
| ((value: T) => TResult1 | PromiseLike<TResult1>) | ||
| undefined | ||
| null, | ||
onrejected?: | ||
| ((reason: any) => TResult2 | PromiseLike<TResult2>) | ||
| undefined | ||
| null | ||
): CancelablePromiseType<TResult1 | TResult2>; | ||
/** | ||
* Attaches a callback for only the rejection of the Promise. | ||
* @param onrejected The callback to execute when the Promise is rejected. | ||
* @returns A Promise for the completion of the callback. | ||
*/ | ||
catch<TResult = never>( | ||
onrejected?: | ||
| ((reason: any) => TResult | PromiseLike<TResult>) | ||
| undefined | ||
| null | ||
): CancelablePromiseType<T | TResult>; | ||
/** | ||
* Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The | ||
* resolved value cannot be modified from the callback. | ||
* @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). | ||
* @returns A Promise for the completion of the callback. | ||
*/ | ||
finally( | ||
onfinally?: (() => void) | undefined | null, | ||
runWhenCanceled?: boolean | ||
): CancelablePromiseType<T>; | ||
cancel(): void; | ||
isCanceled(): boolean; | ||
export default CancelablePromise; | ||
export declare function cancelable<T = any>(promise: Promise<T>): CancelablePromise<T>; | ||
export declare function isCancelablePromise(promise: any): boolean; | ||
interface Internals { | ||
isCanceled: boolean; | ||
onCancelList: any[]; | ||
} | ||
export interface CancelablePromiseConstructor { | ||
/** | ||
* Creates a new Promise. | ||
* @param executor A callback used to initialize the promise. This callback is passed two arguments: | ||
* a resolve callback used to resolve the promise with a value or the result of another promise, | ||
* and a reject callback used to reject the promise with a provided reason or error. | ||
*/ | ||
new <T1>(executor: CancelablePromiseExecutor<T1>): CancelablePromiseType<T1>; | ||
<T1>(executor: CancelablePromiseExecutor<T1>): CancelablePromiseType<T1>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5>, | ||
T6 | PromiseLike<T6>, | ||
T7 | PromiseLike<T7>, | ||
T8 | PromiseLike<T8>, | ||
T9 | PromiseLike<T9>, | ||
T10 | PromiseLike<T10> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5>, | ||
T6 | PromiseLike<T6>, | ||
T7 | PromiseLike<T7>, | ||
T8 | PromiseLike<T8>, | ||
T9 | PromiseLike<T9> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5, T6, T7, T8>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5>, | ||
T6 | PromiseLike<T6>, | ||
T7 | PromiseLike<T7>, | ||
T8 | PromiseLike<T8> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5, T6, T7, T8]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5, T6, T7>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5>, | ||
T6 | PromiseLike<T6>, | ||
T7 | PromiseLike<T7> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5, T6, T7]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5, T6>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5>, | ||
T6 | PromiseLike<T6> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5, T6]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4, T5>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4>, | ||
T5 | PromiseLike<T5> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4, T5]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3, T4>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3>, | ||
T4 | PromiseLike<T4> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3, T4]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2, T3>( | ||
values: readonly [ | ||
T1 | PromiseLike<T1>, | ||
T2 | PromiseLike<T2>, | ||
T3 | PromiseLike<T3> | ||
] | ||
): CancelablePromiseType<[T1, T2, T3]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1, T2>( | ||
values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>] | ||
): CancelablePromiseType<[T1, T2]>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all of the provided Promises | ||
* resolve, or rejected when any Promise is rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
all<T1>( | ||
values: readonly (T1 | PromiseLike<T1>)[] | ||
): CancelablePromiseType<T1[]>; | ||
/** | ||
* Creates a Promise that is resolved or rejected when any of the provided Promises are resolved | ||
* or rejected. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
race<T1>( | ||
values: readonly T1[] | ||
): CancelablePromiseType<T1 extends PromiseLike<infer U> ? U : T1>; | ||
/** | ||
* Creates a Promise that is resolved or rejected when any of the provided Promises are resolved | ||
* or rejected. | ||
* @param values An iterable of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
race<T1>( | ||
values: Iterable<T1> | ||
): CancelablePromiseType<T1 extends PromiseLike<infer U> ? U : T1>; | ||
/** | ||
* Creates a new rejected promise for the provided reason. | ||
* @param reason The reason the promise was rejected. | ||
* @returns A new rejected Promise. | ||
*/ | ||
reject<T1 = never>(reason?: any): CancelablePromiseType<T1>; | ||
/** | ||
* Creates a new resolved promise for the provided value. | ||
* @param value A promise. | ||
* @returns A promise whose internal state matches the provided promise. | ||
*/ | ||
resolve<T1>(value: T1 | PromiseLike<T1>): CancelablePromiseType<T1>; | ||
/** | ||
* Creates a new resolved promise . | ||
* @returns A resolved promise. | ||
*/ | ||
resolve(): CancelablePromiseType<void>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all | ||
* of the provided Promises resolve or reject. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
allSettled<T1 extends readonly unknown[] | readonly [unknown]>( | ||
values: T1 | ||
): CancelablePromiseType< | ||
{ | ||
-readonly [P in keyof T1]: PromiseSettledResult< | ||
T1[P] extends PromiseLike<infer U> ? U : T1[P] | ||
>; | ||
} | ||
>; | ||
/** | ||
* Creates a Promise that is resolved with an array of results when all | ||
* of the provided Promises resolve or reject. | ||
* @param values An array of Promises. | ||
* @returns A new Promise. | ||
*/ | ||
allSettled<T1>( | ||
values: Iterable<T1> | ||
): CancelablePromiseType< | ||
PromiseSettledResult<T1 extends PromiseLike<infer U> ? U : T1>[] | ||
>; | ||
} | ||
export function cancelable<T>( | ||
promise: PromiseLike<T> | ||
): CancelablePromiseType<T>; | ||
export const CancelablePromise: CancelablePromiseConstructor; | ||
export default CancelablePromise; |
@@ -0,1 +1,3 @@ | ||
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } | ||
(function (global, factory) { | ||
@@ -20,121 +22,263 @@ if (typeof define === "function" && define.amd) { | ||
_exports.cancelable = cancelable; | ||
_exports.CancelablePromise = CancelablePromise; | ||
_exports.default = void 0; | ||
_exports.isCancelablePromise = isCancelablePromise; | ||
_exports.default = _exports.CancelablePromise = void 0; | ||
function createCallback(onResult, options) { | ||
if (onResult) { | ||
return function (arg) { | ||
if (!options.isCanceled) { | ||
var result = onResult(arg); | ||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } | ||
if (result && typeof result.cancel === 'function') { | ||
if (!options.onCancelList) { | ||
options.onCancelList = []; | ||
} | ||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } | ||
options.onCancelList.push(result.cancel); | ||
} | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } | ||
return result; | ||
} | ||
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } | ||
return arg; | ||
}; | ||
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } | ||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } | ||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } | ||
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } | ||
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } | ||
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } | ||
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } | ||
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } | ||
var _internals = /*#__PURE__*/new WeakMap(); | ||
var _promise = /*#__PURE__*/new WeakMap(); | ||
var CancelablePromiseInternal = /*#__PURE__*/function () { | ||
function CancelablePromiseInternal(_ref) { | ||
var _ref$executor = _ref.executor, | ||
executor = _ref$executor === void 0 ? function () {} : _ref$executor, | ||
_ref$internals = _ref.internals, | ||
internals = _ref$internals === void 0 ? defaultInternals() : _ref$internals, | ||
_ref$promise = _ref.promise, | ||
promise = _ref$promise === void 0 ? new Promise(function (resolve, reject) { | ||
return executor(resolve, reject, function (onCancel) { | ||
internals.onCancelList.push(onCancel); | ||
}); | ||
}) : _ref$promise; | ||
_classCallCheck(this, CancelablePromiseInternal); | ||
_internals.set(this, { | ||
writable: true, | ||
value: void 0 | ||
}); | ||
_promise.set(this, { | ||
writable: true, | ||
value: void 0 | ||
}); | ||
this.cancel = this.cancel.bind(this); | ||
_classPrivateFieldSet(this, _internals, internals); | ||
_classPrivateFieldSet(this, _promise, promise || new Promise(function (resolve, reject) { | ||
return executor(resolve, reject, function (onCancel) { | ||
internals.onCancelList.push(onCancel); | ||
}); | ||
})); | ||
} | ||
} | ||
function makeCancelable(promise, options) { | ||
var methods = { | ||
then: function then(onSuccess, onError) { | ||
return makeCancelable(promise.then(createCallback(onSuccess, options), createCallback(onError, options)), options); | ||
}, | ||
catch: function _catch(onError) { | ||
return makeCancelable(promise.catch(createCallback(onError, options)), options); | ||
}, | ||
finally: function _finally(onFinally, runWhenCanceled) { | ||
_createClass(CancelablePromiseInternal, [{ | ||
key: "then", | ||
value: function then(onfulfilled, onrejected) { | ||
return makeCancelable(_classPrivateFieldGet(this, _promise).then(createCallback(onfulfilled, _classPrivateFieldGet(this, _internals)), createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals)); | ||
} | ||
}, { | ||
key: "catch", | ||
value: function _catch(onrejected) { | ||
return makeCancelable(_classPrivateFieldGet(this, _promise).catch(createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals)); | ||
} | ||
}, { | ||
key: "finally", | ||
value: function _finally(onfinally, runWhenCanceled) { | ||
var _this = this; | ||
if (runWhenCanceled) { | ||
if (!options.finallyList) { | ||
options.finallyList = []; | ||
} | ||
options.finallyList.push(onFinally); | ||
_classPrivateFieldGet(this, _internals).onCancelList.push(onfinally); | ||
} | ||
return makeCancelable(promise.finally(function () { | ||
if (runWhenCanceled) { | ||
options.finallyList = options.finallyList.filter(function (callback) { | ||
return callback !== onFinally; | ||
}); | ||
return makeCancelable(_classPrivateFieldGet(this, _promise).finally(createCallback(function () { | ||
if (onfinally) { | ||
if (runWhenCanceled) { | ||
_classPrivateFieldGet(_this, _internals).onCancelList = _classPrivateFieldGet(_this, _internals).onCancelList.filter(function (callback) { | ||
return callback !== onfinally; | ||
}); | ||
} | ||
return onfinally(); | ||
} | ||
}, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals)); | ||
} | ||
}, { | ||
key: "cancel", | ||
value: function cancel() { | ||
_classPrivateFieldGet(this, _internals).isCanceled = true; | ||
return onFinally(); | ||
}), options); | ||
}, | ||
cancel: function cancel() { | ||
options.isCanceled = true; | ||
var callbacks = _classPrivateFieldGet(this, _internals).onCancelList; | ||
for (var _i = 0, _arr = [options.onCancelList, options.finallyList]; _i < _arr.length; _i++) { | ||
var callbacks = _arr[_i]; | ||
_classPrivateFieldGet(this, _internals).onCancelList = []; | ||
if (callbacks) { | ||
while (callbacks.length) { | ||
var onCancel = callbacks.shift(); | ||
var _iterator = _createForOfIteratorHelper(callbacks), | ||
_step; | ||
if (typeof onCancel === 'function') { | ||
onCancel(); | ||
try { | ||
for (_iterator.s(); !(_step = _iterator.n()).done;) { | ||
var callback = _step.value; | ||
if (typeof callback === 'function') { | ||
try { | ||
callback(); | ||
} catch (err) { | ||
console.error(err); | ||
} | ||
} | ||
} | ||
} catch (err) { | ||
_iterator.e(err); | ||
} finally { | ||
_iterator.f(); | ||
} | ||
}, | ||
isCanceled: function isCanceled() { | ||
return options.isCanceled === true; | ||
} | ||
}; | ||
return { | ||
then: methods.then.bind(undefined), | ||
catch: methods.catch.bind(undefined), | ||
finally: methods.finally.bind(undefined), | ||
cancel: methods.cancel.bind(undefined), | ||
isCanceled: methods.isCanceled.bind(undefined) | ||
}; | ||
} | ||
}, { | ||
key: "isCanceled", | ||
value: function isCanceled() { | ||
return _classPrivateFieldGet(this, _internals).isCanceled === true; | ||
} | ||
}]); | ||
function cancelable(promise) { | ||
return makeCancelable(promise, {}); | ||
} | ||
return CancelablePromiseInternal; | ||
}(); | ||
function CancelablePromise(executor) { | ||
var onCancelList = []; | ||
return makeCancelable(new Promise(function (resolve, reject) { | ||
return executor(resolve, reject, function (onCancel) { | ||
onCancelList.push(onCancel); | ||
var CancelablePromise = /*#__PURE__*/function (_CancelablePromiseInt) { | ||
_inherits(CancelablePromise, _CancelablePromiseInt); | ||
var _super = _createSuper(CancelablePromise); | ||
function CancelablePromise(executor) { | ||
_classCallCheck(this, CancelablePromise); | ||
return _super.call(this, { | ||
executor: executor | ||
}); | ||
}), { | ||
onCancelList: onCancelList | ||
}); | ||
} | ||
} | ||
CancelablePromise.all = function (iterable) { | ||
return cancelable(Promise.all(iterable)); | ||
}; | ||
return CancelablePromise; | ||
}(CancelablePromiseInternal); | ||
CancelablePromise.allSettled = function (iterable) { | ||
return cancelable(Promise.allSettled(iterable)); | ||
}; | ||
_exports.CancelablePromise = CancelablePromise; | ||
CancelablePromise.race = function (iterable) { | ||
return cancelable(Promise.race(iterable)); | ||
}; | ||
_defineProperty(CancelablePromise, "all", function all(iterable) { | ||
return makeAllCancelable(iterable, Promise.all(iterable)); | ||
}); | ||
CancelablePromise.resolve = function (value) { | ||
_defineProperty(CancelablePromise, "allSettled", function allSettled(iterable) { | ||
return makeAllCancelable(iterable, Promise.allSettled(iterable)); | ||
}); | ||
_defineProperty(CancelablePromise, "race", function race(iterable) { | ||
return makeAllCancelable(iterable, Promise.race(iterable)); | ||
}); | ||
_defineProperty(CancelablePromise, "resolve", function resolve(value) { | ||
return cancelable(Promise.resolve(value)); | ||
}; | ||
}); | ||
CancelablePromise.reject = function (value) { | ||
return cancelable(Promise.reject(value)); | ||
}; | ||
_defineProperty(CancelablePromise, "reject", function reject(reason) { | ||
return cancelable(Promise.reject(reason)); | ||
}); | ||
_defineProperty(CancelablePromise, "isCancelable", isCancelablePromise); | ||
var _default = CancelablePromise; | ||
_exports.default = _default; | ||
}); | ||
function cancelable(promise) { | ||
return makeCancelable(promise, defaultInternals()); | ||
} | ||
function isCancelablePromise(promise) { | ||
return promise instanceof CancelablePromise || promise instanceof CancelablePromiseInternal; | ||
} | ||
function createCallback(onResult, internals) { | ||
if (onResult) { | ||
return function (arg) { | ||
if (!internals.isCanceled) { | ||
var result = onResult(arg); | ||
if (isCancelablePromise(result)) { | ||
internals.onCancelList.push(result.cancel); | ||
} | ||
return result; | ||
} | ||
return arg; | ||
}; | ||
} | ||
} | ||
function makeCancelable(promise, internals) { | ||
return new CancelablePromiseInternal({ | ||
internals: internals, | ||
promise: promise | ||
}); | ||
} | ||
function makeAllCancelable(iterable, promise) { | ||
var internals = defaultInternals(); | ||
internals.onCancelList.push(function () { | ||
var _iterator2 = _createForOfIteratorHelper(iterable), | ||
_step2; | ||
try { | ||
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { | ||
var resolvable = _step2.value; | ||
if (isCancelablePromise(resolvable)) { | ||
resolvable.cancel(); | ||
} | ||
} | ||
} catch (err) { | ||
_iterator2.e(err); | ||
} finally { | ||
_iterator2.f(); | ||
} | ||
}); | ||
return new CancelablePromiseInternal({ | ||
internals: internals, | ||
promise: promise | ||
}); | ||
} | ||
function defaultInternals() { | ||
return { | ||
isCanceled: false, | ||
onCancelList: [] | ||
}; | ||
} | ||
}); | ||
//# sourceMappingURL=CancelablePromise.js.map |
@@ -1,1 +0,2 @@ | ||
!function(n,e){if("function"==typeof define&&define.amd)define(["exports"],e);else if("undefined"!=typeof exports)e(exports);else{var t={exports:{}};e(t.exports),n.CancelablePromise=t.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(n){"use strict";function e(n,e){if(n)return function(t){if(!e.isCanceled){var i=n(t);return i&&"function"==typeof i.cancel&&(e.onCancelList||(e.onCancelList=[]),e.onCancelList.push(i.cancel)),i}return t}}function t(n,i){var r={then:function(r,l){return t(n.then(e(r,i),e(l,i)),i)},catch:function(r){return t(n.catch(e(r,i)),i)},finally:function(e,r){return r&&(i.finallyList||(i.finallyList=[]),i.finallyList.push(e)),t(n.finally((function(){return r&&(i.finallyList=i.finallyList.filter((function(n){return n!==e}))),e()})),i)},cancel:function(){i.isCanceled=!0;for(var n=0,e=[i.onCancelList,i.finallyList];n<e.length;n++){var t=e[n];if(t)for(;t.length;){var r=t.shift();"function"==typeof r&&r()}}},isCanceled:function(){return!0===i.isCanceled}};return{then:r.then.bind(void 0),catch:r.catch.bind(void 0),finally:r.finally.bind(void 0),cancel:r.cancel.bind(void 0),isCanceled:r.isCanceled.bind(void 0)}}function i(n){return t(n,{})}function r(n){var e=[];return t(new Promise((function(t,i){return n(t,i,(function(n){e.push(n)}))})),{onCancelList:e})}Object.defineProperty(n,"__esModule",{value:!0}),n.cancelable=i,n.CancelablePromise=r,n.default=void 0,r.all=function(n){return i(Promise.all(n))},r.allSettled=function(n){return i(Promise.allSettled(n))},r.race=function(n){return i(Promise.race(n))},r.resolve=function(n){return i(Promise.resolve(n))},r.reject=function(n){return i(Promise.reject(n))};var l=r;n.default=l})); | ||
function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(e,t){if("function"==typeof define&&define.amd)define(["exports"],t);else if("undefined"!=typeof exports)t(exports);else{var n={exports:{}};t(n.exports),e.CancelablePromise=n.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(e){"use strict";function t(e,n){return(t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,n)}function n(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,i=o(e);if(t){var u=o(this).constructor;n=Reflect.construct(i,arguments,u)}else n=i.apply(this,arguments);return r(this,n)}}function r(e,t){return!t||"object"!==_typeof(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return u=e.done,e},e:function(e){a=!0,i=e},f:function(){try{u||null==n.return||n.return()}finally{if(a)throw i}}}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function l(e,t){return function(e,t){if(t.get)return t.get.call(e);return t.value}(e,p(e,t,"get"))}function s(e,t,n){return function(e,t,n){if(t.set)t.set.call(e,n);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=n}}(e,p(e,t,"set"),n),n}function p(e,t,n){if(!t.has(e))throw new TypeError("attempted to "+n+" private field on non-instance");return t.get(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.cancelable=m,e.isCancelablePromise=w,e.default=e.CancelablePromise=void 0;var y=new WeakMap,h=new WeakMap,v=function(){function e(t){var n=t.executor,r=void 0===n?function(){}:n,o=t.internals,i=void 0===o?{isCanceled:!1,onCancelList:[]}:o,u=t.promise,c=void 0===u?new Promise((function(e,t){return r(e,t,(function(e){i.onCancelList.push(e)}))})):u;a(this,e),y.set(this,{writable:!0,value:void 0}),h.set(this,{writable:!0,value:void 0}),this.cancel=this.cancel.bind(this),s(this,y,i),s(this,h,c||new Promise((function(e,t){return r(e,t,(function(e){i.onCancelList.push(e)}))})))}var t,n,r;return t=e,(n=[{key:"then",value:function(e,t){return g(l(this,h).then(C(e,l(this,y)),C(t,l(this,y))),l(this,y))}},{key:"catch",value:function(e){return g(l(this,h).catch(C(e,l(this,y))),l(this,y))}},{key:"finally",value:function(e,t){var n=this;return t&&l(this,y).onCancelList.push(e),g(l(this,h).finally(C((function(){if(e)return t&&(l(n,y).onCancelList=l(n,y).onCancelList.filter((function(t){return t!==e}))),e()}),l(this,y))),l(this,y))}},{key:"cancel",value:function(){l(this,y).isCanceled=!0;var e=l(this,y).onCancelList;l(this,y).onCancelList=[];var t,n=u(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;if("function"==typeof r)try{r()}catch(e){console.error(e)}}}catch(e){n.e(e)}finally{n.f()}}},{key:"isCanceled",value:function(){return!0===l(this,y).isCanceled}}])&&f(t.prototype,n),r&&f(t,r),e}(),d=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&t(e,n)}(o,e);var r=n(o);function o(e){return a(this,o),r.call(this,{executor:e})}return o}(v);e.CancelablePromise=d,i(d,"all",(function(e){return P(e,Promise.all(e))})),i(d,"allSettled",(function(e){return P(e,Promise.allSettled(e))})),i(d,"race",(function(e){return P(e,Promise.race(e))})),i(d,"resolve",(function(e){return m(Promise.resolve(e))})),i(d,"reject",(function(e){return m(Promise.reject(e))})),i(d,"isCancelable",w);var b=d;function m(e){return g(e,{isCanceled:!1,onCancelList:[]})}function w(e){return e instanceof d||e instanceof v}function C(e,t){if(e)return function(n){if(!t.isCanceled){var r=e(n);return w(r)&&t.onCancelList.push(r.cancel),r}return n}}function g(e,t){return new v({internals:t,promise:e})}function P(e,t){var n={isCanceled:!1,onCancelList:[]};return n.onCancelList.push((function(){var t,n=u(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;w(r)&&r.cancel()}}catch(e){n.e(e)}finally{n.f()}})),new v({internals:n,promise:t})}e.default=b})); | ||
//# sourceMappingURL=CancelablePromise.min.js.map |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
115049
16
293
22
838
1