Deployed the page to Github Pages.
This commit is contained in:
parent
1d79754e93
commit
2c89899458
62797 changed files with 6551425 additions and 15279 deletions
126
node_modules/assert-plus/README.md
generated
vendored
Normal file
126
node_modules/assert-plus/README.md
generated
vendored
Normal file
|
@ -0,0 +1,126 @@
|
|||
# node-assert-plus
|
||||
|
||||
This library is a super small wrapper over node's assert module that has two
|
||||
things: (1) the ability to disable assertions with the environment variable
|
||||
NODE_NDEBUG, and (2) some API wrappers for argument testing. Like
|
||||
`assert.string(myArg, 'myArg')`. As a simple example, most of my code looks
|
||||
like this:
|
||||
|
||||
var assert = require('assert-plus');
|
||||
|
||||
function fooAccount(options, callback) {
|
||||
assert.object(options, 'options');
|
||||
assert.number(options.id, 'options.id);
|
||||
assert.bool(options.isManager, 'options.isManager');
|
||||
assert.string(options.name, 'options.name');
|
||||
assert.arrayOfString(options.email, 'options.email');
|
||||
assert.func(callback, 'callback');
|
||||
|
||||
// Do stuff
|
||||
callback(null, {});
|
||||
}
|
||||
|
||||
# API
|
||||
|
||||
All methods that *aren't* part of node's core assert API are simply assumed to
|
||||
take an argument, and then a string 'name' that's not a message; `AssertionError`
|
||||
will be thrown if the assertion fails with a message like:
|
||||
|
||||
AssertionError: foo (string) is required
|
||||
at test (/home/mark/work/foo/foo.js:3:9)
|
||||
at Object.<anonymous> (/home/mark/work/foo/foo.js:15:1)
|
||||
at Module._compile (module.js:446:26)
|
||||
at Object..js (module.js:464:10)
|
||||
at Module.load (module.js:353:31)
|
||||
at Function._load (module.js:311:12)
|
||||
at Array.0 (module.js:484:10)
|
||||
at EventEmitter._tickCallback (node.js:190:38)
|
||||
|
||||
from:
|
||||
|
||||
function test(foo) {
|
||||
assert.string(foo, 'foo');
|
||||
}
|
||||
|
||||
There you go. You can check that arrays are of a homogenous type with `Arrayof$Type`:
|
||||
|
||||
function test(foo) {
|
||||
assert.arrayOfString(foo, 'foo');
|
||||
}
|
||||
|
||||
You can assert IFF an argument is not `undefined` (i.e., an optional arg):
|
||||
|
||||
assert.optionalString(foo, 'foo');
|
||||
|
||||
Lastly, you can opt-out of assertion checking altogether by setting the
|
||||
environment variable `NODE_NDEBUG=1`. This is pseudo-useful if you have
|
||||
lots of assertions, and don't want to pay `typeof ()` taxes to v8 in
|
||||
production.
|
||||
|
||||
The complete list of APIs is:
|
||||
|
||||
* assert.bool
|
||||
* assert.buffer
|
||||
* assert.func
|
||||
* assert.number
|
||||
* assert.object
|
||||
* assert.string
|
||||
* assert.arrayOfBool
|
||||
* assert.arrayOfFunc
|
||||
* assert.arrayOfNumber
|
||||
* assert.arrayOfObject
|
||||
* assert.arrayOfString
|
||||
* assert.optionalBool
|
||||
* assert.optionalBuffer
|
||||
* assert.optionalFunc
|
||||
* assert.optionalNumber
|
||||
* assert.optionalObject
|
||||
* assert.optionalString
|
||||
* assert.optionalArrayOfBool
|
||||
* assert.optionalArrayOfFunc
|
||||
* assert.optionalArrayOfNumber
|
||||
* assert.optionalArrayOfObject
|
||||
* assert.optionalArrayOfString
|
||||
* assert.AssertionError
|
||||
* assert.fail
|
||||
* assert.ok
|
||||
* assert.equal
|
||||
* assert.notEqual
|
||||
* assert.deepEqual
|
||||
* assert.notDeepEqual
|
||||
* assert.strictEqual
|
||||
* assert.notStrictEqual
|
||||
* assert.throws
|
||||
* assert.doesNotThrow
|
||||
* assert.ifError
|
||||
|
||||
# Installation
|
||||
|
||||
npm install assert-plus
|
||||
|
||||
## License
|
||||
|
||||
The MIT License (MIT)
|
||||
Copyright (c) 2012 Mark Cavage
|
||||
|
||||
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.
|
||||
|
||||
## Bugs
|
||||
|
||||
See <https://github.com/mcavage/node-assert-plus/issues>.
|
245
node_modules/assert-plus/assert.js
generated
vendored
Normal file
245
node_modules/assert-plus/assert.js
generated
vendored
Normal file
|
@ -0,0 +1,245 @@
|
|||
// Copyright (c) 2012, Mark Cavage. All rights reserved.
|
||||
|
||||
var assert = require('assert');
|
||||
var Stream = require('stream').Stream;
|
||||
var util = require('util');
|
||||
|
||||
|
||||
|
||||
///--- Globals
|
||||
|
||||
var NDEBUG = process.env.NODE_NDEBUG || false;
|
||||
var UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/;
|
||||
|
||||
|
||||
|
||||
///--- Messages
|
||||
|
||||
var ARRAY_TYPE_REQUIRED = '%s ([%s]) required';
|
||||
var TYPE_REQUIRED = '%s (%s) is required';
|
||||
|
||||
|
||||
|
||||
///--- Internal
|
||||
|
||||
function capitalize(str) {
|
||||
return (str.charAt(0).toUpperCase() + str.slice(1));
|
||||
}
|
||||
|
||||
function uncapitalize(str) {
|
||||
return (str.charAt(0).toLowerCase() + str.slice(1));
|
||||
}
|
||||
|
||||
function _() {
|
||||
return (util.format.apply(util, arguments));
|
||||
}
|
||||
|
||||
|
||||
function _assert(arg, type, name, stackFunc) {
|
||||
if (!NDEBUG) {
|
||||
name = name || type;
|
||||
stackFunc = stackFunc || _assert.caller;
|
||||
var t = typeof (arg);
|
||||
|
||||
if (t !== type) {
|
||||
throw new assert.AssertionError({
|
||||
message: _(TYPE_REQUIRED, name, type),
|
||||
actual: t,
|
||||
expected: type,
|
||||
operator: '===',
|
||||
stackStartFunction: stackFunc
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function _instanceof(arg, type, name, stackFunc) {
|
||||
if (!NDEBUG) {
|
||||
name = name || type;
|
||||
stackFunc = stackFunc || _instanceof.caller;
|
||||
|
||||
if (!(arg instanceof type)) {
|
||||
throw new assert.AssertionError({
|
||||
message: _(TYPE_REQUIRED, name, type.name),
|
||||
actual: _getClass(arg),
|
||||
expected: type.name,
|
||||
operator: 'instanceof',
|
||||
stackStartFunction: stackFunc
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function _getClass(object) {
|
||||
return (Object.prototype.toString.call(object).slice(8, -1));
|
||||
};
|
||||
|
||||
|
||||
|
||||
///--- API
|
||||
|
||||
function array(arr, type, name) {
|
||||
if (!NDEBUG) {
|
||||
name = name || type;
|
||||
|
||||
if (!Array.isArray(arr)) {
|
||||
throw new assert.AssertionError({
|
||||
message: _(ARRAY_TYPE_REQUIRED, name, type),
|
||||
actual: typeof (arr),
|
||||
expected: 'array',
|
||||
operator: 'Array.isArray',
|
||||
stackStartFunction: array.caller
|
||||
});
|
||||
}
|
||||
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
_assert(arr[i], type, name, array);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function bool(arg, name) {
|
||||
_assert(arg, 'boolean', name, bool);
|
||||
}
|
||||
|
||||
|
||||
function buffer(arg, name) {
|
||||
if (!Buffer.isBuffer(arg)) {
|
||||
throw new assert.AssertionError({
|
||||
message: _(TYPE_REQUIRED, name || '', 'Buffer'),
|
||||
actual: typeof (arg),
|
||||
expected: 'buffer',
|
||||
operator: 'Buffer.isBuffer',
|
||||
stackStartFunction: buffer
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function func(arg, name) {
|
||||
_assert(arg, 'function', name);
|
||||
}
|
||||
|
||||
|
||||
function number(arg, name) {
|
||||
_assert(arg, 'number', name);
|
||||
if (!NDEBUG && (isNaN(arg) || !isFinite(arg))) {
|
||||
throw new assert.AssertionError({
|
||||
message: _(TYPE_REQUIRED, name, 'number'),
|
||||
actual: arg,
|
||||
expected: 'number',
|
||||
operator: 'isNaN',
|
||||
stackStartFunction: number
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function object(arg, name) {
|
||||
_assert(arg, 'object', name);
|
||||
}
|
||||
|
||||
|
||||
function stream(arg, name) {
|
||||
_instanceof(arg, Stream, name);
|
||||
}
|
||||
|
||||
|
||||
function date(arg, name) {
|
||||
_instanceof(arg, Date, name);
|
||||
}
|
||||
|
||||
function regexp(arg, name) {
|
||||
_instanceof(arg, RegExp, name);
|
||||
}
|
||||
|
||||
|
||||
function string(arg, name) {
|
||||
_assert(arg, 'string', name);
|
||||
}
|
||||
|
||||
|
||||
function uuid(arg, name) {
|
||||
string(arg, name);
|
||||
if (!NDEBUG && !UUID_REGEXP.test(arg)) {
|
||||
throw new assert.AssertionError({
|
||||
message: _(TYPE_REQUIRED, name, 'uuid'),
|
||||
actual: 'string',
|
||||
expected: 'uuid',
|
||||
operator: 'test',
|
||||
stackStartFunction: uuid
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///--- Exports
|
||||
|
||||
module.exports = {
|
||||
bool: bool,
|
||||
buffer: buffer,
|
||||
date: date,
|
||||
func: func,
|
||||
number: number,
|
||||
object: object,
|
||||
regexp: regexp,
|
||||
stream: stream,
|
||||
string: string,
|
||||
uuid: uuid
|
||||
};
|
||||
|
||||
|
||||
Object.keys(module.exports).forEach(function (k) {
|
||||
if (k === 'buffer')
|
||||
return;
|
||||
|
||||
var name = 'arrayOf' + capitalize(k);
|
||||
|
||||
if (k === 'bool')
|
||||
k = 'boolean';
|
||||
if (k === 'func')
|
||||
k = 'function';
|
||||
module.exports[name] = function (arg, name) {
|
||||
array(arg, k, name);
|
||||
};
|
||||
});
|
||||
|
||||
Object.keys(module.exports).forEach(function (k) {
|
||||
var _name = 'optional' + capitalize(k);
|
||||
var s = uncapitalize(k.replace('arrayOf', ''));
|
||||
if (s === 'bool')
|
||||
s = 'boolean';
|
||||
if (s === 'func')
|
||||
s = 'function';
|
||||
|
||||
if (k.indexOf('arrayOf') !== -1) {
|
||||
module.exports[_name] = function (arg, name) {
|
||||
if (!NDEBUG && arg !== undefined) {
|
||||
array(arg, s, name);
|
||||
}
|
||||
};
|
||||
} else {
|
||||
module.exports[_name] = function (arg, name) {
|
||||
if (!NDEBUG && arg !== undefined) {
|
||||
_assert(arg, s, name);
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Reexport built-in assertions
|
||||
Object.keys(assert).forEach(function (k) {
|
||||
if (k === 'AssertionError') {
|
||||
module.exports[k] = assert[k];
|
||||
return;
|
||||
}
|
||||
|
||||
module.exports[k] = function () {
|
||||
if (!NDEBUG) {
|
||||
assert[k].apply(assert[k], arguments);
|
||||
}
|
||||
};
|
||||
});
|
16
node_modules/assert-plus/package.json
generated
vendored
Normal file
16
node_modules/assert-plus/package.json
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"author": "Mark Cavage <mcavage@gmail.com>",
|
||||
"name": "assert-plus",
|
||||
"description": "Extra assertions on top of node's assert module",
|
||||
"version": "0.1.5",
|
||||
"main": "./assert.js",
|
||||
"devDependencies": {},
|
||||
"optionalDependencies": {},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mcavage/node-assert-plus.git"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.8"
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue