mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-04-19 20:35:52 +00:00
worked on app.ts
- fixed imports - used lib/web/index.ts instead of importing all over the place Signed-off-by: Philip Molares <philip.molares@udo.edu> Signed-off-by: David Mehren <dmehren1@gmail.com>
This commit is contained in:
parent
823bd5e432
commit
9afc2e19a4
1 changed files with 37 additions and 35 deletions
72
lib/app.ts
72
lib/app.ts
|
@ -1,34 +1,38 @@
|
|||
import express from 'express'
|
||||
import ejs from 'ejs'
|
||||
import passport from 'passport'
|
||||
import methodOverride from 'method-override'
|
||||
import cookieParser from 'cookie-parser'
|
||||
import compression from 'compression'
|
||||
import session from 'express-session'
|
||||
// eslint-disable-next-line @typescript-eslint/camelcase
|
||||
import connect_session_sequelize from 'connect-session-sequelize'
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import morgan from 'morgan'
|
||||
import passportSocketIo from 'passport.socketio'
|
||||
import helmet from 'helmet'
|
||||
import i18n from 'i18n'
|
||||
import flash from 'connect-flash'
|
||||
|
||||
import { Revision, sequelize } from './models'
|
||||
import { config } from './config'
|
||||
import { logger } from './logger'
|
||||
import { errors } from './errors'
|
||||
import { addNonceToLocals, computeDirectives } from './csp'
|
||||
import { AuthRouter, BaseRouter, HistoryRouter, ImageRouter, NoteRouter, StatusRouter } from './web/'
|
||||
|
||||
const express = require('express')
|
||||
|
||||
const ejs = require('ejs')
|
||||
const passport = require('passport')
|
||||
const methodOverride = require('method-override')
|
||||
const cookieParser = require('cookie-parser')
|
||||
const compression = require('compression')
|
||||
const session = require('express-session')
|
||||
const SequelizeStore = require('connect-session-sequelize')(session.Store)
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
const morgan = require('morgan')
|
||||
const passportSocketIo = require('passport.socketio')
|
||||
const helmet = require('helmet')
|
||||
const i18n = require('i18n')
|
||||
const flash = require('connect-flash')
|
||||
const errors = require('./errors')
|
||||
const csp = require('./csp')
|
||||
// others
|
||||
import { realtime } from './realtime'
|
||||
|
||||
const SequelizeStore = connect_session_sequelize(session.Store)
|
||||
// server setup
|
||||
const app = express()
|
||||
let server: any = null
|
||||
if (config.useSSL) {
|
||||
const ca = (function () {
|
||||
let i, len, results
|
||||
results = []
|
||||
const ca = (function (): string[] {
|
||||
let i, len
|
||||
const results: string[] = []
|
||||
for (i = 0, len = config.sslCAPath.length; i < len; i++) {
|
||||
results.push(fs.readFileSync(config.sslCAPath[i], 'utf8'))
|
||||
}
|
||||
|
@ -62,10 +66,6 @@ io.engine.ws = new (require('ws').Server)({
|
|||
noServer: true,
|
||||
perMessageDeflate: false
|
||||
})
|
||||
|
||||
// others
|
||||
const realtime = require('./realtime')
|
||||
|
||||
// assign socket io to realtime
|
||||
realtime.io = io
|
||||
|
||||
|
@ -100,13 +100,13 @@ app.use(
|
|||
)
|
||||
|
||||
// Generate a random nonce per request, for CSP with inline scripts
|
||||
app.use(csp.addNonceToLocals)
|
||||
app.use(addNonceToLocals)
|
||||
|
||||
// use Content-Security-Policy to limit XSS, dangerous plugins, etc.
|
||||
// https://helmetjs.github.io/docs/csp/
|
||||
if (config.csp.enable) {
|
||||
app.use(helmet.contentSecurityPolicy({
|
||||
directives: csp.computeDirectives()
|
||||
directives: computeDirectives()
|
||||
}))
|
||||
} else {
|
||||
logger.info('Content-Security-Policy is disabled. This may be a security risk.')
|
||||
|
@ -204,13 +204,13 @@ app.locals.enableDropBoxSave = config.isDropboxEnable
|
|||
app.locals.enableGitHubGist = config.isGitHubEnable
|
||||
app.locals.enableGitlabSnippets = config.isGitlabSnippetsEnable
|
||||
|
||||
app.use(require('./web/baseRouter'))
|
||||
app.use(require('./web/statusRouter'))
|
||||
app.use(require('./web/auth'))
|
||||
app.use(require('./web/historyRouter'))
|
||||
app.use(BaseRouter)
|
||||
app.use(StatusRouter)
|
||||
app.use(AuthRouter)
|
||||
app.use(HistoryRouter)
|
||||
app.use(require('./web/userRouter'))
|
||||
app.use(require('./web/imageRouter'))
|
||||
app.use(require('./web/note/router'))
|
||||
app.use(ImageRouter)
|
||||
app.use(NoteRouter)
|
||||
|
||||
// response not found if no any route matxches
|
||||
app.get('*', function (req, res) {
|
||||
|
@ -288,7 +288,9 @@ function handleTermSignals () {
|
|||
}, 0)
|
||||
})
|
||||
if (config.path) {
|
||||
fs.unlink(config.path)
|
||||
// ToDo: add a proper error handler
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||
fs.unlink(config.path, (_) => {})
|
||||
}
|
||||
const checkCleanTimer = setInterval(function () {
|
||||
if (realtime.isReady()) {
|
||||
|
|
Loading…
Add table
Reference in a new issue