Browserify transform for unassert: Encourages programming with assertions by providing tools to compile them away.
- unassert: Encourages programming with assertions by providing tools to compile them away.
- babel-plugin-unassert: Babel plugin for unassert
- webpack-unassert-loader: Webpack loader for unassert
- gulp-unassert: Gulp plugin for unassert
- unassert-cli: CLI for unassert
$ npm install --save-dev unassertify
$ $(npm bin)/browserify -t unassertify /path/to/src/target.js > /path/to/build/target.js
var source = require('vinyl-source-stream');
var browserify = require('browserify');
var glob = require('glob'),
gulp.task('production_build', function() {
var files = glob.sync('./src/*.js');
var b = browserify({entries: files});
b.transform('unassertify');
return b.bundle()
.pipe(source('bundle.js'))
.pipe(gulp.dest('./dist'));
});
For given math.js
below,
'use strict';
var assert = require('assert');
function add (a, b) {
console.assert(typeof a === 'number');
assert(!isNaN(a));
assert.equal(typeof b, 'number');
assert.ok(!isNaN(b));
return a + b;
}
Run browserify
with -t unassertify
to transform file.
$ $(npm bin)/browserify -t unassertify /path/to/demo/math.js > /path/to/build/math.js
You will see assert calls disappear.
'use strict';
function add(a, b) {
return a + b;
}
Assertion expressions are removed when they match patterns below. In other words, unassertify removes assertion calls that are compatible with Node.js standard assert API (and console.assert
).
assert(value, [message])
assert.ok(value, [message])
assert.equal(actual, expected, [message])
assert.notEqual(actual, expected, [message])
assert.strictEqual(actual, expected, [message])
assert.notStrictEqual(actual, expected, [message])
assert.deepEqual(actual, expected, [message])
assert.notDeepEqual(actual, expected, [message])
assert.deepStrictEqual(actual, expected, [message])
assert.notDeepStrictEqual(actual, expected, [message])
assert.fail(actual, expected, message, operator)
assert.throws(block, [error], [message])
assert.doesNotThrow(block, [message])
assert.ifError(value)
console.assert(value, [message])
unassertify also removes assert variable declarations,
var assert = require("assert")
var assert = require("power-assert")
and assignments.
assert = require("assert")
assert = require("power-assert")
We support Node under maintenance. In other words, we stop supporting old Node version when their maintenance ends.
This means that any other environment is not supported.
NOTE: If unassertify works in any of the unsupported environments, it is purely coincidental and has no bearing on future compatibility. Use at your own risk.
Licensed under the MIT license.