mirror of
https://github.com/github/codeql-action.git
synced 2025-12-28 02:00:12 +08:00
99 lines
3.0 KiB
JavaScript
99 lines
3.0 KiB
JavaScript
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __export = (target, all) => {
|
|
for (var name in all)
|
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
};
|
|
var __copyProps = (to, from, except, desc) => {
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames(from))
|
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
}
|
|
return to;
|
|
};
|
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
|
|
// src/index.ts
|
|
var src_exports = {};
|
|
__export(src_exports, {
|
|
DeferredPromise: () => DeferredPromise,
|
|
createDeferredExecutor: () => createDeferredExecutor
|
|
});
|
|
module.exports = __toCommonJS(src_exports);
|
|
|
|
// src/createDeferredExecutor.ts
|
|
function createDeferredExecutor() {
|
|
const executor = (resolve, reject) => {
|
|
executor.state = "pending";
|
|
executor.resolve = (data) => {
|
|
if (executor.state !== "pending") {
|
|
return;
|
|
}
|
|
executor.result = data;
|
|
const onFulfilled = (value) => {
|
|
executor.state = "fulfilled";
|
|
return value;
|
|
};
|
|
return resolve(
|
|
data instanceof Promise ? data : Promise.resolve(data).then(onFulfilled)
|
|
);
|
|
};
|
|
executor.reject = (reason) => {
|
|
if (executor.state !== "pending") {
|
|
return;
|
|
}
|
|
queueMicrotask(() => {
|
|
executor.state = "rejected";
|
|
});
|
|
return reject(executor.rejectionReason = reason);
|
|
};
|
|
};
|
|
return executor;
|
|
}
|
|
|
|
// src/DeferredPromise.ts
|
|
var DeferredPromise = class extends Promise {
|
|
#executor;
|
|
resolve;
|
|
reject;
|
|
constructor(executor = null) {
|
|
const deferredExecutor = createDeferredExecutor();
|
|
super((originalResolve, originalReject) => {
|
|
deferredExecutor(originalResolve, originalReject);
|
|
executor?.(deferredExecutor.resolve, deferredExecutor.reject);
|
|
});
|
|
this.#executor = deferredExecutor;
|
|
this.resolve = this.#executor.resolve;
|
|
this.reject = this.#executor.reject;
|
|
}
|
|
get state() {
|
|
return this.#executor.state;
|
|
}
|
|
get rejectionReason() {
|
|
return this.#executor.rejectionReason;
|
|
}
|
|
then(onFulfilled, onRejected) {
|
|
return this.#decorate(super.then(onFulfilled, onRejected));
|
|
}
|
|
catch(onRejected) {
|
|
return this.#decorate(super.catch(onRejected));
|
|
}
|
|
finally(onfinally) {
|
|
return this.#decorate(super.finally(onfinally));
|
|
}
|
|
#decorate(promise) {
|
|
return Object.defineProperties(promise, {
|
|
resolve: { configurable: true, value: this.resolve },
|
|
reject: { configurable: true, value: this.reject }
|
|
});
|
|
}
|
|
};
|
|
// Annotate the CommonJS export names for ESM import in node:
|
|
0 && (module.exports = {
|
|
DeferredPromise,
|
|
createDeferredExecutor
|
|
});
|
|
//# sourceMappingURL=index.js.map
|