arnaucube
arnaucube/socketioMEANseedPublic Self-hosted repository
socketioMEANseed/server/node_modules/better-assert/index.js
server/node_modules/better-assert/index.jsRaw
 1/**
 2 * Module dependencies.
 3 */
 4
 5var AssertionError = require('assert').AssertionError
 6  , callsite = require('callsite')
 7  , fs = require('fs')
 8
 9/**
10 * Expose `assert`.
11 */
12
13module.exports = process.env.NO_ASSERT
14  ? function(){}
15  : assert;
16
17/**
18 * Assert the given `expr`.
19 */
20
21function assert(expr) {
22  if (expr) return;
23
24  var stack = callsite();
25  var call = stack[1];
26  var file = call.getFileName();
27  var lineno = call.getLineNumber();
28  var src = fs.readFileSync(file, 'utf8');
29  var line = src.split('\n')[lineno-1];
30  var src = line.match(/assert\((.*)\)/)[1];
31
32  var err = new AssertionError({
33    message: src,
34    stackStartFunction: stack[0].getFunction()
35  });
36
37  throw err;
38}