UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

48 lines 2.24 kB
import format from "string-format"; import { TypeInfo } from "../contracts/base"; import { CultureInsensitiveProperty, } from "../contracts/base/culture-insensitive-property"; import { CultureSensitiveProperty } from "../contracts/base/culture-sensitive-property"; import ErrorMessages from "../error-messages"; import { ArgumentError } from "../errors/argument-error"; import Guard from "../guard"; export 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.notNullOrUndefined(definition); Guard.notNullOrUndefined(cultures); Guard.arrayNotEmpty(cultures); Guard.arrayNoneNullOrInvariantCulture(cultures); if (!definition.isMultiLanguage) { const errorMessage = format(ErrorMessages.PropertyFactory.MustBeCultureSensitive); throw new ArgumentError(errorMessage); } const property = new CultureSensitiveProperty(definition.name, new TypeInfo(definition.dataType, definition.isMultiValue), cultures); return property; } static createCultureInsensitiveProperty(definition) { Guard.notNullOrUndefined(definition); if (definition.isMultiLanguage) { const errorMessage = format(ErrorMessages.PropertyFactory.CannotBeCultureSensitive, definition.name); throw new ArgumentError(errorMessage); } const property = new CultureInsensitiveProperty(definition.name, new TypeInfo(definition.dataType, definition.isMultiValue)); return property; } } //# sourceMappingURL=property-factory.js.map