{"version":3,"file":"index.modern.mjs","sources":["../src/internal.ts","../src/create-deferred.ts","../src/is-deferred.ts"],"sourcesContent":["/** @internal */\nexport const fastDeferSymbol = Symbol();\n","import type { Deferred } from './deferred';\nimport { fastDeferSymbol } from './internal';\n\n/** @returns A new {@link Deferred} object */\nexport function deferred<T>() {\n  let resolve!: Deferred<T>['resolve'];\n  let reject!: Deferred<T>['reject'];\n\n  const promise = new Promise<T>((res, rej) => {\n    resolve = res;\n    reject = rej;\n  }) as Deferred<T>;\n\n  promise.resolve = resolve;\n  promise.reject = reject;\n  promise[fastDeferSymbol] = 1;\n\n  return promise;\n}\n","import type { Deferred } from './deferred';\nimport { fastDeferSymbol } from './internal';\n\n/**\n * Detects if the given parameter is a {@link Deferred}\n *\n * @param {any} value The promise to validate\n * @returns True if the given promise is a deferred, false otherwise\n */\nexport function isDeferred(value?: unknown): value is Deferred {\n  return !!value && !!(value as Deferred)[fastDeferSymbol];\n}\n"],"names":["fastDeferSymbol","Symbol","deferred","resolve","reject","promise","Promise","res","rej","isDeferred","value"],"mappings":"MACaA,EAAkBC,kBCGfC,IACd,IAAIC,EACAC,EAEJ,MAAMC,EAAU,IAAIC,QAAW,CAACC,EAAKC,KACnCL,EAAUI,EACVH,EAASI,IAOX,OAJAH,EAAQF,QAAUA,EAClBE,EAAQD,OAASA,EACjBC,EAAQL,GAAmB,EAEpBK,CACT,CCTgB,SAAAI,EAAWC,GACzB,QAASA,KAAYA,EAAmBV,EAC1C"}