UNPKG

routebar

Version:

A visual component for navigating between panel cells containing user content.

105 lines (97 loc) 4.36 kB
/** * Модуль, содержащий всякие полезные переменные и функции * @module Errors */ define([], function() { function CustomError(property) { this.name = this.name || "CustomError"; this.property = property; this.message = this.name + ": " + property; if (Error.captureStackTrace) { Error.captureStackTrace(this, CustomError); } else { this.stack = (new Error()).stack; } } /** * @class * Класс ошибки, означающий неправильно переданный в функцию аргумент * @param {string} argName - название аргумента * @param {Object} arg - значение аргумента * @constructor module:Errors~ArgumentError */ function ArgumentError(argName, arg) { if (typeof arg === 'function') { arg = 'function() {...}'; } else { arg = JSON.stringify(arg); } arg = 'wrong function argument "' + argName + '": ' + arg; this.name = 'ArgumentError'; CustomError.apply(this, [arg]); } ArgumentError.prototype = Object.create(CustomError.prototype); ArgumentError.prototype.constructor = ArgumentError; /** * @class * Класс ошибки, означающий, что путь от одной модели до другой модели не был найден * @param {ScreenModel} fromScreen - модель, из которой осуществлялся поиск * @param {ScreenModel} toScreen - модель, в которую осуществлялся поиск * @constructor module:Errors~PathNotFoundError */ function PathNotFoundError(fromScreen, toScreen) { this.name = 'PathNotFoundError'; var arg = 'path not found: from ' + fromScreen.toString() + ' to ' + toScreen.toString(); CustomError.apply(this, [arg]); } PathNotFoundError.prototype = Object.create(CustomError.prototype); PathNotFoundError.prototype.constructor = PathNotFoundError; /** * @class * Класс ошибки, означающий критическую ошибку логики * @param {string} property - подробности ошибки * @constructor module:Errors~FatalError */ function FatalError(property) { this.name = 'FatalError'; CustomError.apply(this, arguments); } FatalError.prototype = Object.create(CustomError.prototype); FatalError.prototype.constructor = FatalError; /** * @class * Класс ошибки, означающий, что функция интерфейса еще не реализована * @param {string} module - название интерфейса * @param {string} functionName - название функции * @constructor module:Errors~NotRealizedError */ function NotRealizedError(module, functionName) { this.name = 'NotRealizedError'; var arg = 'Not realized ' + module + ':' + functionName; CustomError.apply(this, [arg]); } NotRealizedError.prototype = Object.create(CustomError.prototype); NotRealizedError.prototype.constructor = NotRealizedError; return /** @alias module:Errors */ { /** * Класс ошибки, означающий неправильно переданный в функцию аргумент * @type {module:Errors~ArgumentError} */ ArgumentError: ArgumentError, /** * Класс ошибки, означающий, что путь от одной модели до другой модели не был найден * @type {module:Errors~PathNotFoundError} */ PathNotFoundError: PathNotFoundError, /** * Класс ошибки, означающий, что функция интерфейса еще не реализована * @type {module:Errors~NotRealizedError} */ NotRealizedError: NotRealizedError, /** * Класс ошибки, означающий критическую ошибку логики * @type {module:Errors~FatalError} */ FatalError: FatalError }; });