@sitecore/sc-contenthub-webclient-sdk
Version:
Sitecore Content Hub WebClient SDK.
55 lines • 2.84 kB
JavaScript
;
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