-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
31 lines (27 loc) · 1.15 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// -------------------------------------------
// Serves the client library /ripple.js
// -------------------------------------------
module.exports = function serve(ripple, { server, serve, client = 'ripple' } = {}){
log('creating')
const { http = server } = ripple.server || {}
if (!http) return ripple
const app = expressify(http)
, path = local(serve, client)
, compress = compression()
app.use(`/${client}.js`, compress, send(path(prod ? 'min.js' : 'bundle.js')))
app.use(`/${client}.bundle.js`, compress, send(path('bundle.js')))
app.use(`/${client}.min.js`, compress, send(path('min.js')))
return ripple
}
const expressify = server => server.express
|| key('_events.request')(server)
|| server.on('request', express())._events.request
const local = (path, client) => ext => resolve(path, `./${client}.${ext}`)
const compression = require('compression')
, send = require('utilise/send')
, key = require('utilise/key')
, { resolve } = require('path')
, express = require('express')
, log = require('utilise/log')('[ri/serve]')
, lo = require('utilise/lo')
, prod = lo(process.env.NODE_ENV) == 'production'