Skip to content

Commit cc9683b

Browse files
committed
[test] setup local testling
1 parent acf97ef commit cc9683b

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

package.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
"version": "1.0.7",
44
"description": "Builtins that were extracted from node-browser-resolve on which browserify depends",
55
"main": "index.js",
6+
"scripts": {
7+
"test": "tape test/node/* && browserify --transform ./test/browserify-transform.js test/browser/* | testling"
8+
},
69
"repository": {
710
"type": "git",
811
"url": "git://github.com/alexgorbatchev/node-browser-builtins.git"
@@ -22,5 +25,8 @@
2225
"buffer-browserify": "0.1.x",
2326
"zlib-browserify": "0.0.x",
2427
"constants-browserify": "0.0.x"
28+
},
29+
"devDependencies": {
30+
"tape": "1.0.x"
2531
}
2632
}

test/browserify-transform.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
2+
// This transformer changes the require calls so they don't point to the
3+
// browserify buildins (older version of this module).
4+
5+
var path = require('path');
6+
var util = require('util');
7+
var stream = require('stream');
8+
var buildins = require('../index.js');
9+
10+
function RequireRedirect() {
11+
if (!(this instanceof RequireRedirect)) return new RequireRedirect();
12+
stream.Transform.call(this);
13+
this.buffers = [];
14+
}
15+
module.exports = RequireRedirect;
16+
util.inherits(RequireRedirect, stream.Transform);
17+
18+
RequireRedirect.prototype._transform = function (chunk, encoding, done) {
19+
this.buffers.push(chunk);
20+
done(null);
21+
};
22+
23+
// NOTE: this is an incomplete require RegExp, but for internal use here
24+
// its fine.
25+
var REQUIRE_REGEX = /require\((?:"|')([^"']+)(?:"|')\)/g;
26+
27+
var RELATIVE_DIR = path.resolve(__dirname, '..');
28+
29+
RequireRedirect.prototype._flush = function (done) {
30+
var file = Buffer.concat(this.buffers).toString();
31+
32+
file = file.replace(REQUIRE_REGEX, function (source, name) {
33+
if (buildins.hasOwnProperty(name)) {
34+
return "require('" + buildins[name] + "')";
35+
} else {
36+
return source;
37+
}
38+
});
39+
40+
this.push(file);
41+
done(null);
42+
};

0 commit comments

Comments
 (0)