synapse-admin/scripts/startRekitStudio.js

39 lines
1.1 KiB
JavaScript
Raw Normal View History

'use strict';
// Start Rekit Studio
const path = require('path');
const http = require('http');
const express = require('express');
const rekitStudioMiddleWare = require('rekit-studio/middleware');
const fallback = require('express-history-api-fallback');
function startRekitStudio(port) {
console.log('Starting Rekit Studio...');
return new Promise((resolve, reject) => {
const app = express();
const server = http.createServer(app);
const root = path.join(__dirname, '../node_modules/rekit-studio/dist');
app.use(rekitStudioMiddleWare()(server, app));
app.use(express.static(root));
app.use(fallback('index.html', { root }));
// Other files should not happen, respond 404
app.get('*', (req, res) => {
console.log('Warning: unknown req: ', req.path);
res.sendStatus(404);
});
server.listen(port, err => {
if (err) {
console.error(err);
reject(err);
return;
}
console.log(`Rekit Studio is running at http://localhost:${port}/`);
resolve();
});
});
}
module.exports = startRekitStudio;