@descope/sdk-mixins
Version:
Descope JavaScript SDK mixins
46 lines (43 loc) • 2.29 kB
JavaScript
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