@xylabs/promise
Version:
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
55 lines (50 loc) • 1.16 kB
JavaScript
// 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