Skip to content

Commit ae58fc0

Browse files
authored
Merge pull request #74 from marionebl/fix/ensure-lts-compatibility
fix: ensure node 4 compat
2 parents 30f702b + 94a832d commit ae58fc0

File tree

8 files changed

+80
-28
lines changed

8 files changed

+80
-28
lines changed

bin/build.js

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
const bankai = require('../')
2-
const path = require('path')
1+
'use strict'
2+
3+
const resolveEntry = require('../lib/resolve-entry')
34
const browserify = require('browserify')
4-
const resolve = require('resolve')
5-
const xtend = require('xtend')
6-
const fs = require('fs')
7-
const mkdirp = require('mkdirp')
85
const parallel = require('run-parallel')
6+
const mkdirp = require('mkdirp')
7+
const xtend = require('xtend')
8+
const bankai = require('../')
9+
const path = require('path')
910
const pump = require('pump')
11+
const fs = require('fs')
1012

1113
module.exports = build
1214

@@ -19,23 +21,13 @@ const defaults = {
1921
js: {}
2022
}
2123

22-
const cwd = process.cwd()
23-
24-
// resolve a path according to require.resolve algorithm
25-
// string -> string
26-
function resolveEntryFile (relativePath) {
27-
const first = relativePath.charAt(0)
28-
const entry = ['.', '/'].includes(first) ? relativePath : './' + relativePath
29-
return resolve.sync(entry, {basedir: cwd})
30-
}
31-
3224
function build (options, cb) {
3325
const assets = bankai({ optimize: true })
3426

3527
const settings = xtend({}, defaults, options)
3628
const callback = cb || function () {}
3729

38-
const entryFile = resolveEntryFile(settings.entry)
30+
const entryFile = resolveEntry(settings.entry)
3931
const outputDir = settings.dir
4032

4133
// Register css & html if specified. Register js no matter what

bin/start.js

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
'use strict'
2+
3+
const resolveEntry = require('../lib/resolve-entry')
14
const stringToStream = require('string-to-stream')
25
const getServerPort = require('get-server-port')
36
const serverRouter = require('server-router')
47
const browserify = require('browserify')
5-
const resolve = require('resolve')
68
const xtend = require('xtend')
79
const http = require('http')
810
const path = require('path')
@@ -32,7 +34,7 @@ function start (options, cb) {
3234
const opts = xtend({}, defaults, options)
3335
const callback = cb || function () {}
3436

35-
const entryFile = resolveEntryFile(opts.entry)
37+
const entryFile = resolveEntry(opts.entry)
3638
const relativeEntry = path.relative(cwd, entryFile)
3739

3840
const routes = []
@@ -86,11 +88,3 @@ function start (options, cb) {
8688
callback()
8789
})
8890
}
89-
90-
// resolve a path according to require.resolve algorithm
91-
// string -> string
92-
function resolveEntryFile (relativePath) {
93-
const first = relativePath.charAt(0)
94-
const entry = ['.', '/'].includes(first) ? relativePath : './' + relativePath
95-
return resolve.sync(entry, {basedir: cwd})
96-
}

handler-css.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict'
2+
13
const assert = require('assert')
24
const stream = require('readable-stream')
35

handler-html.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict'
2+
13
const createHtml = require('create-html')
24
const xtend = require('xtend')
35
const stringToStream = require('string-to-stream')

handler-js.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict'
2+
13
const assert = require('assert')
24
const bl = require('bl')
35
const cssExtract = require('css-extract')

lib/resolve-entry.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
'use strict'
2+
3+
const resolve = require('resolve')
4+
const cwd = process.cwd()
5+
6+
module.exports = resolveEntry
7+
8+
// resolve a path according to require.resolve algorithm
9+
// string -> string
10+
function resolveEntry (id) {
11+
const entry = ['.', '/'].indexOf(id.charAt(0)) > -1 ? id : './' + id
12+
return resolve.sync(entry, {basedir: cwd})
13+
}

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,14 @@
5151
"dependency-check": "^2.6.0",
5252
"is-html": "^1.0.0",
5353
"istanbul": "^0.4.4",
54+
"openport": "0.0.4",
5455
"standard": "^8.0.0",
5556
"tape": "^4.6.0"
5657
},
5758
"files": [
5859
"index.js",
5960
"bin/*",
61+
"lib/*",
6062
"client-hmr.js",
6163
"handler-*"
6264
]

test/index.js

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1+
'use strict'
2+
3+
const childProcess = require('child_process')
14
const getPort = require('get-server-port')
25
const browserify = require('browserify')
36
const concat = require('concat-stream')
7+
const openport = require('openport')
48
const isHtml = require('is-html')
9+
const bankai = require('../')
510
const http = require('http')
611
const path = require('path')
712
const test = require('tape')
8-
const bankai = require('../')
913

1014
test('html', function (t) {
1115
t.test('returns data', function (t) {
@@ -85,6 +89,30 @@ test('js', function (t) {
8589
})
8690
})
8791

92+
test('start', function (t) {
93+
t.test('start does not throw', function (t) {
94+
t.plan(1)
95+
96+
openport.find(function (err, p) {
97+
const port = err ? 1337 : p
98+
99+
const args = ['start', '--entry=./fixture', `--port=${port}`]
100+
101+
bin(args, function (error, data, child) {
102+
child.kill()
103+
104+
if (error) {
105+
return t.fail(error)
106+
}
107+
108+
const actual = data.toString().split('\n')[0]
109+
const expected = `Started bankai for fixture.js on http://localhost:${port}`
110+
t.equal(actual, expected, 'start logs success')
111+
})
112+
})
113+
})
114+
})
115+
88116
test('__END__', function (t) {
89117
t.on('end', function () {
90118
setTimeout(function () {
@@ -93,3 +121,20 @@ test('__END__', function (t) {
93121
})
94122
t.end()
95123
})
124+
125+
function bin (args, cb) {
126+
const file = path.resolve(__dirname, '../bin/index.js')
127+
128+
const child = childProcess.spawn(file, args, {
129+
cwd: __dirname,
130+
env: process.env
131+
})
132+
133+
child.stdout.once('data', function (data) {
134+
cb(null, data, child)
135+
})
136+
137+
child.stderr.once('data', function (error) {
138+
cb(new Error(error), null, child)
139+
})
140+
}

0 commit comments

Comments
 (0)