File tree Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Original file line number Diff line number Diff line change 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"
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}
Original file line number Diff line number Diff line change 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 = / r e q u i r e \( (?: " | ' ) ( [ ^ " ' ] + ) (?: " | ' ) \) / 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+ } ;
You can’t perform that action at this time.
0 commit comments