mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 10:02:59 +08:00
#12: Return a method for app.ts
This commit is contained in:
parent
981fe3a939
commit
168977a52b
@ -7,54 +7,58 @@ import compression = require('compression');
|
||||
import sessionParser = require('./routes/session_parser');
|
||||
import utils = require('./services/utils');
|
||||
|
||||
require('./services/handlers');
|
||||
require('./becca/becca_loader');
|
||||
function buildApp() {
|
||||
require('./services/handlers');
|
||||
require('./becca/becca_loader');
|
||||
|
||||
const app = express();
|
||||
|
||||
// view engine setup
|
||||
app.set('views', path.join(__dirname, 'views'));
|
||||
app.set('view engine', 'ejs');
|
||||
|
||||
if (!utils.isElectron()) {
|
||||
app.use(compression()); // HTTP compression
|
||||
}
|
||||
|
||||
app.use(helmet.default({
|
||||
hidePoweredBy: false, // errors out in electron
|
||||
contentSecurityPolicy: false,
|
||||
crossOriginEmbedderPolicy: false
|
||||
}));
|
||||
|
||||
app.use(express.text({ limit: '500mb' }));
|
||||
app.use(express.json({ limit: '500mb' }));
|
||||
app.use(express.raw({ limit: '500mb' }));
|
||||
app.use(express.urlencoded({ extended: false }));
|
||||
app.use(cookieParser());
|
||||
app.use(express.static(path.join(__dirname, 'public/root')));
|
||||
app.use(`/manifest.webmanifest`, express.static(path.join(__dirname, 'public/manifest.webmanifest')));
|
||||
app.use(`/robots.txt`, express.static(path.join(__dirname, 'public/robots.txt')));
|
||||
app.use(sessionParser);
|
||||
app.use(favicon(`${__dirname}/../../common/images/app-icons/win/icon.ico`));
|
||||
|
||||
require('./routes/assets').register(app);
|
||||
require('./routes/routes').register(app);
|
||||
require('./routes/custom').register(app);
|
||||
require('./routes/error_handlers').register(app);
|
||||
|
||||
// triggers sync timer
|
||||
require('./services/sync');
|
||||
|
||||
// triggers backup timer
|
||||
require('./services/backup');
|
||||
|
||||
// trigger consistency checks timer
|
||||
require('./services/consistency_checks');
|
||||
|
||||
require('./services/scheduler');
|
||||
|
||||
if (utils.isElectron()) {
|
||||
require('@electron/remote/main').initialize();
|
||||
}
|
||||
|
||||
const app = express();
|
||||
|
||||
// view engine setup
|
||||
app.set('views', path.join(__dirname, 'views'));
|
||||
app.set('view engine', 'ejs');
|
||||
|
||||
if (!utils.isElectron()) {
|
||||
app.use(compression()); // HTTP compression
|
||||
return app;
|
||||
}
|
||||
|
||||
app.use(helmet.default({
|
||||
hidePoweredBy: false, // errors out in electron
|
||||
contentSecurityPolicy: false,
|
||||
crossOriginEmbedderPolicy: false
|
||||
}));
|
||||
|
||||
app.use(express.text({ limit: '500mb' }));
|
||||
app.use(express.json({ limit: '500mb' }));
|
||||
app.use(express.raw({ limit: '500mb' }));
|
||||
app.use(express.urlencoded({ extended: false }));
|
||||
app.use(cookieParser());
|
||||
app.use(express.static(path.join(__dirname, 'public/root')));
|
||||
app.use(`/manifest.webmanifest`, express.static(path.join(__dirname, 'public/manifest.webmanifest')));
|
||||
app.use(`/robots.txt`, express.static(path.join(__dirname, 'public/robots.txt')));
|
||||
app.use(sessionParser);
|
||||
app.use(favicon(`${__dirname}/../../common/images/app-icons/win/icon.ico`));
|
||||
|
||||
require('./routes/assets').register(app);
|
||||
require('./routes/routes').register(app);
|
||||
require('./routes/custom').register(app);
|
||||
require('./routes/error_handlers').register(app);
|
||||
|
||||
// triggers sync timer
|
||||
require('./services/sync');
|
||||
|
||||
// triggers backup timer
|
||||
require('./services/backup');
|
||||
|
||||
// trigger consistency checks timer
|
||||
require('./services/consistency_checks');
|
||||
|
||||
require('./services/scheduler');
|
||||
|
||||
if (utils.isElectron()) {
|
||||
require('@electron/remote/main').initialize();
|
||||
}
|
||||
|
||||
export = app;
|
||||
export = buildApp;
|
||||
|
@ -18,7 +18,7 @@ function exit() {
|
||||
process.on('SIGINT', exit);
|
||||
process.on('SIGTERM', exit);
|
||||
|
||||
import app = require('./app');
|
||||
import buildApp = require('./app');
|
||||
import sessionParser = require('./routes/session_parser');
|
||||
import fs = require('fs');
|
||||
import http = require('http');
|
||||
@ -27,10 +27,10 @@ import config = require('./services/config');
|
||||
import log = require('./services/log');
|
||||
import appInfo = require('./services/app_info');
|
||||
import ws = require('./services/ws');
|
||||
import utils = require('./services/utils');
|
||||
import port = require('./services/port');
|
||||
import host = require('./services/host');
|
||||
import semver = require('semver');
|
||||
import type { Express } from "express";
|
||||
|
||||
function startTrilium() {
|
||||
if (!semver.satisfies(process.version, ">=10.5.0")) {
|
||||
@ -40,19 +40,21 @@ function startTrilium() {
|
||||
|
||||
log.info(JSON.stringify(appInfo, null, 2));
|
||||
|
||||
const app = buildApp();
|
||||
|
||||
const cpuInfos = require('os').cpus();
|
||||
if (cpuInfos && cpuInfos[0] !== undefined) { // https://github.com/zadam/trilium/pull/3957
|
||||
log.info(`CPU model: ${cpuInfos[0].model}, logical cores: ${cpuInfos.length} freq: ${cpuInfos[0].speed} Mhz`); // for perf. issues it's good to know the rough configuration
|
||||
}
|
||||
|
||||
const httpServer = startHttpServer();
|
||||
const httpServer = startHttpServer(app);
|
||||
|
||||
ws.init(httpServer, sessionParser as any); // TODO: Not sure why session parser is incompatible.
|
||||
|
||||
return app;
|
||||
}
|
||||
|
||||
function startHttpServer() {
|
||||
function startHttpServer(app: Express) {
|
||||
app.set('port', port);
|
||||
app.set('host', host);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user