cjs > esm imports

This commit is contained in:
cv
2021-05-24 17:06:02 +02:00
parent fa98e2ad92
commit 5b7905e86a
16 changed files with 138 additions and 160 deletions
+23 -20
View File
@@ -1,27 +1,33 @@
// get config
const config = require('./config.json');
import { config } from './config.js';
// init database
const low = require('lowdb');
const FileSync = require('lowdb/adapters/FileSync');
import { Low, JSONFile } from 'lowdb';
const adapter = new FileSync(config.database.filename);
const db = low(adapter);
const adapter = new JSONFile(config.database.filename);
export const db = new Low(adapter);
// dependencies
const express = require('express');
const http = require('http');
const cors = require('cors');
const { dbModel } = require('./data/dataModel.js');
import express from 'express';
import http from 'http';
import cors from 'cors';
import { dbModel } from './data/dataModel.js';
db.defaults(dbModel).write();
// Read data from JSON file, this will set db.data content
await db.read();
// export db
module.exports.db = db;
// If file.json doesn't exist, db.data will be null
// Set default data
// db.data ||= { posts: [] };
if (!db.data) db.data = { dbModel };
// get data
const { events } = db.data;
// Import Routes
const eventsRouter = require('./routes/eventsRouter.js');
const eventRouter = require('./routes/eventRouter.js');
import { router as eventsRouter } from './routes/eventsRouter.js';
import { router as eventRouter } from './routes/eventRouter.js';
// No settings yet
// const settingsRouter = require('./routes/settingsRouter.js');
@@ -29,7 +35,7 @@ const eventRouter = require('./routes/eventRouter.js');
const port = process.env.PORT || config.server.port;
// Global Objects
const EventTimer = require('./classes/EventTimer.js');
import { EventTimer } from './classes/EventTimer.js';
// Create express APP
const app = express();
@@ -62,12 +68,9 @@ app.use((err, req, res, next) => {
// create HTTP server
const server = http.createServer(app);
// get data (if any)
const eventlist = db.get('events').value();
// init timer
global.timer = new EventTimer(server, config);
global.timer.setupWithEventList(eventlist);
global.timer.setupWithEventList(events);
// Start server
server.listen(port, () =>
@@ -75,6 +78,6 @@ server.listen(port, () =>
);
// Start OSC server
const { initiateOSC } = require('./controllers/OscController.js');
import { initiateOSC } from './controllers/OscController.js';
initiateOSC(config.osc);
+5 -7
View File
@@ -1,5 +1,5 @@
const Timer = require('./Timer');
const socketIo = require('socket.io');
import { Timer } from './Timer.js';
import { Server } from 'socket.io';
/*
* EventTimer adds functions specific to APP
@@ -9,7 +9,7 @@ const socketIo = require('socket.io');
*
*/
class EventTimer extends Timer {
export class EventTimer extends Timer {
// AUX
DAYMS = 86400000;
@@ -57,12 +57,12 @@ class EventTimer extends Timer {
numEvents = null;
_eventlist = null;
constructor(server, config) {
constructor(httpServer, config) {
// call super constructor
super();
// initialise socketIO server
this.io = socketIo(server, {
this.io = new Server(httpServer, {
cors: {
origin: '*',
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
@@ -797,5 +797,3 @@ class EventTimer extends Timer {
this.loadEvent(this.selectedEventIndex);
}
}
module.exports = EventTimer;
+2 -4
View File
@@ -4,7 +4,7 @@
*
*/
class Timer {
export class Timer {
clock = null;
duration = null;
current = null;
@@ -210,6 +210,4 @@ class Timer {
this._finishedAt = null;
}
}
}
module.exports = Timer;
}
+15
View File
@@ -0,0 +1,15 @@
export const config = {
timer: {
refresh: 1000,
},
server: {
port: 4001,
},
database: {
filename: 'db.json',
tablename: 'events',
},
osc: {
port: 8888,
},
};
-15
View File
@@ -1,15 +0,0 @@
{
"timer": {
"refresh": 1000
},
"server": {
"port": 4001
},
"database": {
"filename": "db.json",
"tablename": "events"
},
"osc": {
"port": 8888
}
}
+3 -5
View File
@@ -1,7 +1,7 @@
const osc = require('node-osc');
import { Server } from 'node-osc';
const initiateOSC = (config) => {
const oscServer = new osc.Server(config.port, '0.0.0.0', () => {
export const initiateOSC = (config) => {
const oscServer = new Server(config.port, '0.0.0.0', () => {
console.log(`OSC Server is listening on port ${config.port}`);
});
@@ -83,5 +83,3 @@ const initiateOSC = (config) => {
}
});
};
module.exports = { initiateOSC };
+12 -12
View File
@@ -1,5 +1,5 @@
// get database
const { db } = require('../app.js');
import { db } from '../app.js';
const table = 'event';
@@ -9,7 +9,7 @@ function getSettings() {
// Create controller for GET request to 'event'
// Returns ACK message
exports.getAll = async (req, res) => {
export const getAll = async (req, res) => {
const settings = getSettings();
if (settings) res.json(settings);
else res.sendStatus(400);
@@ -17,7 +17,7 @@ exports.getAll = async (req, res) => {
// Create controller for POST request to 'event'
// Returns ACK message
exports.post = async (req, res) => {
export const post = async (req, res) => {
if (!req.body) {
res.status(400).send('No object found in request');
return;
@@ -35,7 +35,7 @@ exports.post = async (req, res) => {
// Create controller for GET request to 'event/title'
// Returns ACK message
exports.titleGet = async (req, res) => {
export const titleGet = async (req, res) => {
const settings = getSettings();
if (settings) res.json(settings.title);
@@ -44,7 +44,7 @@ exports.titleGet = async (req, res) => {
// Create controller for POST request to 'event/title'
// Returns ACK message
exports.titlePost = async (req, res) => {
export const titlePost = async (req, res) => {
if (!req.body) {
res.status(400).send('No object found in request');
return;
@@ -61,7 +61,7 @@ exports.titlePost = async (req, res) => {
// Create controller for GET request to '/event/url'
// Returns ACK message
exports.urlGet = async (req, res) => {
export const urlGet = async (req, res) => {
const event = getSettings();
if (event) res.json(event.url);
@@ -70,7 +70,7 @@ exports.urlGet = async (req, res) => {
// Create controller for POST request to '/event/url'
// Returns ACK message
exports.urlPost = async (req, res) => {
export const urlPost = async (req, res) => {
if (!req.body) {
res.status(400).send('No object found in request');
return;
@@ -87,7 +87,7 @@ exports.urlPost = async (req, res) => {
// Create controller for GET request to 'event/publicInfo'
// Returns ACK message
exports.publicInfoGet = async (req, res) => {
export const publicInfoGet = async (req, res) => {
const settings = getSettings();
if (settings) res.json(settings.publicInfo);
@@ -96,7 +96,7 @@ exports.publicInfoGet = async (req, res) => {
// Create controller for POST request to '/event/publicInfo'
// Returns ACK message
exports.publicInfoPost = async (req, res) => {
export const publicInfoPost = async (req, res) => {
if (!req.body) {
res.status(400).send('No object found in request');
return;
@@ -113,7 +113,7 @@ exports.publicInfoPost = async (req, res) => {
// Create controller for GET request to 'event/backstageInfo'
// Returns ACK message
exports.backstageInfoGet = async (req, res) => {
export const backstageInfoGet = async (req, res) => {
const settings = getSettings();
if (settings) res.json(settings.backstageInfo);
@@ -122,7 +122,7 @@ exports.backstageInfoGet = async (req, res) => {
// Create controller for POST request to '/event/info'
// Returns ACK message
exports.backstageInfoPost = async (req, res) => {
export const backstageInfoPost = async (req, res) => {
if (!req.body) {
res.status(400).send('No object found in request');
return;
@@ -139,6 +139,6 @@ exports.backstageInfoPost = async (req, res) => {
// Create controller for GET request to 'event/osc'
// Returns ACK message
exports.osc = async (req, res) => {
export const osc = async (req, res) => {
res.send('Not yet implemented').status(500);
};
+16 -12
View File
@@ -1,10 +1,14 @@
// get database
const db = require('../app.js').db;
import { db } from '../app.js';
// utils
const customAlphabet = require('nanoid').customAlphabet;
import { customAlphabet } from 'nanoid';
const nanoid = customAlphabet('1234567890abcdef', 4);
const eventDefs = require('../data/eventsDefinition.js');
import {
event as eventDef,
block as blockDef,
delay as delayDEf,
} from '../data/eventsDefinition.js';
function _getEventsCount() {
return db.get('events').size().value();
@@ -68,21 +72,21 @@ function _deleteTimerId(entryId) {
// Create controller for GET request to '/events'
// Returns -
exports.eventsGetAll = async (req, res) => {
export const eventsGetAll = async (req, res) => {
const results = db.get('events').value();
res.json(results);
};
// Create controller for GET request to '/events/:eventId'
// Returns -
exports.eventsGetById = async (req, res) => {
export const eventsGetById = async (req, res) => {
const e = db.get('events').find({ id: req.params.eventId }).value();
res.json(e);
};
// Create controller for POST request to '/events/'
// Returns -
exports.eventsPost = async (req, res) => {
export const eventsPost = async (req, res) => {
// TODO: Validate event
if (!req.body) {
res.status(400).send(`No object found in request`);
@@ -131,7 +135,7 @@ exports.eventsPost = async (req, res) => {
// Create controller for PUT request to '/events/'
// Returns -
exports.eventsPut = async (req, res) => {
export const eventsPut = async (req, res) => {
// no valid params
if (!req.body) {
res.status(400).send(`No object found`);
@@ -162,12 +166,12 @@ exports.eventsPut = async (req, res) => {
// Create controller for PATCH request to '/events/'
// Returns -
exports.eventsPatch = async (req, res) => {
export const eventsPatch = async (req, res) => {
// Code is the same as put, call that
this.eventsPut(req, res);
};
exports.eventsReorder = async (req, res) => {
export const eventsReorder = async (req, res) => {
// TODO: Validate event
if (!req.body) {
res.status(400).send(`No object found in request`);
@@ -209,7 +213,7 @@ exports.eventsReorder = async (req, res) => {
// Create controller for PATCH request to '/events/applydelay/:eventId'
// Returns -
exports.eventsApplyDelay = async (req, res) => {
export const eventsApplyDelay = async (req, res) => {
// no valid params
if (!req.params.eventId) {
res.status(400).send(`No id found in request`);
@@ -274,7 +278,7 @@ exports.eventsApplyDelay = async (req, res) => {
// Create controller for DELETE request to '/events/:eventId'
// Returns -
exports.eventsDelete = async (req, res) => {
export const eventsDelete = async (req, res) => {
// no valid params
if (!req.params.eventId) {
res.status(400).send(`No id found in request`);
@@ -298,7 +302,7 @@ exports.eventsDelete = async (req, res) => {
// Create controller for DELETE request to '/events/:eventId'
// Returns -
exports.eventsDeleteAll = async (req, res) => {
export const eventsDeleteAll = async (req, res) => {
try {
// set with nothing
db.set('events', []).write();
+1 -3
View File
@@ -1,4 +1,4 @@
const dbModel = {
export const dbModel = {
events: [],
event: {
title: '',
@@ -14,5 +14,3 @@ const dbModel = {
lock: false,
},
};
module.exports = { dbModel };
+3 -5
View File
@@ -1,4 +1,4 @@
const event = {
export const event = {
title: '',
subtitle: '',
presenter: '',
@@ -10,14 +10,12 @@ const event = {
revision: 0,
};
const delay = {
export const delay = {
duration: 0,
type: 'delay',
revision: 0,
};
const block = {
export const block = {
type: 'block',
};
module.exports = { event, delay, block };
-8
View File
@@ -1,8 +0,0 @@
{
"current": null,
"next": null,
"currentTimer": null,
"numEvents": 0,
"state": "pause",
"prevState": "pause"
}
+1 -1
View File
@@ -6,7 +6,7 @@
"body-parser": "~1.19.0",
"express": "~4.17.1",
"express-session": "~1.17.1",
"lowdb": "^1.0.0",
"lowdb": "2.1.0",
"nanoid": "^3.1.22",
"node-osc": "^6.0.1",
"passport": "~0.4.1",
+24 -15
View File
@@ -1,37 +1,46 @@
const express = require('express');
const router = express.Router();
import express from 'express';
export const router = express.Router();
// import event controller
const eventController = require('../controllers/eventController');
import {
getAll,
post,
titleGet,
titlePost,
publicInfoGet,
publicInfoPost,
backstageInfoGet,
backstageInfoPost,
urlGet,
urlPost,
} from '../controllers/eventController.js';
// create route between controller and '/settings' endpoint
router.get('/', eventController.getAll);
router.get('/', getAll);
// create route between controller and '/settings' endpoint
router.post('/', eventController.post);
router.post('/', post);
// create route between controller and '/event/title' endpoint
router.get('/title', eventController.titleGet);
router.get('/title', titleGet);
// create route between controller and '/event/title' endpoint
router.post('/title', eventController.titlePost);
router.post('/title', titlePost);
// create route between controller and '/event/info' endpoint
router.get('/publicInfo', eventController.publicInfoGet);
router.get('/publicInfo', publicInfoGet);
// create route between controller and '/event/info' endpoint
router.post('/publicInfo', eventController.publicInfoPost);
router.post('/publicInfo', publicInfoPost);
// create route between controller and '/event/info' endpoint
router.get('/backstageInfo', eventController.backstageInfoGet);
router.get('/backstageInfo', backstageInfoGet);
// create route between controller and '/event/info' endpoint
router.post('/backstageInfo', eventController.backstageInfoPost);
router.post('/backstageInfo', backstageInfoPost);
// create route between controller and '/event/url' endpoint
router.get('/url', eventController.urlGet);
router.get('/url', urlGet);
// create route between controller and '/event/url' endpoint
router.post('/url', eventController.urlPost);
module.exports = router;
router.post('/url', urlPost);
+22 -14
View File
@@ -1,34 +1,42 @@
const express = require('express');
const router = express.Router();
import express from 'express';
export const router = express.Router();
// import events controller
const eventsController = require('../controllers/eventsController');
import {
eventsGetAll,
eventsGetById,
eventsPost,
eventsPut,
eventsPatch,
eventsReorder,
eventsApplyDelay,
eventsDeleteAll,
eventsDelete,
} from '../controllers/eventsController.js';
// create route between controller and '/events/' endpoint
router.get('/', eventsController.eventsGetAll);
router.get('/', eventsGetAll);
// create route between controller and '/events/:eventId' endpoint
router.get('/:eventId', eventsController.eventsGetById);
router.get('/:eventId', eventsGetById);
// create route between controller and '/events/' endpoint
router.post('/', eventsController.eventsPost);
router.post('/', eventsPost);
// create route between controller and '/events/' endpoint
router.put('/', eventsController.eventsPut);
router.put('/', eventsPut);
// create route between controller and '/events/' endpoint
router.patch('/', eventsController.eventsPatch);
router.patch('/', eventsPatch);
// create route between controller and '/events/reorder' endpoint
router.patch('/reorder/', eventsController.eventsReorder);
router.patch('/reorder/', eventsReorder);
// create route between controller and '/events/applydelay/:eventId' endpoint
router.patch('/applydelay/:eventId', eventsController.eventsApplyDelay);
router.patch('/applydelay/:eventId', eventsApplyDelay);
// create route between controller and '/events/all' endpoint
router.delete('/all', eventsController.eventsDeleteAll);
router.delete('/all', eventsDeleteAll);
// create route between controller and '/events/:eventId' endpoint
router.delete('/:eventId', eventsController.eventsDelete);
module.exports = router;
router.delete('/:eventId', eventsDelete);
+2 -4
View File
@@ -1,5 +1,5 @@
const express = require('express');
const router = express.Router();
import express from 'express';
export const router = express.Router();
// import event controller
const playbackController = require('../controllers/playbackController');
@@ -30,5 +30,3 @@ router.get('/unload', playbackController.pbUnload);
// create route between controller and '/playback/reload' endpoint
router.get('/reload', playbackController.pbReload);
module.exports = router;
+9 -35
View File
@@ -253,11 +253,6 @@ fresh@0.5.2:
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
graceful-fs@^4.1.3:
version "4.2.6"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
http-errors@1.7.2:
version "1.7.2"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
@@ -302,26 +297,12 @@ ipaddr.js@1.9.1:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
is-promise@^2.1.0:
version "2.2.2"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
lodash@4:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
lowdb@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064"
integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==
lowdb@2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-2.1.0.tgz#c8063e228b5ab3e082ece90e0512537ecb6e1e2a"
integrity sha512-F4Go8/V37gAidTR3c5poyjprOpZSDNSLJVOmI0ny4D4q9rC37OkBhlzX0bqj7LZlT3UIj4FchmZrrSw7qY+eGQ==
dependencies:
graceful-fs "^4.1.3"
is-promise "^2.1.0"
lodash "4"
pify "^3.0.0"
steno "^0.4.1"
steno "^1.0.0"
media-typer@0.3.0:
version "0.3.0"
@@ -446,11 +427,6 @@ pause@0.0.1:
resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d"
integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=
pify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
proxy-addr@~2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
@@ -567,12 +543,10 @@ socket.io@^4.0.0:
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
steno@^0.4.1:
version "0.4.4"
resolved "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb"
integrity sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs=
dependencies:
graceful-fs "^4.1.3"
steno@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/steno/-/steno-1.0.0.tgz#475e32c6066ec9760229eaaf1550601764fbecba"
integrity sha512-C/KgCvEa1yWnpHmaPjAXrz1yWxh6hs+HvhqqPa71euaQmNi1wr4+WFo57VQxjKKuFl2KqS7gtlrN0oxj2noQLw==
toidentifier@1.0.0:
version "1.0.0"