UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

63 lines (47 loc) 1.77 kB
"use strict"; var extend = require("./extend").extend, consoleUtils = require("./console"), stringUtils = require("./string"), version = require("../version"); var ERROR_URL = "http://js.devexpress.com/error/" + version.split(".").slice(0, 2).join("_") + "/"; module.exports = function (baseErrors, errors) { var exports = { ERROR_MESSAGES: extend(errors, baseErrors), Error: function Error() { return makeError([].slice.call(arguments)); }, log: function log(id) { var method = "log"; if (/^E\d+$/.test(id)) { method = "error"; } else if (/^W\d+$/.test(id)) { method = "warn"; } consoleUtils.logger[method](method === "log" ? id : combineMessage([].slice.call(arguments))); } }; var combineMessage = function combineMessage(args) { var id = args[0]; args = args.slice(1); return formatMessage(id, formatDetails(id, args)); }; var formatDetails = function formatDetails(id, args) { args = [exports.ERROR_MESSAGES[id]].concat(args); return stringUtils.format.apply(this, args).replace(/\.*\s*?$/, ''); }; var formatMessage = function formatMessage(id, details) { return stringUtils.format.apply(this, ["{0} - {1}. See:\n{2}", id, details, ERROR_URL + id]); }; var makeError = function makeError(args) { var id, details, message; id = args[0]; args = args.slice(1); details = formatDetails(id, args); message = formatMessage(id, details); return extend(new Error(message), { __id: id, __details: details }); }; return exports; };