UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

55 lines 2.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PropertyFactory = void 0; const string_format_1 = __importDefault(require("string-format")); const base_1 = require("../contracts/base"); const culture_insensitive_property_1 = require("../contracts/base/culture-insensitive-property"); const culture_sensitive_property_1 = require("../contracts/base/culture-sensitive-property"); const error_messages_1 = __importDefault(require("../error-messages")); const argument_error_1 = require("../errors/argument-error"); const guard_1 = __importDefault(require("../guard")); class PropertyFactory { static createProperties(definitions, cultures) { if (definitions == null || definitions.length === 0) { return []; } const list = []; for (const definition of definitions) { if (definition.isMultiLanguage && cultures != undefined && cultures.length > 0) { const property = this.createCultureSensitiveProperty(definition, cultures); list.push(property); } else { const property = this.createCultureInsensitiveProperty(definition); list.push(property); } } return list; } static createCultureSensitiveProperty(definition, cultures) { guard_1.default.notNullOrUndefined(definition); guard_1.default.notNullOrUndefined(cultures); guard_1.default.arrayNotEmpty(cultures); guard_1.default.arrayNoneNullOrInvariantCulture(cultures); if (!definition.isMultiLanguage) { const errorMessage = (0, string_format_1.default)(error_messages_1.default.PropertyFactory.MustBeCultureSensitive); throw new argument_error_1.ArgumentError(errorMessage); } const property = new culture_sensitive_property_1.CultureSensitiveProperty(definition.name, new base_1.TypeInfo(definition.dataType, definition.isMultiValue), cultures); return property; } static createCultureInsensitiveProperty(definition) { guard_1.default.notNullOrUndefined(definition); if (definition.isMultiLanguage) { const errorMessage = (0, string_format_1.default)(error_messages_1.default.PropertyFactory.CannotBeCultureSensitive, definition.name); throw new argument_error_1.ArgumentError(errorMessage); } const property = new culture_insensitive_property_1.CultureInsensitiveProperty(definition.name, new base_1.TypeInfo(definition.dataType, definition.isMultiValue)); return property; } } exports.PropertyFactory = PropertyFactory; //# sourceMappingURL=property-factory.js.map