{"version":3,"file":"promiseWithResolvers.js","sourceRoot":"","sources":["../../src/jsutils/promiseWithResolvers.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,oBAAoB;IAMlC,IAAI,OAAgD,CAAC;IACrD,IAAI,MAA+B,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1C,OAAO,GAAG,GAAG,CAAC;QACd,MAAM,GAAG,GAAG,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC","sourcesContent":["import type { PromiseOrValue } from './PromiseOrValue.ts';\n\n/**\n * Based on Promise.withResolvers proposal\n * https://github.com/tc39/proposal-promise-with-resolvers\n *\n * @internal\n */\nexport function promiseWithResolvers<T>(): {\n  promise: Promise<T>;\n  resolve: (value: T | PromiseOrValue<T>) => void;\n  reject: (reason?: any) => void;\n} {\n  // these are assigned synchronously within the Promise constructor\n  let resolve!: (value: T | PromiseOrValue<T>) => void;\n  let reject!: (reason?: any) => void;\n  const promise = new Promise<T>((res, rej) => {\n    resolve = res;\n    reject = rej;\n  });\n  return { promise, resolve, reject };\n}\n"]}