mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-04-08 23:20:58 +00:00
Use import syntax for logger and config
Signed-off-by: David Mehren <dmehren1@gmail.com>
This commit is contained in:
parent
dd11483f44
commit
9f284b752b
14 changed files with 98 additions and 113 deletions
75
lib/app.ts
75
lib/app.ts
|
@ -1,46 +1,39 @@
|
|||
'use strict'
|
||||
import { Revision, sequelize } from './models'
|
||||
import { config } from './config'
|
||||
import { logger } from './logger'
|
||||
|
||||
import { Revision } from "./models"
|
||||
import { sequelize } from './models'
|
||||
const express = require('express')
|
||||
|
||||
// app
|
||||
// external modules
|
||||
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 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');
|
||||
|
||||
// core
|
||||
const config = require('./config');
|
||||
const logger = require('./logger');
|
||||
const errors = require('./errors');
|
||||
const csp = require('./csp');
|
||||
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')
|
||||
|
||||
// server setup
|
||||
const app = express();
|
||||
let server: any = null;
|
||||
const app = express()
|
||||
let server: any = null
|
||||
if (config.useSSL) {
|
||||
const ca = (function () {
|
||||
let i, len, results;
|
||||
let i, len, results
|
||||
results = []
|
||||
for (i = 0, len = config.sslCAPath.length; i < len; i++) {
|
||||
results.push(fs.readFileSync(config.sslCAPath[i], 'utf8'))
|
||||
}
|
||||
return results
|
||||
})();
|
||||
})()
|
||||
const options = {
|
||||
key: fs.readFileSync(config.sslKeyPath, 'utf8'),
|
||||
cert: fs.readFileSync(config.sslCertPath, 'utf8'),
|
||||
|
@ -48,7 +41,7 @@ if (config.useSSL) {
|
|||
dhparam: fs.readFileSync(config.dhParamPath, 'utf8'),
|
||||
requestCert: false,
|
||||
rejectUnauthorized: false
|
||||
};
|
||||
}
|
||||
server = require('https').createServer(options, app)
|
||||
} else {
|
||||
server = require('http').createServer(app)
|
||||
|
@ -64,14 +57,14 @@ app.use(morgan('combined', {
|
|||
}))
|
||||
|
||||
// socket io
|
||||
const io = require('socket.io')(server);
|
||||
const io = require('socket.io')(server)
|
||||
io.engine.ws = new (require('ws').Server)({
|
||||
noServer: true,
|
||||
perMessageDeflate: false
|
||||
})
|
||||
|
||||
// others
|
||||
const realtime = require('./realtime');
|
||||
const realtime = require('./realtime')
|
||||
|
||||
// assign socket io to realtime
|
||||
realtime.io = io
|
||||
|
@ -82,7 +75,7 @@ app.use(methodOverride('_method'))
|
|||
// session store
|
||||
const sessionStore = new SequelizeStore({
|
||||
db: sequelize
|
||||
});
|
||||
})
|
||||
|
||||
// compression
|
||||
app.use(compression())
|
||||
|
@ -152,7 +145,7 @@ app.use(session({
|
|||
}))
|
||||
|
||||
// session resumption
|
||||
const tlsSessionStore = {};
|
||||
const tlsSessionStore = {}
|
||||
server.on('newSession', function (id, data, cb) {
|
||||
tlsSessionStore[id.toString('hex')] = data
|
||||
cb()
|
||||
|
@ -243,12 +236,12 @@ io.sockets.on('connection', realtime.connection)
|
|||
|
||||
// listen
|
||||
function startListen () {
|
||||
let address;
|
||||
let address
|
||||
const listenCallback = function () {
|
||||
const schema = config.useSSL ? 'HTTPS' : 'HTTP';
|
||||
const schema = config.useSSL ? 'HTTPS' : 'HTTP'
|
||||
logger.info('%s Server listening at %s', schema, address)
|
||||
realtime.maintenance = false
|
||||
};
|
||||
}
|
||||
|
||||
// use unix domain socket if 'path' is specified
|
||||
if (config.path) {
|
||||
|
@ -287,7 +280,7 @@ function handleTermSignals () {
|
|||
realtime.maintenance = true
|
||||
// disconnect all socket.io clients
|
||||
Object.keys(io.sockets.sockets).forEach(function (key) {
|
||||
const socket = io.sockets.sockets[key];
|
||||
const socket = io.sockets.sockets[key]
|
||||
// notify client server going into maintenance status
|
||||
socket.emit('maintenance')
|
||||
setTimeout(function () {
|
||||
|
@ -307,7 +300,7 @@ function handleTermSignals () {
|
|||
}
|
||||
})
|
||||
}
|
||||
}, 100);
|
||||
}, 100)
|
||||
}
|
||||
process.on('SIGINT', handleTermSignals)
|
||||
process.on('SIGTERM', handleTermSignals)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
var config = require('./config')
|
||||
import { config } from './config'
|
||||
|
||||
var uuid = require('uuid')
|
||||
|
||||
var CspStrategy = {}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
'use strict'
|
||||
import { createHash } from 'crypto'
|
||||
import randomColor from 'randomcolor'
|
||||
import config from './config'
|
||||
import { config } from './config'
|
||||
|
||||
// core
|
||||
export function generateAvatar (name: string): string {
|
||||
|
|
|
@ -1,22 +1,20 @@
|
|||
import {Sequelize} from 'sequelize-typescript';
|
||||
import {Author} from './author';
|
||||
import {Note} from './note';
|
||||
import {Revision} from './revision';
|
||||
import {Temp} from './temp';
|
||||
import {User} from './user';
|
||||
import { Sequelize } from 'sequelize-typescript'
|
||||
import { Author } from './author'
|
||||
import { Note } from './note'
|
||||
import { Revision } from './revision'
|
||||
import { Temp } from './temp'
|
||||
import { User } from './user'
|
||||
|
||||
const {cloneDeep} = require('lodash')
|
||||
import { logger } from '../logger'
|
||||
import { config } from '../config'
|
||||
|
||||
// core
|
||||
var config = require('../config')
|
||||
var logger = require('../logger')
|
||||
|
||||
var dbconfig = cloneDeep(config.db)
|
||||
const { cloneDeep } = require('lodash')
|
||||
const dbconfig = cloneDeep(config.db)
|
||||
dbconfig.logging = config.debug ? (data) => {
|
||||
logger.info(data)
|
||||
} : false
|
||||
|
||||
export let sequelize: any;
|
||||
export let sequelize: any
|
||||
|
||||
// Heroku specific
|
||||
if (config.dbURL) {
|
||||
|
@ -25,8 +23,6 @@ if (config.dbURL) {
|
|||
sequelize = new Sequelize(dbconfig.database, dbconfig.username, dbconfig.password, dbconfig)
|
||||
}
|
||||
|
||||
sequelize.addModels([Author, Note, Revision, Temp, User]);
|
||||
|
||||
|
||||
export {Author, Note, Revision, Temp, User};
|
||||
sequelize.addModels([Author, Note, Revision, Temp, User])
|
||||
|
||||
export { Author, Note, Revision, Temp, User }
|
||||
|
|
|
@ -30,8 +30,8 @@ import moment from 'moment'
|
|||
// eslint-disable-next-line @typescript-eslint/camelcase
|
||||
import { diff_match_patch, patch_obj } from 'diff-match-patch'
|
||||
import S from 'string'
|
||||
import config from '../config'
|
||||
import logger from '../logger'
|
||||
import { config } from '../config'
|
||||
import { logger } from '../logger'
|
||||
import ot from '../ot'
|
||||
|
||||
const md = markdownIt()
|
||||
|
|
|
@ -4,13 +4,13 @@ import { Note } from './note'
|
|||
import { Utils } from '../utils'
|
||||
|
||||
import Sequelize from 'sequelize'
|
||||
// core
|
||||
import { logger } from '../logger'
|
||||
import async = require('async');
|
||||
import moment = require('moment');
|
||||
import childProcess = require('child_process');
|
||||
import shortId = require('shortid');
|
||||
import path = require('path');
|
||||
// core
|
||||
import logger = require('../logger');
|
||||
|
||||
const Op = Sequelize.Op
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import { Note } from './note'
|
|||
import { Table, BeforeCreate, BeforeUpdate, HasMany, Unique, IsEmail, Column, DataType, PrimaryKey, Model, Default } from 'sequelize-typescript'
|
||||
import scrypt from 'scrypt-kdf'
|
||||
import { generateAvatarURL } from '../letter-avatars'
|
||||
import logger from '../logger'
|
||||
import { logger } from '../logger'
|
||||
import { UUIDV4 } from 'sequelize'
|
||||
|
||||
// core
|
||||
|
|
|
@ -2,8 +2,8 @@ import { Author, Note, Revision, User } from './models'
|
|||
|
||||
import ot from './ot'
|
||||
import history from './history'
|
||||
import logger from './logger'
|
||||
import config from './config'
|
||||
import { logger } from './logger'
|
||||
import { config } from './config'
|
||||
import moment from 'moment'
|
||||
import randomcolor from 'randomcolor'
|
||||
import async from 'async'
|
||||
|
@ -26,10 +26,8 @@ const realtime: any = {
|
|||
}
|
||||
/* eslint-enable @typescript-eslint/no-use-before-define */
|
||||
|
||||
|
||||
const disconnectSocketQueue: any = []
|
||||
|
||||
|
||||
function onAuthorizeSuccess (data, accept) {
|
||||
accept()
|
||||
}
|
||||
|
@ -384,7 +382,6 @@ function failConnection (code, err, socket) {
|
|||
return socket.disconnect(true)
|
||||
}
|
||||
|
||||
|
||||
function interruptConnection (socket, noteId, socketId) {
|
||||
if (notes[noteId]) delete notes[noteId]
|
||||
if (users[socketId]) delete users[socketId]
|
||||
|
@ -537,7 +534,6 @@ function operationCallback (socket, operation) {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
function startConnection (socket) {
|
||||
if (isConnectionBusy) return
|
||||
isConnectionBusy = true
|
||||
|
@ -715,7 +711,6 @@ setInterval(function () {
|
|||
})
|
||||
}, 60000)
|
||||
|
||||
|
||||
function updateUserData (socket, user) {
|
||||
// retrieve user data from passport
|
||||
if (socket.request.user && socket.request.user.logged_in) {
|
||||
|
@ -731,7 +726,6 @@ function updateUserData (socket, user) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
function connection (socket) {
|
||||
if (realtime.maintenance) return
|
||||
parseNoteIdFromSocket(socket, function (err, noteId) {
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
'use strict'
|
||||
// response
|
||||
// external modules
|
||||
|
||||
// core
|
||||
import { config } from './config'
|
||||
|
||||
var fs = require('fs')
|
||||
var path = require('path')
|
||||
var request = require('request')
|
||||
// core
|
||||
var config = require('./config')
|
||||
var logger = require('./logger')
|
||||
var models = require('./models')
|
||||
const noteUtil = require('./web/note/util')
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import { Response } from 'express'
|
||||
|
||||
import { Note, Revision } from '../../models'
|
||||
import logger from '../../logger'
|
||||
import config from '../../config'
|
||||
import { logger } from '../../logger'
|
||||
import { config } from '../../config'
|
||||
import errors from '../../errors'
|
||||
import shortId from 'shortid'
|
||||
import moment from 'moment'
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import { NextFunction, Response } from 'express'
|
||||
import { NextFunction, Request, Response } from 'express'
|
||||
import { NoteUtils } from './util'
|
||||
import * as ActionController from './actions'
|
||||
import errors from '../../errors'
|
||||
import config from '../../config'
|
||||
import logger from '../../logger'
|
||||
import { config } from '../../config'
|
||||
import { logger } from '../../logger'
|
||||
import { User, Note } from '../../models'
|
||||
|
||||
export module NoteController {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import { NextFunction, Response } from "express";
|
||||
import { NoteUtils } from "./util";
|
||||
import errors from '../../errors';
|
||||
import logger from '../../logger';
|
||||
import config from '../../config';
|
||||
import { logger } from '../../logger'
|
||||
import { config } from '../../config'
|
||||
import { User } from "../../models/user";
|
||||
import { Note } from "../../models/note";
|
||||
|
||||
|
|
|
@ -1,20 +1,19 @@
|
|||
import { Includeable } from "sequelize";
|
||||
import { Response } from "express";
|
||||
import { Includeable } from 'sequelize'
|
||||
import { Response } from 'express'
|
||||
|
||||
import path from "path";
|
||||
import fs from "fs";
|
||||
import errors from "../../errors";
|
||||
import config from "../../config";
|
||||
import logger from "../../logger";
|
||||
import { Note } from "../../models/note";
|
||||
import { User } from "../../models/user";
|
||||
import path from 'path'
|
||||
import fs from 'fs'
|
||||
import errors from '../../errors'
|
||||
import { config } from '../../config'
|
||||
import { logger } from '../../logger'
|
||||
import { Note , User } from '../../models'
|
||||
|
||||
export module NoteUtils {
|
||||
export function findNoteOrCreate(req, res, callback: (note: any) => void, include?: Includeable[]) {
|
||||
const id = req.params.noteId || req.params.shortid;
|
||||
const id = req.params.noteId || req.params.shortid
|
||||
Note.parseNoteId(id, function (err, _id) {
|
||||
if (err) {
|
||||
logger.error(err);
|
||||
logger.error(err)
|
||||
return errors.errorInternalError(res)
|
||||
}
|
||||
Note.findOne({
|
||||
|
@ -31,13 +30,13 @@ export module NoteUtils {
|
|||
return callback(note)
|
||||
}
|
||||
}).catch(function (err) {
|
||||
logger.error(err);
|
||||
logger.error(err)
|
||||
return errors.errorInternalError(res)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export function checkViewPermission(req: any, note: any) {
|
||||
export function checkViewPermission (req: any, note: any) {
|
||||
if (note.permission === 'private') {
|
||||
return req.isAuthenticated() && note.ownerId === req.user.id
|
||||
} else if (note.permission === 'limited' || note.permission === 'protected') {
|
||||
|
@ -47,9 +46,9 @@ export module NoteUtils {
|
|||
}
|
||||
}
|
||||
|
||||
export function newNote(req: any, res: Response, body: string | null) {
|
||||
let owner = null;
|
||||
const noteId = req.params.noteId ? req.params.noteId : null;
|
||||
export function newNote (req: any, res: Response, body: string | null) {
|
||||
let owner = null
|
||||
const noteId = req.params.noteId ? req.params.noteId : null
|
||||
if (req.isAuthenticated()) {
|
||||
owner = req.user.id
|
||||
} else if (!config.allowAnonymous) {
|
||||
|
@ -67,21 +66,21 @@ export module NoteUtils {
|
|||
}).then(function (note) {
|
||||
return res.redirect(config.serverURL + '/' + (note.alias ? note.alias : Note.encodeNoteId(note.id)))
|
||||
}).catch(function (err) {
|
||||
logger.error(err);
|
||||
logger.error(err)
|
||||
return errors.errorInternalError(res)
|
||||
})
|
||||
}
|
||||
|
||||
export function getPublishData(req: any, res: Response, note: any, callback: (data: any) => void) {
|
||||
const body = note.content;
|
||||
const extracted = Note.extractMeta(body);
|
||||
const markdown = extracted.markdown;
|
||||
const meta = Note.parseMeta(extracted.meta);
|
||||
const createtime = note.createdAt;
|
||||
const updatetime = note.lastchangeAt;
|
||||
let title = Note.decodeTitle(note.title);
|
||||
title = Note.generateWebTitle(meta.title || title);
|
||||
const ogdata = Note.parseOpengraph(meta, title);
|
||||
export function getPublishData (req: any, res: Response, note: any, callback: (data: any) => void) {
|
||||
const body = note.content
|
||||
const extracted = Note.extractMeta(body)
|
||||
const markdown = extracted.markdown
|
||||
const meta = Note.parseMeta(extracted.meta)
|
||||
const createtime = note.createdAt
|
||||
const updatetime = note.lastchangeAt
|
||||
let title = Note.decodeTitle(note.title)
|
||||
title = Note.generateWebTitle(meta.title || title)
|
||||
const ogdata = Note.parseOpengraph(meta, title)
|
||||
const data = {
|
||||
title: title,
|
||||
description: meta.description || (markdown ? Note.generateDescription(markdown) : null),
|
||||
|
@ -101,15 +100,14 @@ export module NoteUtils {
|
|||
cspNonce: res.locals.nonce,
|
||||
dnt: req.headers.dnt,
|
||||
opengraph: ogdata
|
||||
};
|
||||
}
|
||||
callback(data)
|
||||
}
|
||||
|
||||
function isRevealTheme(theme: string) {
|
||||
function isRevealTheme (theme: string) {
|
||||
if (fs.existsSync(path.join(__dirname, '..', '..', '..', 'public', 'build', 'reveal.js', 'css', 'theme', theme + '.css'))) {
|
||||
return theme
|
||||
}
|
||||
return undefined
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
'use strict'
|
||||
|
||||
import { config } from '../config'
|
||||
|
||||
const Router = require('express').Router
|
||||
|
||||
const errors = require('../errors')
|
||||
const realtime = require('../realtime')
|
||||
const config = require('../config')
|
||||
const models = require('../models')
|
||||
const logger = require('../logger')
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue