Use import syntax for logger and config

Signed-off-by: David Mehren <dmehren1@gmail.com>
This commit is contained in:
David Mehren 2020-04-12 13:11:06 +02:00
parent dd11483f44
commit 9f284b752b
No known key found for this signature in database
GPG key ID: 6017AF117F9756CB
14 changed files with 98 additions and 113 deletions

View file

@ -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)

View file

@ -1,4 +1,5 @@
var config = require('./config')
import { config } from './config'
var uuid = require('uuid')
var CspStrategy = {}

View file

@ -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 {

View file

@ -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 }

View file

@ -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()

View file

@ -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

View file

@ -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

View file

@ -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) {

View file

@ -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')

View file

@ -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'

View file

@ -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 {

View file

@ -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";

View file

@ -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
}
}

View file

@ -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')