UNPKG

@xylabs/promise

Version:

Base functionality used throughout XY Labs TypeScript/JavaScript libraries

55 lines (50 loc) 1.16 kB
// src/fulfilled.ts var fulfilled = (val) => { return val.status === "fulfilled"; }; // src/fulfilledValues.ts var fulfilledValues = (previousValue, currentValue) => { if (currentValue.status === "fulfilled") previousValue.push(currentValue.value); return previousValue; }; // src/PromiseEx.ts var PromiseEx = class extends Promise { cancelled; _value; constructor(func, value) { super(func); this._value = value; } // eslint-disable-next-line unicorn/no-thenable then(onfulfilled, onrejected, onvalue) { if (onvalue?.(this._value)) { this.cancelled = true; } return super.then(onfulfilled, onrejected); } value(onvalue) { if (onvalue?.(this._value)) { this.cancelled = true; } return this; } }; // src/rejected.ts var rejected = (val) => { return val.status === "rejected"; }; // src/toPromise.ts function toPromise(value) { return value instanceof Promise ? value : Promise.resolve(value); } // src/index.ts import { isPromise } from "@xylabs/typeof"; export { PromiseEx, fulfilled, fulfilledValues, isPromise, rejected, toPromise }; //# sourceMappingURL=index.mjs.map