@descope/sdk-mixins
Version:
Descope JavaScript SDK mixins
48 lines (44 loc) • 2.38 kB
JavaScript
;
var tslib = require('tslib');
var sdkHelpers = require('@descope/sdk-helpers');
var commonValidators = require('./createValidateAttributesMixin/commonValidators.js');
var createValidateAttributesMixin = require('./createValidateAttributesMixin/createValidateAttributesMixin.js');
const resetMixin = sdkHelpers.createSingletonMixin((superclass) => {
var _ResetMixinClass_callbacks, _a;
const BaseClass = sdkHelpers.compose(createValidateAttributesMixin.createValidateAttributesMixin({ 'project-id': commonValidators.missingAttrValidator }))(superclass);
return _a = class ResetMixinClass extends BaseClass {
constructor() {
super(...arguments);
_ResetMixinClass_callbacks.set(this, new Map());
}
onReset(sectionId, callback) {
if (!tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").has(sectionId)) {
tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").set(sectionId, callback);
return () => {
tslib.__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(tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").values()).map((callback) => callback()));
}
else {
await Promise.all(sectionIds.map((sectionId) => {
var _b;
if (!tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").has(sectionId)) {
throw new Error(`Callback for sectionId ${sectionId} does not exist`);
}
return (_b = tslib.__classPrivateFieldGet(this, _ResetMixinClass_callbacks, "f").get(sectionId)) === null || _b === void 0 ? void 0 : _b();
}));
}
}
},
_ResetMixinClass_callbacks = new WeakMap(),
_a;
});
exports.resetMixin = resetMixin;
//# sourceMappingURL=resetMixin.js.map