@korbiniankuhn/validator
Version:
Validate object schemas for js, expressjs, angular and mongoose.
47 lines • 1.57 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const locales_1 = require("../locales");
class Message {
constructor(locale = 'en') {
this._locales = locales_1.LOCALES;
this._locale = 'en';
this._messages = this._locales[locale];
this.setLocale(locale);
}
addLocale(name, messages, fallback = 'en') {
if (!(fallback in this._locales)) {
throw this.error('unknown_locale', { locale: name });
}
messages = Object.assign({}, this._locales[fallback], messages);
this._locales[name] = messages;
return this;
}
setLocale(name) {
if (name in this._locales) {
this._locale = name;
this._messages = this._locales[name];
}
else {
throw this.error('unknown_locale', { locale: name });
}
return this;
}
getLocale() {
return this._locale;
}
replace(text, replacements) {
for (const key in replacements) {
text = text.replace(new RegExp(`{{${key}}}`, 'g'), replacements[key]);
}
return text;
}
get(code, replacements = {}) {
let text = this._messages[code];
return text ? this.replace(text, replacements) : this._messages['default'];
}
error(code, replacements = {}) {
return new Error(`${this.get('configuration_error')}: ${this.get(code, replacements)}`);
}
}
exports.Message = Message;
//# sourceMappingURL=message.js.map