12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- const Backend = require('./api/structures/Server');
- const express = require('express');
- const compression = require('compression');
- const ream = require('ream');
- const config = require('../config');
- const path = require('path');
- const log = require('./api/utils/Log');
- const dev = process.env.NODE_ENV !== 'production';
- const oneliner = require('one-liner');
- const jetpack = require('fs-jetpack');
- function startProduction() {
- startAPI();
- startSite();
- }
- function startAPI() {
- new Backend().start();
- }
- function startSite() {
-
- writeFrontendConfig();
-
- const server = express();
- const app = ream({
- dev,
- entry: path.join(__dirname, 'site', 'index.js')
- });
- app.getRequestHandler().then(handler => {
- server.use(compression());
-
- if (config.serveFilesWithNode) {
- server.use('/', express.static(`./${config.uploads.uploadFolder}`));
- }
- server.get('*', handler);
- server.listen(config.server.ports.frontend, error => {
- if (error) log.error(error);
- });
- });
- app.on('renderer-ready', () => log.info(`> Frontend ready and listening on port ${config.server.ports.frontend}`));
- }
- function writeFrontendConfig() {
-
- const template = oneliner`
- module.exports = {
- version: '${process.env.npm_package_version}',
- baseURL: '${config.backendLocation}',
- serviceName: '${config.serviceName}',
- maxFileSize: '${config.uploads.uploadMaxSize}',
- chunkSize: '${config.uploads.chunkSize}'
- }`;
- jetpack.write(path.join(__dirname, 'site', 'config.js'), template);
- log.success('Frontend config file generated successfully');
- }
- const args = process.argv[2];
- if (!args) startProduction();
- else if (args === 'api') startAPI();
- else if (args === 'site') startSite();
- else process.exit(0);
|