async-injection
Version:
A robust lightweight dependency injection library for TypeScript.
51 lines • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.State = void 0;
const utils_1 = require("./utils");
/**
* Internal class that allows us to track the state of a promise (chain).
*/
class State {
static MakeState(promise, rejected, fulfilled) {
const retVal = new State();
if ((0, utils_1.isPromise)(promise)) {
retVal._pending = true;
retVal._promise = promise.then((v) => {
retVal._fulfilled = v;
retVal._pending = false;
return v;
}, (e) => {
retVal._rejected = e;
retVal._pending = false;
throw e;
});
}
else {
retVal._pending = false;
if (rejected) {
retVal._rejected = rejected;
}
else {
retVal._fulfilled = fulfilled;
}
retVal._promise = null;
}
return retVal;
}
constructor() {
}
get promise() {
return this._promise;
}
get pending() {
return this._pending;
}
get fulfilled() {
return this._fulfilled;
}
get rejected() {
return this._rejected;
}
}
exports.State = State;
//# sourceMappingURL=state.js.map