UNPKG

@korbiniankuhn/validator

Version:

Validate object schemas for js, expressjs, angular and mongoose.

47 lines 1.57 kB
"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