UNPKG

idea-toolbox

Version:
32 lines (31 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ServiceLanguages = exports.Languages = void 0; const resource_model_1 = require("./resource.model"); const utils_1 = require("./utils"); /** * Structure representing language preferences in a context. */ class Languages extends resource_model_1.Resource { load(x) { super.load(x); this.default = this.clean(x.default, String, ServiceLanguages.English); this.available = this.cleanArray(x.available, String, [ServiceLanguages.English]); } validate(languagesOfSpecificService) { const e = super.validate(); if (!this.default || !this.available.some(x => x === this.default)) e.push('default'); if (!this.available.every(l => (0, utils_1.loopStringEnumValues)(languagesOfSpecificService).some(x => x === l))) e.push('available'); return e; } } exports.Languages = Languages; /** * The languages available in a specific service. It must be redefined in every service. */ var ServiceLanguages; (function (ServiceLanguages) { ServiceLanguages["English"] = "en"; })(ServiceLanguages || (exports.ServiceLanguages = ServiceLanguages = {}));