UNPKG

@descope/sdk-mixins

Version:
39 lines (36 loc) 2.15 kB
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