@@ -38,13 +38,13 @@ var path = require('path');
38
38
var minimist = require ( 'minimist' ) ;
39
39
var cucumber = require ( 'gulp-cucumber' ) ;
40
40
var install = require ( "gulp-install" ) ;
41
- var os = require ( 'os' ) ;
42
41
var file = require ( 'gulp-file' ) ;
43
42
var semver = require ( 'semver' ) ;
44
43
var sharedNeo4j = require ( './test/internal/shared-neo4j' ) . default ;
45
44
var ts = require ( 'gulp-typescript' ) ;
46
45
var JasmineConsoleReporter = require ( 'jasmine-console-reporter' ) ;
47
46
var karmaServer = require ( 'karma' ) . Server ;
47
+ var transformTools = require ( 'browserify-transform-tools' ) ;
48
48
49
49
/**
50
50
* Useful to investigate resource leaks in tests. Enable to see active sockets and file handles after the 'test' task.
@@ -66,9 +66,9 @@ gulp.task('build-browser', function () {
66
66
cache : { } ,
67
67
standalone : 'neo4j' ,
68
68
packageCache : { }
69
- } ) . transform ( babelify . configure ( {
70
- presets : [ 'env' ] , ignore : / e x t e r n a l /
71
- } ) ) . bundle ( ) ;
69
+ } ) . transform ( babelifyTransform ( ) )
70
+ . transform ( browserifyTransformNodeToBrowserRequire ( ) )
71
+ . bundle ( ) ;
72
72
73
73
// Un-minified browser package
74
74
appBundler
@@ -85,9 +85,9 @@ gulp.task('build-browser', function () {
85
85
} ) ;
86
86
87
87
gulp . task ( 'build-browser-test' , function ( ) {
88
- var browserOutput = 'lib /browser/' ;
88
+ var browserOutput = 'build /browser/' ;
89
89
var testFiles = [ ] ;
90
- return gulp . src ( './test/**/*.test.js' )
90
+ return gulp . src ( [ './test/**/*.test.js' , '!./test/**/node/*.js' ] )
91
91
. pipe ( through . obj ( function ( file , enc , cb ) {
92
92
if ( file . path . indexOf ( 'examples.test.js' ) < 0 ) {
93
93
testFiles . push ( file . path ) ;
@@ -99,19 +99,18 @@ gulp.task('build-browser-test', function(){
99
99
cb ( ) ;
100
100
} ) )
101
101
. pipe ( through . obj ( function ( testFiles , enc , cb ) {
102
- browserify ( {
102
+ browserify ( {
103
103
entries : testFiles ,
104
104
cache : { } ,
105
105
debug : true
106
- } ) . transform ( babelify . configure ( {
107
- presets : [ 'env' ] , plugins : [ 'transform-runtime' ] , ignore : / e x t e r n a l /
108
- } ) )
109
- . bundle ( function ( err , res ) {
110
- cb ( ) ;
111
- } )
112
- . on ( 'error' , gutil . log )
113
- . pipe ( source ( 'neo4j-web.test.js' ) )
114
- . pipe ( gulp . dest ( browserOutput ) )
106
+ } ) . transform ( babelifyTransform ( ) )
107
+ . transform ( browserifyTransformNodeToBrowserRequire ( ) )
108
+ . bundle ( function ( ) {
109
+ cb ( ) ;
110
+ } )
111
+ . on ( 'error' , gutil . log )
112
+ . pipe ( source ( 'neo4j-web.test.js' ) )
113
+ . pipe ( gulp . dest ( browserOutput ) ) ;
115
114
} ,
116
115
function ( cb ) {
117
116
cb ( )
@@ -121,7 +120,7 @@ gulp.task('build-browser-test', function(){
121
120
122
121
var buildNode = function ( options ) {
123
122
return gulp . src ( options . src )
124
- . pipe ( babel ( { presets : [ 'env' ] , plugins : [ 'transform-runtime' ] , ignore : [ 'src/external/**/*.js' ] } ) )
123
+ . pipe ( babel ( babelConfig ( ) ) )
125
124
. pipe ( gulp . dest ( options . dest ) )
126
125
} ;
127
126
@@ -138,13 +137,14 @@ gulp.task('all', function(cb){
138
137
139
138
// prepares directory for package.test.js
140
139
gulp . task ( 'install-driver-into-sandbox' , [ 'nodejs' ] , function ( ) {
141
- var testDir = path . join ( os . tmpdir ( ) , 'sandbox' ) ;
140
+ var testDir = path . join ( 'build' , 'sandbox' ) ;
142
141
fs . emptyDirSync ( testDir ) ;
143
142
144
143
var packageJsonContent = JSON . stringify ( {
145
- "dependencies" :{
146
- "neo4j-driver" : __dirname
147
- }
144
+ 'private' : true ,
145
+ 'dependencies' : {
146
+ 'neo4j-driver' : __dirname
147
+ }
148
148
} ) ;
149
149
150
150
return file ( 'package.json' , packageJsonContent , { src :true } )
@@ -164,7 +164,7 @@ gulp.task('test', function (cb) {
164
164
} ) ;
165
165
166
166
gulp . task ( 'test-nodejs' , [ 'install-driver-into-sandbox' ] , function ( ) {
167
- return gulp . src ( ' test/**/*.test.js')
167
+ return gulp . src ( [ './ test/**/*.test.js', '!./test/**/browser/*.js' ] )
168
168
. pipe ( jasmine ( {
169
169
includeStackTrace : true ,
170
170
reporter : newJasmineConsoleReporter ( )
@@ -306,3 +306,31 @@ function newJasmineConsoleReporter() {
306
306
activity : false
307
307
} ) ;
308
308
}
309
+
310
+ function babelifyTransform ( ) {
311
+ return babelify . configure ( babelConfig ( ) ) ;
312
+ }
313
+
314
+ function babelConfig ( ) {
315
+ return {
316
+ presets : [ 'env' ] , plugins : [ 'transform-runtime' ]
317
+ } ;
318
+ }
319
+
320
+ function browserifyTransformNodeToBrowserRequire ( ) {
321
+ var nodeRequire = '/node' ;
322
+ var browserRequire = '/browser' ;
323
+
324
+ return transformTools . makeRequireTransform ( 'bodeToBrowserRequireTransform' ,
325
+ { evaluateArguments : true } ,
326
+ function ( args , opts , cb ) {
327
+ var requireArg = args [ 0 ] ;
328
+ var endsWithNodeRequire = requireArg . slice ( - nodeRequire . length ) === nodeRequire ;
329
+ if ( endsWithNodeRequire ) {
330
+ var newRequireArg = requireArg . replace ( nodeRequire , browserRequire ) ;
331
+ return cb ( null , 'require(\'' + newRequireArg + '\')' ) ;
332
+ } else {
333
+ return cb ( ) ;
334
+ }
335
+ } ) ;
336
+ }
0 commit comments