@adyen/adyen-platform-experience-web
Version:

33 lines (32 loc) • 944 B
JavaScript
import { createAbortable as c } from "../abortable/main.js";
import { createDeferred as f } from "../deferred/main.js";
import { tryResolve as l } from "../../../utils/async/main.js";
import { enumerable as a, getter as p } from "../../../utils/struct/property.js";
import { isUndefined as b } from "../../../utils/value/is.js";
const _ = (m) => {
const s = c(), r = f();
let e;
return Object.defineProperties(function(...n) {
b(e) ? r.refresh() : s.abort();
const o = l.call(this, m, s.refresh().signal, ...n);
return (async () => {
let t = e === (e = o);
try {
const i = await o.finally(() => {
t = e === o, t && (e = void 0);
});
t && r.resolve(i);
} catch (i) {
t && r.reject(i);
}
})(), o;
}, {
abort: a(s.abort),
promise: p(() => r.promise),
refresh: a(() => void r.refresh())
});
};
export {
_ as createPromisor,
_ as default
};