diff --git a/Makefile b/Makefile deleted file mode 100644 index 36a3ed7..0000000 --- a/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -test: - @echo "populate me" - -.PHONY: test \ No newline at end of file diff --git a/example.js b/example.js index 688c29e..5184bb8 100644 --- a/example.js +++ b/example.js @@ -1,10 +1,16 @@ -var assert = require('./'); +var {assert, is} = require('./') -test(); +test() function test() { - var user = { name: 'tobi' }; - assert('tobi' == user.name); - assert('number' == typeof user.age); -} \ No newline at end of file + var user = { name: 'tobi' + //, age: 18 // comment-out this line to make an assert test fail + } + + //assert( ()=>false ) + assert( ()=>user.name=='tobi', is('user.name',user.name) ) + assert( ()=>typeof user.age=='number', is('typeof user.age',typeof user.age) ) + + console.log('test ended.') +} diff --git a/index.js b/index.js index fd1c9b7..de887c3 100644 --- a/index.js +++ b/index.js @@ -1,38 +1,21 @@ -/** - * Module dependencies. - */ -var AssertionError = require('assert').AssertionError - , callsite = require('callsite') - , fs = require('fs') +module.exports = { assert, is } -/** - * Expose `assert`. - */ - -module.exports = process.env.NO_ASSERT - ? function(){} - : assert; - -/** - * Assert the given `expr`. - */ - -function assert(expr) { - if (expr) return; - - var stack = callsite(); - var call = stack[1]; - var file = call.getFileName(); - var lineno = call.getLineNumber(); - var src = fs.readFileSync(file, 'utf8'); - var line = src.split('\n')[lineno-1]; - var src = line.match(/assert\((.*)\)/)[1]; - - var err = new AssertionError({ - message: src, - stackStartFunction: stack[0].getFunction() - }); +function assert(test_function,debug_facts=null){ + if(typeof debug_facts=='function') debug_facts=debug_facts() + if(test_function()!==true){ + throw new Error('Assertion {'+ + test_function.toString().split('=>')[1]+ + '} is false!'+ + (debug_facts==null?'':(' in fact ... '+debug_facts))) + } +} - throw err; +function is(what, iswhat){ + var repr=iswhat.toString() + if(typeof repr=='undefined') repr=JSON.stringify(iswhat) + return what+' is '+repr } + +var name='richard' +assert(()=>name=='richard','name is '+name) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..76b741f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "better-assert", + "version": "1.0.3", + "lockfileVersion": 1 +} diff --git a/package.json b/package.json index e270f5e..735239a 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,9 @@ "author": "TJ Holowaychuk ", "contributors": [ "TonyHe ", - "ForbesLindesay" + "ForbesLindesay", + "Dario Cangialosi" ], - "dependencies": { - "callsite": "1.0.0" - }, "repository": { "type": "git", "url": "https://github.com/visionmedia/better-assert.git"