UNPKG

@descope/sdk-mixins

Version:
46 lines (43 loc) 2.29 kB
import { __classPrivateFieldGet } from 'tslib'; import { createSingletonMixin, compose } from '@descope/sdk-helpers'; import { missingAttrValidator } from './createValidateAttributesMixin/commonValidators.js'; import { createValidateAttributesMixin } from './createValidateAttributesMixin/createValidateAttributesMixin.js'; const resetMixin = createSingletonMixin((superclass) => { var _ResetMixinClass_callbacks, _a; const BaseClass = compose(createValidateAttributesMixin({ 'project-id': missingAttrValidator }))(superclass); return _a = class ResetMixinClass extends BaseClass { constructor() { super(...arguments); _ResetMixinClass_callbacks.set(this, new Map()); } onReset(sectionId, callback) { if (!__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").has(sectionId)) { __classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").set(sectionId, callback); return () => { __classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").delete(sectionId); }; } else { throw new Error(`Callback for sectionId ${sectionId} already exists`); } } async reset(...sectionIds) { if (sectionIds.length === 0) { await Promise.all(Array.from(__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").values()).map((callback) => callback())); } else { await Promise.all(sectionIds.map((sectionId) => { var _b; if (!__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").has(sectionId)) { throw new Error(`Callback for sectionId ${sectionId} does not exist`); } return (_b = __classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").get(sectionId)) === null || _b === void 0 ? void 0 : _b(); })); } } }, _ResetMixinClass_callbacks = new WeakMap(), _a; }); export { resetMixin }; //# sourceMappingURL=resetMixin.js.map