UNPKG

1.2 kBJavaScriptView Raw
1const fs = require('fs');
2const path = require('path');
3const http = require('http');
4const util = require('./util');
5const basename = path.basename;
6const server = require('./server');
7const express = require('express');
8const app = express();
9const bodyParser = require('body-parser');
10const compression = require('compression');
11
12exports = module.exports = (options = {}) => {
13 const parsedOptions = Object.assign({}, {
14 port: options.port || process.env.PORT || 3000
15 }, options)
16
17 server.init(options);
18 server.onRequest = server.onRequest.bind(server);
19
20 app.disable('x-powered-by');
21 app.use(compression());
22
23 app.get('*', server.onRequest);
24
25 //dont check content-type and just always try to parse body as json
26 app.post('*', bodyParser.json({ type: () => true }), server.onRequest);
27
28 app.listen(parsedOptions, () => util.log(`Prerender server accepting requests on port ${parsedOptions.port}`))
29
30 return server;
31};
32
33fs.readdirSync(__dirname + '/plugins').forEach((filename) => {
34 if (!/\.js$/.test(filename)) return;
35
36 var name = basename(filename, '.js');
37
38 function load() {
39 return require('./plugins/' + name);
40 };
41
42 Object.defineProperty(exports, name, {
43 value: load
44 });
45});