@descope/sdk-mixins
Version:
Descope JavaScript SDK mixins
39 lines (36 loc) • 2.15 kB
JavaScript
import { __classPrivateFieldGet } from 'tslib';
import { compose } from '@descope/sdk-helpers';
import { observeAttributesMixin } from '../observeAttributesMixin/observeAttributesMixin.js';
import { initLifecycleMixin } from '../initLifecycleMixin.js';
import { loggerMixin } from '../loggerMixin/loggerMixin.js';
import { missingAttrValidator } from './commonValidators.js';
const createValidateAttributesMixin = (mappings) => (superclass) => {
var _ValidateAttributesMixinClass_instances, _ValidateAttributesMixinClass_handleError, _a;
const BaseClass = compose(loggerMixin, initLifecycleMixin, observeAttributesMixin)(superclass);
const mappingsNames = Object.keys(mappings);
return _a = class ValidateAttributesMixinClass extends BaseClass {
constructor(...args) {
super(...args);
_ValidateAttributesMixinClass_instances.add(this);
this.observeAttributes(mappingsNames, __classPrivateFieldGet(this, _ValidateAttributesMixinClass_instances, "m", _ValidateAttributesMixinClass_handleError).bind(this));
}
async init() {
var _b;
// check attributes initial values
mappingsNames.forEach((attr) => __classPrivateFieldGet(this, _ValidateAttributesMixinClass_instances, "m", _ValidateAttributesMixinClass_handleError).call(this, attr, this.getAttribute(attr)));
await ((_b = super.init) === null || _b === void 0 ? void 0 : _b.call(this));
}
},
_ValidateAttributesMixinClass_instances = new WeakSet(),
_ValidateAttributesMixinClass_handleError = function _ValidateAttributesMixinClass_handleError(attrName, newValue) {
const onError = mappings[attrName];
const error = typeof onError === 'function' ? onError(attrName, newValue) : onError;
if (error) {
this.logger.error(error);
}
},
_a;
};
createValidateAttributesMixin.missingAttrValidator = missingAttrValidator;
export { createValidateAttributesMixin };
//# sourceMappingURL=createValidateAttributesMixin.js.map