39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
'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;
|