app.ts: Use let/const instead of var, fix sequelize import

Signed-off-by: David Mehren <dmehren1@gmail.com>
This commit is contained in:
David Mehren 2020-04-11 11:24:53 +02:00
parent 8c662a1f41
commit 522d92a9a1
No known key found for this signature in database
GPG key ID: 6017AF117F9756CB

View file

@ -1,54 +1,54 @@
'use strict' 'use strict'
import { Revision } from "./models/revision" import { Revision } from "./models/revision"
import { sequelize } from './models'
// app // app
// external modules // external modules
var express = require('express') const express = require('express');
var ejs = require('ejs') const ejs = require('ejs');
var passport = require('passport') const passport = require('passport');
var methodOverride = require('method-override') const methodOverride = require('method-override');
var cookieParser = require('cookie-parser') const cookieParser = require('cookie-parser');
var compression = require('compression') const compression = require('compression');
var session = require('express-session') const session = require('express-session');
var SequelizeStore = require('connect-session-sequelize')(session.Store) const SequelizeStore = require('connect-session-sequelize')(session.Store);
var fs = require('fs') const fs = require('fs');
var path = require('path') const path = require('path');
var morgan = require('morgan') const morgan = require('morgan');
var passportSocketIo = require('passport.socketio') const passportSocketIo = require('passport.socketio');
var helmet = require('helmet') const helmet = require('helmet');
var i18n = require('i18n') const i18n = require('i18n');
var flash = require('connect-flash') const flash = require('connect-flash');
// core // core
var config = require('./config') const config = require('./config');
var logger = require('./logger') const logger = require('./logger');
var errors = require('./errors') const errors = require('./errors');
var models = require('./models') const csp = require('./csp');
var csp = require('./csp')
// server setup // server setup
var app = express() const app = express();
var server: any = null let server: any = null;
if (config.useSSL) { if (config.useSSL) {
var ca = (function () { const ca = (function () {
var i, len, results let i, len, results;
results = [] results = []
for (i = 0, len = config.sslCAPath.length; i < len; i++) { for (i = 0, len = config.sslCAPath.length; i < len; i++) {
results.push(fs.readFileSync(config.sslCAPath[i], 'utf8')) results.push(fs.readFileSync(config.sslCAPath[i], 'utf8'))
} }
return results return results
})() })();
var options = { const options = {
key: fs.readFileSync(config.sslKeyPath, 'utf8'), key: fs.readFileSync(config.sslKeyPath, 'utf8'),
cert: fs.readFileSync(config.sslCertPath, 'utf8'), cert: fs.readFileSync(config.sslCertPath, 'utf8'),
ca: ca, ca: ca,
dhparam: fs.readFileSync(config.dhParamPath, 'utf8'), dhparam: fs.readFileSync(config.dhParamPath, 'utf8'),
requestCert: false, requestCert: false,
rejectUnauthorized: false rejectUnauthorized: false
} };
server = require('https').createServer(options, app) server = require('https').createServer(options, app)
} else { } else {
server = require('http').createServer(app) server = require('http').createServer(app)
@ -60,14 +60,14 @@ app.use(morgan('combined', {
})) }))
// socket io // socket io
var io = require('socket.io')(server) const io = require('socket.io')(server);
io.engine.ws = new (require('ws').Server)({ io.engine.ws = new (require('ws').Server)({
noServer: true, noServer: true,
perMessageDeflate: false perMessageDeflate: false
}) })
// others // others
var realtime = require('./realtime.js') const realtime = require('./realtime');
// assign socket io to realtime // assign socket io to realtime
realtime.io = io realtime.io = io
@ -76,9 +76,9 @@ realtime.io = io
app.use(methodOverride('_method')) app.use(methodOverride('_method'))
// session store // session store
var sessionStore = new SequelizeStore({ const sessionStore = new SequelizeStore({
db: models.sequelize db: sequelize
}) });
// compression // compression
app.use(compression()) app.use(compression())
@ -148,7 +148,7 @@ app.use(session({
})) }))
// session resumption // session resumption
var tlsSessionStore = {} const tlsSessionStore = {};
server.on('newSession', function (id, data, cb) { server.on('newSession', function (id, data, cb) {
tlsSessionStore[id.toString('hex')] = data tlsSessionStore[id.toString('hex')] = data
cb() cb()
@ -239,12 +239,12 @@ io.sockets.on('connection', realtime.connection)
// listen // listen
function startListen () { function startListen () {
var address let address;
var listenCallback = function () { const listenCallback = function () {
var schema = config.useSSL ? 'HTTPS' : 'HTTP' const schema = config.useSSL ? 'HTTPS' : 'HTTP';
logger.info('%s Server listening at %s', schema, address) logger.info('%s Server listening at %s', schema, address)
realtime.maintenance = false realtime.maintenance = false
} };
// use unix domain socket if 'path' is specified // use unix domain socket if 'path' is specified
if (config.path) { if (config.path) {
@ -257,7 +257,7 @@ function startListen () {
} }
// sync db then start listen // sync db then start listen
models.sequelize.authenticate().then(function () { sequelize.authenticate().then(function () {
// check if realtime is ready // check if realtime is ready
if (realtime.isReady()) { if (realtime.isReady()) {
Revision.checkAllNotesRevision(function (err, notes) { Revision.checkAllNotesRevision(function (err, notes) {
@ -283,7 +283,7 @@ function handleTermSignals () {
realtime.maintenance = true realtime.maintenance = true
// disconnect all socket.io clients // disconnect all socket.io clients
Object.keys(io.sockets.sockets).forEach(function (key) { Object.keys(io.sockets.sockets).forEach(function (key) {
var socket = io.sockets.sockets[key] const socket = io.sockets.sockets[key];
// notify client server going into maintenance status // notify client server going into maintenance status
socket.emit('maintenance') socket.emit('maintenance')
setTimeout(function () { setTimeout(function () {
@ -293,9 +293,9 @@ function handleTermSignals () {
if (config.path) { if (config.path) {
fs.unlink(config.path) fs.unlink(config.path)
} }
var checkCleanTimer = setInterval(function () { const checkCleanTimer = setInterval(function () {
if (realtime.isReady()) { if (realtime.isReady()) {
models.Revision.checkAllNotesRevision(function (err, notes) { Revision.checkAllNotesRevision(function (err, notes) {
if (err) return logger.error(err) if (err) return logger.error(err)
if (!notes || notes.length <= 0) { if (!notes || notes.length <= 0) {
clearInterval(checkCleanTimer) clearInterval(checkCleanTimer)
@ -303,7 +303,7 @@ function handleTermSignals () {
} }
}) })
} }
}, 100) }, 100);
} }
process.on('SIGINT', handleTermSignals) process.on('SIGINT', handleTermSignals)
process.on('SIGTERM', handleTermSignals) process.on('SIGTERM', handleTermSignals)