UNPKG

@descope/sdk-mixins

Version:
41 lines (37 loc) 2.26 kB
'use strict'; var tslib = require('tslib'); var sdkHelpers = require('@descope/sdk-helpers'); var observeAttributesMixin = require('../observeAttributesMixin/observeAttributesMixin.js'); var initLifecycleMixin = require('../initLifecycleMixin.js'); var loggerMixin = require('../loggerMixin/loggerMixin.js'); var commonValidators = require('./commonValidators.js'); const createValidateAttributesMixin = (mappings) => (superclass) => { var _ValidateAttributesMixinClass_instances, _ValidateAttributesMixinClass_handleError, _a; const BaseClass = sdkHelpers.compose(loggerMixin.loggerMixin, initLifecycleMixin.initLifecycleMixin, observeAttributesMixin.observeAttributesMixin)(superclass); const mappingsNames = Object.keys(mappings); return _a = class ValidateAttributesMixinClass extends BaseClass { constructor(...args) { super(...args); _ValidateAttributesMixinClass_instances.add(this); this.observeAttributes(mappingsNames, tslib.__classPrivateFieldGet(this, _ValidateAttributesMixinClass_instances, "m", _ValidateAttributesMixinClass_handleError).bind(this)); } async init() { var _b; // check attributes initial values mappingsNames.forEach((attr) => tslib.__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 = commonValidators.missingAttrValidator; exports.createValidateAttributesMixin = createValidateAttributesMixin; //# sourceMappingURL=createValidateAttributesMixin.js.map