File: //home/cafsindia/snap.cafsinfotech.in/node_modules/@sentry/utils/esm/syncpromise.js.map
{"version":3,"file":"syncpromise.js","sources":["../../src/syncpromise.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\nexport function resolvedSyncPromise(): PromiseLike<void>;\nexport function resolvedSyncPromise<T>(value: T | PromiseLike<T>): PromiseLike<T>;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise<T>(value?: T | PromiseLike<T>): PromiseLike<T> {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise<T = never>(reason?: any): PromiseLike<T> {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise<T> implements PromiseLike<T> {\n private _state: States;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]>;\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike<T> | null) => void, reject: (reason?: any) => void) => void,\n ) {\n this._state = States.PENDING;\n this._handlers = [];\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null,\n ): PromiseLike<TResult1 | TResult2> {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null,\n ): PromiseLike<T | TResult> {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally<TResult>(onfinally?: (() => void) | null): PromiseLike<TResult> {\n return new SyncPromise<TResult>((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike<T> | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike<T> | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike<T>).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n"],"names":[],"mappings":"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"}