mirror of
https://github.com/fooflington/selfdefined.git
synced 2025-06-10 21:01:41 +00:00
update
This commit is contained in:
59
node_modules/errno/.jshintrc
generated
vendored
Normal file
59
node_modules/errno/.jshintrc
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"predef": [ ]
|
||||
, "bitwise": false
|
||||
, "camelcase": false
|
||||
, "curly": false
|
||||
, "eqeqeq": false
|
||||
, "forin": false
|
||||
, "immed": false
|
||||
, "latedef": false
|
||||
, "noarg": true
|
||||
, "noempty": true
|
||||
, "nonew": true
|
||||
, "plusplus": false
|
||||
, "quotmark": true
|
||||
, "regexp": false
|
||||
, "undef": true
|
||||
, "unused": true
|
||||
, "strict": false
|
||||
, "trailing": true
|
||||
, "maxlen": 120
|
||||
, "asi": true
|
||||
, "boss": true
|
||||
, "debug": true
|
||||
, "eqnull": true
|
||||
, "esnext": true
|
||||
, "evil": true
|
||||
, "expr": true
|
||||
, "funcscope": false
|
||||
, "globalstrict": false
|
||||
, "iterator": false
|
||||
, "lastsemic": true
|
||||
, "laxbreak": true
|
||||
, "laxcomma": true
|
||||
, "loopfunc": true
|
||||
, "multistr": false
|
||||
, "onecase": false
|
||||
, "proto": false
|
||||
, "regexdash": false
|
||||
, "scripturl": true
|
||||
, "smarttabs": false
|
||||
, "shadow": false
|
||||
, "sub": true
|
||||
, "supernew": false
|
||||
, "validthis": true
|
||||
, "browser": true
|
||||
, "couch": false
|
||||
, "devel": false
|
||||
, "dojo": false
|
||||
, "mootools": false
|
||||
, "node": true
|
||||
, "nonstandard": true
|
||||
, "prototypejs": false
|
||||
, "rhino": false
|
||||
, "worker": true
|
||||
, "wsh": false
|
||||
, "nomen": false
|
||||
, "onevar": false
|
||||
, "passfail": false
|
||||
}
|
11
node_modules/errno/.travis.yml
generated
vendored
Normal file
11
node_modules/errno/.travis.yml
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
sudo: false
|
||||
|
||||
language: node_js
|
||||
|
||||
node_js:
|
||||
- 9
|
||||
- 8
|
||||
- 7
|
||||
- 6
|
||||
- 5
|
||||
- 4
|
145
node_modules/errno/README.md
generated
vendored
Normal file
145
node_modules/errno/README.md
generated
vendored
Normal file
@ -0,0 +1,145 @@
|
||||
# node-errno
|
||||
|
||||
> Better [libuv](https://github.com/libuv/libuv)/[Node.js](https://nodejs.org)/[io.js](https://iojs.org) error handling & reporting. Available in npm as *errno*.
|
||||
|
||||
[](https://www.npmjs.com/package/errno)
|
||||
[](http://travis-ci.org/rvagg/node-errno)
|
||||
[](https://www.npmjs.com/package/errno)
|
||||
|
||||
* [errno exposed](#errnoexposed)
|
||||
* [Custom errors](#customerrors)
|
||||
|
||||
<a name="errnoexposed"></a>
|
||||
## errno exposed
|
||||
|
||||
Ever find yourself needing more details about Node.js errors? Me too, so *node-errno* contains the errno mappings direct from libuv so you can use them in your code.
|
||||
|
||||
**By errno:**
|
||||
|
||||
```js
|
||||
require('errno').errno[3]
|
||||
// → {
|
||||
// "errno": 3,
|
||||
// "code": "EACCES",
|
||||
// "description": "permission denied"
|
||||
// }
|
||||
```
|
||||
|
||||
**By code:**
|
||||
|
||||
```js
|
||||
require('errno').code.ENOTEMPTY
|
||||
// → {
|
||||
// "errno": 53,
|
||||
// "code": "ENOTEMPTY",
|
||||
// "description": "directory not empty"
|
||||
// }
|
||||
```
|
||||
|
||||
**Make your errors more descriptive:**
|
||||
|
||||
```js
|
||||
var errno = require('errno')
|
||||
|
||||
function errmsg(err) {
|
||||
var str = 'Error: '
|
||||
// if it's a libuv error then get the description from errno
|
||||
if (errno.errno[err.errno])
|
||||
str += errno.errno[err.errno].description
|
||||
else
|
||||
str += err.message
|
||||
|
||||
// if it's a `fs` error then it'll have a 'path' property
|
||||
if (err.path)
|
||||
str += ' [' + err.path + ']'
|
||||
|
||||
return str
|
||||
}
|
||||
|
||||
var fs = require('fs')
|
||||
|
||||
fs.readFile('thisisnotarealfile.txt', function (err, data) {
|
||||
if (err)
|
||||
console.log(errmsg(err))
|
||||
})
|
||||
```
|
||||
|
||||
**Use as a command line tool:**
|
||||
|
||||
```
|
||||
~ $ errno 53
|
||||
{
|
||||
"errno": 53,
|
||||
"code": "ENOTEMPTY",
|
||||
"description": "directory not empty"
|
||||
}
|
||||
~ $ errno EROFS
|
||||
{
|
||||
"errno": 56,
|
||||
"code": "EROFS",
|
||||
"description": "read-only file system"
|
||||
}
|
||||
~ $ errno foo
|
||||
No such errno/code: "foo"
|
||||
```
|
||||
|
||||
Supply no arguments for the full list. Error codes are processed case-insensitive.
|
||||
|
||||
You will need to install with `npm install errno -g` if you want the `errno` command to be available without supplying a full path to the node_modules installation.
|
||||
|
||||
<a name="customerrors"></a>
|
||||
## Custom errors
|
||||
|
||||
Use `errno.custom.createError()` to create custom `Error` objects to throw around in your Node.js library. Create error hierarchies so `instanceof` becomes a useful tool in tracking errors. Call-stack is correctly captured at the time you create an instance of the error object, plus a `cause` property will make available the original error object if you pass one in to the constructor.
|
||||
|
||||
```js
|
||||
var create = require('errno').custom.createError
|
||||
var MyError = create('MyError') // inherits from Error
|
||||
var SpecificError = create('SpecificError', MyError) // inherits from MyError
|
||||
var OtherError = create('OtherError', MyError)
|
||||
|
||||
// use them!
|
||||
if (condition) throw new SpecificError('Eeek! Something bad happened')
|
||||
|
||||
if (err) return callback(new OtherError(err))
|
||||
```
|
||||
|
||||
Also available is a `errno.custom.FilesystemError` with in-built access to errno properties:
|
||||
|
||||
```js
|
||||
fs.readFile('foo', function (err, data) {
|
||||
if (err) return callback(new errno.custom.FilesystemError(err))
|
||||
// do something else
|
||||
})
|
||||
```
|
||||
|
||||
The resulting error object passed through the callback will have the following properties: `code`, `errno`, `path` and `message` will contain a descriptive human-readable message.
|
||||
|
||||
## Contributors
|
||||
|
||||
* [bahamas10](https://github.com/bahamas10) (Dave Eddy) - Added CLI
|
||||
* [ralphtheninja](https://github.com/ralphtheninja) (Lars-Magnus Skog)
|
||||
|
||||
## Copyright & Licence
|
||||
|
||||
*Copyright (c) 2012-2015 [Rod Vagg](https://github.com/rvagg) ([@rvagg](https://twitter.com/rvagg))*
|
||||
|
||||
Made available under the MIT licence:
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
43
node_modules/errno/build.js
generated
vendored
Executable file
43
node_modules/errno/build.js
generated
vendored
Executable file
@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var request = require('request')
|
||||
, fs = require('fs')
|
||||
|
||||
, uvheadloc = 'https://raw.github.com/joyent/libuv/master/include/uv.h'
|
||||
, defreg = /^\s*XX\(\s*([\-\d]+),\s*([A-Z]+),\s*"([^"]*)"\s*\)\s*\\?$/
|
||||
|
||||
|
||||
request(uvheadloc, function (err, response) {
|
||||
if (err)
|
||||
throw err
|
||||
|
||||
var data, out
|
||||
|
||||
data = response.body
|
||||
.split('\n')
|
||||
.map(function (line) { return line.match(defreg) })
|
||||
.filter(function (match) { return match })
|
||||
.map(function (match) { return {
|
||||
errno: parseInt(match[1], 10)
|
||||
, code: match[2]
|
||||
, description: match[3]
|
||||
}})
|
||||
|
||||
out = 'var all = module.exports.all = ' + JSON.stringify(data, 0, 1) + '\n\n'
|
||||
|
||||
out += '\nmodule.exports.errno = {\n '
|
||||
+ data.map(function (e, i) {
|
||||
return '\'' + e.errno + '\': all[' + i + ']'
|
||||
}).join('\n , ')
|
||||
+ '\n}\n\n'
|
||||
|
||||
out += '\nmodule.exports.code = {\n '
|
||||
+ data.map(function (e, i) {
|
||||
return '\'' + e.code + '\': all[' + i + ']'
|
||||
}).join('\n , ')
|
||||
+ '\n}\n\n'
|
||||
|
||||
out += '\nmodule.exports.custom = require("./custom")(module.exports)\n'
|
||||
|
||||
fs.writeFile('errno.js', out)
|
||||
})
|
22
node_modules/errno/cli.js
generated
vendored
Executable file
22
node_modules/errno/cli.js
generated
vendored
Executable file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var errno = require('./')
|
||||
, arg = process.argv[2]
|
||||
, data, code
|
||||
|
||||
if (arg === undefined) {
|
||||
console.log(JSON.stringify(errno.code, null, 2))
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
if ((code = +arg) == arg)
|
||||
data = errno.errno[code]
|
||||
else
|
||||
data = errno.code[arg] || errno.code[arg.toUpperCase()]
|
||||
|
||||
if (data)
|
||||
console.log(JSON.stringify(data, null, 2))
|
||||
else {
|
||||
console.error('No such errno/code: "' + arg + '"')
|
||||
process.exit(1)
|
||||
}
|
57
node_modules/errno/custom.js
generated
vendored
Normal file
57
node_modules/errno/custom.js
generated
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
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
|
||||
}
|
||||
}
|
313
node_modules/errno/errno.js
generated
vendored
Normal file
313
node_modules/errno/errno.js
generated
vendored
Normal file
@ -0,0 +1,313 @@
|
||||
var all = module.exports.all = [
|
||||
{
|
||||
errno: -2,
|
||||
code: 'ENOENT',
|
||||
description: 'no such file or directory'
|
||||
},
|
||||
{
|
||||
errno: -1,
|
||||
code: 'UNKNOWN',
|
||||
description: 'unknown error'
|
||||
},
|
||||
{
|
||||
errno: 0,
|
||||
code: 'OK',
|
||||
description: 'success'
|
||||
},
|
||||
{
|
||||
errno: 1,
|
||||
code: 'EOF',
|
||||
description: 'end of file'
|
||||
},
|
||||
{
|
||||
errno: 2,
|
||||
code: 'EADDRINFO',
|
||||
description: 'getaddrinfo error'
|
||||
},
|
||||
{
|
||||
errno: 3,
|
||||
code: 'EACCES',
|
||||
description: 'permission denied'
|
||||
},
|
||||
{
|
||||
errno: 4,
|
||||
code: 'EAGAIN',
|
||||
description: 'resource temporarily unavailable'
|
||||
},
|
||||
{
|
||||
errno: 5,
|
||||
code: 'EADDRINUSE',
|
||||
description: 'address already in use'
|
||||
},
|
||||
{
|
||||
errno: 6,
|
||||
code: 'EADDRNOTAVAIL',
|
||||
description: 'address not available'
|
||||
},
|
||||
{
|
||||
errno: 7,
|
||||
code: 'EAFNOSUPPORT',
|
||||
description: 'address family not supported'
|
||||
},
|
||||
{
|
||||
errno: 8,
|
||||
code: 'EALREADY',
|
||||
description: 'connection already in progress'
|
||||
},
|
||||
{
|
||||
errno: 9,
|
||||
code: 'EBADF',
|
||||
description: 'bad file descriptor'
|
||||
},
|
||||
{
|
||||
errno: 10,
|
||||
code: 'EBUSY',
|
||||
description: 'resource busy or locked'
|
||||
},
|
||||
{
|
||||
errno: 11,
|
||||
code: 'ECONNABORTED',
|
||||
description: 'software caused connection abort'
|
||||
},
|
||||
{
|
||||
errno: 12,
|
||||
code: 'ECONNREFUSED',
|
||||
description: 'connection refused'
|
||||
},
|
||||
{
|
||||
errno: 13,
|
||||
code: 'ECONNRESET',
|
||||
description: 'connection reset by peer'
|
||||
},
|
||||
{
|
||||
errno: 14,
|
||||
code: 'EDESTADDRREQ',
|
||||
description: 'destination address required'
|
||||
},
|
||||
{
|
||||
errno: 15,
|
||||
code: 'EFAULT',
|
||||
description: 'bad address in system call argument'
|
||||
},
|
||||
{
|
||||
errno: 16,
|
||||
code: 'EHOSTUNREACH',
|
||||
description: 'host is unreachable'
|
||||
},
|
||||
{
|
||||
errno: 17,
|
||||
code: 'EINTR',
|
||||
description: 'interrupted system call'
|
||||
},
|
||||
{
|
||||
errno: 18,
|
||||
code: 'EINVAL',
|
||||
description: 'invalid argument'
|
||||
},
|
||||
{
|
||||
errno: 19,
|
||||
code: 'EISCONN',
|
||||
description: 'socket is already connected'
|
||||
},
|
||||
{
|
||||
errno: 20,
|
||||
code: 'EMFILE',
|
||||
description: 'too many open files'
|
||||
},
|
||||
{
|
||||
errno: 21,
|
||||
code: 'EMSGSIZE',
|
||||
description: 'message too long'
|
||||
},
|
||||
{
|
||||
errno: 22,
|
||||
code: 'ENETDOWN',
|
||||
description: 'network is down'
|
||||
},
|
||||
{
|
||||
errno: 23,
|
||||
code: 'ENETUNREACH',
|
||||
description: 'network is unreachable'
|
||||
},
|
||||
{
|
||||
errno: 24,
|
||||
code: 'ENFILE',
|
||||
description: 'file table overflow'
|
||||
},
|
||||
{
|
||||
errno: 25,
|
||||
code: 'ENOBUFS',
|
||||
description: 'no buffer space available'
|
||||
},
|
||||
{
|
||||
errno: 26,
|
||||
code: 'ENOMEM',
|
||||
description: 'not enough memory'
|
||||
},
|
||||
{
|
||||
errno: 27,
|
||||
code: 'ENOTDIR',
|
||||
description: 'not a directory'
|
||||
},
|
||||
{
|
||||
errno: 28,
|
||||
code: 'EISDIR',
|
||||
description: 'illegal operation on a directory'
|
||||
},
|
||||
{
|
||||
errno: 29,
|
||||
code: 'ENONET',
|
||||
description: 'machine is not on the network'
|
||||
},
|
||||
{
|
||||
errno: 31,
|
||||
code: 'ENOTCONN',
|
||||
description: 'socket is not connected'
|
||||
},
|
||||
{
|
||||
errno: 32,
|
||||
code: 'ENOTSOCK',
|
||||
description: 'socket operation on non-socket'
|
||||
},
|
||||
{
|
||||
errno: 33,
|
||||
code: 'ENOTSUP',
|
||||
description: 'operation not supported on socket'
|
||||
},
|
||||
{
|
||||
errno: 34,
|
||||
code: 'ENOENT',
|
||||
description: 'no such file or directory'
|
||||
},
|
||||
{
|
||||
errno: 35,
|
||||
code: 'ENOSYS',
|
||||
description: 'function not implemented'
|
||||
},
|
||||
{
|
||||
errno: 36,
|
||||
code: 'EPIPE',
|
||||
description: 'broken pipe'
|
||||
},
|
||||
{
|
||||
errno: 37,
|
||||
code: 'EPROTO',
|
||||
description: 'protocol error'
|
||||
},
|
||||
{
|
||||
errno: 38,
|
||||
code: 'EPROTONOSUPPORT',
|
||||
description: 'protocol not supported'
|
||||
},
|
||||
{
|
||||
errno: 39,
|
||||
code: 'EPROTOTYPE',
|
||||
description: 'protocol wrong type for socket'
|
||||
},
|
||||
{
|
||||
errno: 40,
|
||||
code: 'ETIMEDOUT',
|
||||
description: 'connection timed out'
|
||||
},
|
||||
{
|
||||
errno: 41,
|
||||
code: 'ECHARSET',
|
||||
description: 'invalid Unicode character'
|
||||
},
|
||||
{
|
||||
errno: 42,
|
||||
code: 'EAIFAMNOSUPPORT',
|
||||
description: 'address family for hostname not supported'
|
||||
},
|
||||
{
|
||||
errno: 44,
|
||||
code: 'EAISERVICE',
|
||||
description: 'servname not supported for ai_socktype'
|
||||
},
|
||||
{
|
||||
errno: 45,
|
||||
code: 'EAISOCKTYPE',
|
||||
description: 'ai_socktype not supported'
|
||||
},
|
||||
{
|
||||
errno: 46,
|
||||
code: 'ESHUTDOWN',
|
||||
description: 'cannot send after transport endpoint shutdown'
|
||||
},
|
||||
{
|
||||
errno: 47,
|
||||
code: 'EEXIST',
|
||||
description: 'file already exists'
|
||||
},
|
||||
{
|
||||
errno: 48,
|
||||
code: 'ESRCH',
|
||||
description: 'no such process'
|
||||
},
|
||||
{
|
||||
errno: 49,
|
||||
code: 'ENAMETOOLONG',
|
||||
description: 'name too long'
|
||||
},
|
||||
{
|
||||
errno: 50,
|
||||
code: 'EPERM',
|
||||
description: 'operation not permitted'
|
||||
},
|
||||
{
|
||||
errno: 51,
|
||||
code: 'ELOOP',
|
||||
description: 'too many symbolic links encountered'
|
||||
},
|
||||
{
|
||||
errno: 52,
|
||||
code: 'EXDEV',
|
||||
description: 'cross-device link not permitted'
|
||||
},
|
||||
{
|
||||
errno: 53,
|
||||
code: 'ENOTEMPTY',
|
||||
description: 'directory not empty'
|
||||
},
|
||||
{
|
||||
errno: 54,
|
||||
code: 'ENOSPC',
|
||||
description: 'no space left on device'
|
||||
},
|
||||
{
|
||||
errno: 55,
|
||||
code: 'EIO',
|
||||
description: 'i/o error'
|
||||
},
|
||||
{
|
||||
errno: 56,
|
||||
code: 'EROFS',
|
||||
description: 'read-only file system'
|
||||
},
|
||||
{
|
||||
errno: 57,
|
||||
code: 'ENODEV',
|
||||
description: 'no such device'
|
||||
},
|
||||
{
|
||||
errno: 58,
|
||||
code: 'ESPIPE',
|
||||
description: 'invalid seek'
|
||||
},
|
||||
{
|
||||
errno: 59,
|
||||
code: 'ECANCELED',
|
||||
description: 'operation canceled'
|
||||
}
|
||||
]
|
||||
|
||||
module.exports.errno = {}
|
||||
module.exports.code = {}
|
||||
|
||||
all.forEach(function (error) {
|
||||
module.exports.errno[error.errno] = error
|
||||
module.exports.code[error.code] = error
|
||||
})
|
||||
|
||||
module.exports.custom = require('./custom')(module.exports)
|
||||
module.exports.create = module.exports.custom.createError
|
66
node_modules/errno/package.json
generated
vendored
Normal file
66
node_modules/errno/package.json
generated
vendored
Normal file
@ -0,0 +1,66 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"errno@0.1.7",
|
||||
"/Users/tatiana/selfdefined"
|
||||
]
|
||||
],
|
||||
"_from": "errno@0.1.7",
|
||||
"_id": "errno@0.1.7",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
|
||||
"_location": "/errno",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "errno@0.1.7",
|
||||
"name": "errno",
|
||||
"escapedName": "errno",
|
||||
"rawSpec": "0.1.7",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "0.1.7"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/memory-fs",
|
||||
"/recursive-copy"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
|
||||
"_spec": "0.1.7",
|
||||
"_where": "/Users/tatiana/selfdefined",
|
||||
"authors": [
|
||||
"Rod Vagg @rvagg <rod@vagg.org> (https://github.com/rvagg)"
|
||||
],
|
||||
"bin": {
|
||||
"errno": "./cli.js"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/rvagg/node-errno/issues"
|
||||
},
|
||||
"dependencies": {
|
||||
"prr": "~1.0.1"
|
||||
},
|
||||
"description": "libuv errno details exposed",
|
||||
"devDependencies": {
|
||||
"error-stack-parser": "^2.0.1",
|
||||
"inherits": "^2.0.3",
|
||||
"tape": "~4.8.0"
|
||||
},
|
||||
"homepage": "https://github.com/rvagg/node-errno#readme",
|
||||
"keywords": [
|
||||
"errors",
|
||||
"errno",
|
||||
"libuv"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "errno.js",
|
||||
"name": "errno",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/rvagg/node-errno.git"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "node --use_strict test.js"
|
||||
},
|
||||
"version": "0.1.7"
|
||||
}
|
88
node_modules/errno/test.js
generated
vendored
Normal file
88
node_modules/errno/test.js
generated
vendored
Normal file
@ -0,0 +1,88 @@
|
||||
var test = require('tape')
|
||||
, inherits = require('inherits')
|
||||
, ErrorStackParser = require('error-stack-parser')
|
||||
, errno = require('./')
|
||||
|
||||
test('sanity checks', function (t) {
|
||||
t.ok(errno.all, 'errno.all not found')
|
||||
t.ok(errno.errno, 'errno.errno not found')
|
||||
t.ok(errno.code, 'errno.code not found')
|
||||
|
||||
t.equal(errno.all.length, 60, 'found ' + errno.all.length + ', expected 60')
|
||||
t.equal(errno.errno['-1'], errno.all[1], 'errno -1 not second element')
|
||||
|
||||
t.equal(errno.code['UNKNOWN'], errno.all[1], 'code UNKNOWN not second element')
|
||||
|
||||
t.equal(errno.errno[1], errno.all[3], 'errno 1 not fourth element')
|
||||
|
||||
t.equal(errno.code['EOF'], errno.all[3], 'code EOF not fourth element')
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('custom errors', function (t) {
|
||||
const Cust = errno.create('FooNotBarError')
|
||||
const cust = new Cust('foo is not bar')
|
||||
|
||||
t.equal(cust.name, 'FooNotBarError', 'correct custom name')
|
||||
t.equal(cust.type, 'FooNotBarError', 'correct custom type')
|
||||
t.equal(cust.message, 'foo is not bar', 'correct custom message')
|
||||
t.notOk(cust.cause, 'no cause')
|
||||
t.end()
|
||||
})
|
||||
|
||||
test('callstack', function (t) {
|
||||
const MyError = errno.create('MyError')
|
||||
|
||||
function lastFunction (ErrorType, cb) {
|
||||
process.nextTick(cb, new ErrorType('oh noes!'))
|
||||
}
|
||||
|
||||
function secondLastFunction (ErrorType, cb) {
|
||||
lastFunction(ErrorType, cb)
|
||||
}
|
||||
|
||||
function testFrames (t) {
|
||||
return function (err) {
|
||||
const stack = ErrorStackParser.parse(err)
|
||||
t.same(stack[0].functionName, 'lastFunction', 'last stack frame ok')
|
||||
t.same(stack[1].functionName, 'secondLastFunction', 'second last stack frame ok')
|
||||
t.end()
|
||||
}
|
||||
}
|
||||
|
||||
t.test('custom error, default prototype', function (t) {
|
||||
secondLastFunction(MyError, testFrames(t))
|
||||
})
|
||||
|
||||
t.test('custom error, custom prototype', function (t) {
|
||||
const MyError2 = errno.create('MyError2', MyError)
|
||||
secondLastFunction(MyError2, testFrames(t))
|
||||
})
|
||||
|
||||
t.test('custom error, using inheritance', function (t) {
|
||||
const CustomError = errno.custom.CustomError
|
||||
|
||||
function MyError3 (message, cause) {
|
||||
CustomError.call(this, message, cause)
|
||||
}
|
||||
|
||||
inherits(MyError3, CustomError)
|
||||
|
||||
secondLastFunction(MyError3, testFrames(t))
|
||||
})
|
||||
})
|
||||
|
||||
test('error without message', function (t) {
|
||||
const Cust = errno.create('WriteError')
|
||||
const cust = new Cust({
|
||||
code: 22,
|
||||
message: '',
|
||||
name: 'QuotaExceededError'
|
||||
})
|
||||
|
||||
t.equal(cust.name, 'WriteError', 'correct custom name')
|
||||
t.equal(cust.type, 'WriteError', 'correct custom type')
|
||||
t.equal(cust.message, 'QuotaExceededError', 'message is the name')
|
||||
t.notOk(cust.cause, 'no cause')
|
||||
t.end()
|
||||
})
|
Reference in New Issue
Block a user