@intlify/vue-i18n-extensions-nightly
Version:
vue-i18n extensions
41 lines (40 loc) • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.report = exports.getReportMessage = void 0;
const shared_1 = require("@intlify/shared");
// TODO: should be extracted as i18n resources (intlify project self hosting!)
const ReportMessages = {
[1 /* ReportCodes.UNEXPECTED_DIRECTIVE_EXPRESSION */]: `Unexpected directive expression: {0}`,
[2 /* ReportCodes.NOT_SUPPORTED */]: `Not supported transform: {0}`,
[3 /* ReportCodes.FAILED_VALUE_EVALUATION */]: `Failed value evaluation: {0}`,
[4 /* ReportCodes.REQUIRED_PARAMETER */]: `Required parameter: {0}`,
[5 /* ReportCodes.INVALID_PARAMETER_TYPE */]: `Required parameter: {0}`,
[6 /* ReportCodes.NOT_SUPPORTED_PRESERVE */]: `Not supported 'preserve': {0}`,
[7 /* ReportCodes.OVERRIDE_ELEMENT_CHILDREN */]: `v-t will override element children: {0}`
};
function getReportMessage(code, ...args) {
return (0, shared_1.format)(ReportMessages[code], ...args);
}
exports.getReportMessage = getReportMessage;
function createExtensionsError(code, msg, loc) {
const error = new SyntaxError(msg);
error.code = code;
if (loc) {
error.loc = loc;
}
return error;
}
function report(code, options = {}) {
const mode = options.mode && (0, shared_1.isString)(options.mode) && ['warn', 'error'].includes(options.mode)
? options.mode
: 'warn';
const msg = getReportMessage(code, options.args);
if (mode === 'warn') {
console.warn('[vue-i18n-extensions] ' + msg);
}
else {
// error
throw createExtensionsError(code, msg, options.loc);
}
}
exports.report = report;