UNPKG

@worker-tools/deno-kv-storage

Version:

An implementation of the StorageArea (1,2,3) interface for Deno with an extensible system for supporting various database backends.

36 lines 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deferred = void 0; /** Creates a Promise with the `reject` and `resolve` functions * placed as methods on the promise object itself. It allows you to do: * * ```ts * import { deferred } from "./deferred.ts"; * * const p = deferred<number>(); * // ... * p.resolve(42); * ``` */ function deferred() { let methods; let state = "pending"; const promise = new Promise((resolve, reject) => { methods = { async resolve(value) { await value; state = "fulfilled"; resolve(value); }, // deno-lint-ignore no-explicit-any reject(reason) { state = "rejected"; reject(reason); }, }; }); Object.defineProperty(promise, "state", { get: () => state }); return Object.assign(promise, methods); } exports.deferred = deferred; //# sourceMappingURL=deferred.js.map