D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
proc
/
thread-self
/
root
/
lib
/
node_modules
/
npm
/
node_modules
/
errno
/
Filename :
custom.js
back
Copy
var prr = require('prr') function init (type, message, cause) { if (!!message && typeof message != 'string') { message = message.message || message.name } prr(this, { type : type , name : type // can be passed just a 'cause' , cause : typeof message != 'string' ? message : cause , message : message }, 'ewr') } // generic prototype, not intended to be actually used - helpful for `instanceof` function CustomError (message, cause) { Error.call(this) if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor) init.call(this, 'CustomError', message, cause) } CustomError.prototype = new Error() function createError (errno, type, proto) { var err = function (message, cause) { init.call(this, type, message, cause) //TODO: the specificity here is stupid, errno should be available everywhere if (type == 'FilesystemError') { this.code = this.cause.code this.path = this.cause.path this.errno = this.cause.errno this.message = (errno.errno[this.cause.errno] ? errno.errno[this.cause.errno].description : this.cause.message) + (this.cause.path ? ' [' + this.cause.path + ']' : '') } Error.call(this) if (Error.captureStackTrace) Error.captureStackTrace(this, err) } err.prototype = !!proto ? new proto() : new CustomError() return err } module.exports = function (errno) { var ce = function (type, proto) { return createError(errno, type, proto) } return { CustomError : CustomError , FilesystemError : ce('FilesystemError') , createError : ce } }