@ -18,19 +18,19 @@ function exit() {
process . on ( 'SIGINT' , exit ) ;
process . on ( 'SIGTERM' , exit ) ;
cons t app = require ( './app' ) ;
cons t sessionParser = require ( './routes/session_parser' ) ;
cons t fs = require ( 'fs' ) ;
cons t http = require ( 'http' ) ;
cons t https = require ( 'https' ) ;
cons t config = require ( './services/config' ) ;
cons t log = require ( './services/log' ) ;
cons t appInfo = require ( './services/app_info' ) ;
cons t ws = require ( './services/ws' ) ;
cons t utils = require ( './services/utils' ) ;
cons t port = require ( './services/port' ) ;
cons t host = require ( './services/host' ) ;
cons t semver = require ( 'semver' ) ;
impor t app = require ( './app' ) ;
impor t sessionParser = require ( './routes/session_parser' ) ;
impor t fs = require ( 'fs' ) ;
impor t http = require ( 'http' ) ;
impor t https = require ( 'https' ) ;
impor t config = require ( './services/config' ) ;
impor t log = require ( './services/log' ) ;
impor t appInfo = require ( './services/app_info' ) ;
impor t ws = require ( './services/ws' ) ;
impor t utils = require ( './services/utils' ) ;
impor t port = require ( './services/port' ) ;
impor t host = require ( './services/host' ) ;
impor t semver = require ( 'semver' ) ;
if ( ! semver . satisfies ( process . version , ">=10.5.0" ) ) {
console . error ( "Trilium only supports node.js 10.5 and later" ) ;
@ -66,7 +66,7 @@ function startTrilium() {
const httpServer = startHttpServer ( ) ;
ws . init ( httpServer , sessionParser ) ;
ws . init ( httpServer , sessionParser as any ) ; // TODO: Not sure why session parser is incompatible.
if ( utils . isElectron ( ) ) {
const electronRouting = require ( './routes/electron' ) ;
@ -126,26 +126,24 @@ function startHttpServer() {
}
httpServer . on ( 'error' , error = > {
if ( ! listenOnTcp || error . syscall !== 'listen' ) {
if ( ! listenOnTcp || ( "syscall" in error && error . syscall !== 'listen' ) ) {
throw error ;
}
// handle specific listen errors with friendly messages
if ( "code" in error ) {
switch ( error . code ) {
case 'EACCES' :
console . error ( ` Port ${ port } requires elevated privileges. It's recommended to use port above 1024. ` ) ;
process . exit ( 1 ) ;
break ;
case 'EADDRINUSE' :
console . error ( ` Port ${ port } is already in use. Most likely, another Trilium process is already running. You might try to find it, kill it, and try again. ` ) ;
process . exit ( 1 ) ;
break ;
}
}
default :
throw error ;
}
}
)
httpServer . on ( 'listening' , ( ) = > {