mirror of
https://github.com/zadam/trilium.git
synced 2025-01-31 11:32:30 +08:00
open window before loading becca
This commit is contained in:
parent
723db97094
commit
2fbcd9aaf7
8 changed files with 32 additions and 20 deletions
10
electron.js
10
electron.js
|
@ -5,6 +5,7 @@ const sqlInit = require('./src/services/sql_init');
|
|||
const appIconService = require('./src/services/app_icon');
|
||||
const windowService = require('./src/services/window');
|
||||
const tray = require('./src/services/tray');
|
||||
const beccaLoader = require("./src/becca/becca_loader");
|
||||
|
||||
// Adds debug features like hotkeys for triggering dev tools and reload
|
||||
require('electron-debug')();
|
||||
|
@ -28,14 +29,17 @@ app.on('ready', async () => {
|
|||
// if db is not initialized -> setup process
|
||||
// if db is initialized, then we need to wait until the migration process is finished
|
||||
if (sqlInit.isDbInitialized()) {
|
||||
await sqlInit.dbReady;
|
||||
// first let electron open the window, it will probably keep initializing for some time in async
|
||||
windowService.createMainWindow(app);
|
||||
|
||||
await windowService.createMainWindow(app);
|
||||
// then becca load will block the backend process for a while
|
||||
await sqlInit.dbReady;
|
||||
beccaLoader.loadInitially();
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
app.on('activate', async () => {
|
||||
if (BrowserWindow.getAllWindows().length === 0) {
|
||||
await windowService.createMainWindow(app);
|
||||
windowService.createMainWindow(app);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
},
|
||||
"scripts": {
|
||||
"start-server": "cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev node ./src/www",
|
||||
"start-electron": "cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev electron --inspect=5858 .",
|
||||
"start-electron": "cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev electron --trace-warnings --inspect=5858 .",
|
||||
"switch-server": "rm -r ./node_modules/better-sqlite3 && npm install",
|
||||
"switch-electron": "rm -r ./node_modules/better-sqlite3 && npm install && ./node_modules/.bin/electron-rebuild",
|
||||
"build-backend-docs": "rm -r ./docs/backend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/backend_api src/becca/entities/*.js src/services/backend_script_api.js src/services/sql.js",
|
||||
|
|
|
@ -13,16 +13,20 @@ const EtapiToken = require("./entities/etapi_token");
|
|||
const cls = require("../services/cls");
|
||||
const entityConstructor = require("../becca/entity_constructor");
|
||||
|
||||
let setBeccaAsLoaded = null;
|
||||
|
||||
const beccaLoaded = new Promise((res, rej) => {
|
||||
sqlInit.dbReady.then(() => {
|
||||
load();
|
||||
|
||||
cls.init(() => require('../services/options_init').initStartupOptions());
|
||||
|
||||
res();
|
||||
});
|
||||
setBeccaAsLoaded = res;
|
||||
});
|
||||
|
||||
function loadInitially() {
|
||||
load();
|
||||
|
||||
cls.init(() => require('../services/options_init').initStartupOptions());
|
||||
|
||||
setBeccaAsLoaded();
|
||||
}
|
||||
|
||||
function load() {
|
||||
const start = Date.now();
|
||||
becca.reset();
|
||||
|
@ -245,5 +249,6 @@ eventService.subscribeBeccaLoader(eventService.LEAVE_PROTECTED_SESSION, load);
|
|||
module.exports = {
|
||||
load,
|
||||
reload,
|
||||
beccaLoaded
|
||||
beccaLoaded,
|
||||
loadInitially
|
||||
};
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
const becca = require('./becca.js');
|
||||
const becca = require('./becca');
|
||||
const cls = require('../services/cls');
|
||||
const protectedSessionService = require('../services/protected_session');
|
||||
const log = require('../services/log');
|
||||
|
||||
function isNotePathArchived(notePath) {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
const scriptService = require('./script');
|
||||
const cls = require('./cls');
|
||||
const sqlInit = require('./sql_init');
|
||||
const config = require('./config');
|
||||
const log = require('./log');
|
||||
const sql = require("./sql");
|
||||
const becca = require("../becca/becca");
|
||||
const specialNotesService = require("../services/special_notes");
|
||||
const protectedSessionService = require("../services/protected_session");
|
||||
const beccaLoader = require("../becca/becca_loader");
|
||||
|
||||
function getRunAtHours(note) {
|
||||
try {
|
||||
|
@ -50,7 +50,7 @@ function runNotesWithLabel(runAttrValue) {
|
|||
}
|
||||
}
|
||||
|
||||
sqlInit.dbReady.then(() => {
|
||||
beccaLoader.beccaLoaded.then(() => {
|
||||
if (!process.env.TRILIUM_SAFE_MODE) {
|
||||
cls.init(() => specialNotesService.createMissingSpecialNotes());
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@ const becca = require('../../../becca/becca');
|
|||
const beccaService = require('../../../becca/becca_service');
|
||||
const utils = require('../../utils');
|
||||
const log = require('../../log');
|
||||
const scriptService = require("../../script.js");
|
||||
|
||||
function searchFromNote(note) {
|
||||
let searchResultNoteIds, highlightedTokens;
|
||||
|
@ -69,6 +68,7 @@ function searchFromRelation(note, relationName) {
|
|||
return [];
|
||||
}
|
||||
|
||||
const scriptService = require("../../script");
|
||||
const result = scriptService.executeNote(scriptNote, { originEntity: note });
|
||||
|
||||
if (!Array.isArray(result)) {
|
||||
|
|
|
@ -44,11 +44,11 @@ ipcMain.on('create-extra-window', (event, arg) => {
|
|||
createExtraWindow(arg.notePath, arg.hoistedNoteId);
|
||||
});
|
||||
|
||||
async function createMainWindow(app) {
|
||||
function createMainWindow(app) {
|
||||
const windowStateKeeper = require('electron-window-state'); // should not be statically imported
|
||||
|
||||
const mainWindowState = windowStateKeeper({
|
||||
// default window width & height so it's usable on 1600 * 900 display (including some extra panels etc.)
|
||||
// default window width & height, so it's usable on 1600 * 900 display (including some extra panels etc.)
|
||||
defaultWidth: 1200,
|
||||
defaultHeight: 800
|
||||
});
|
||||
|
|
6
src/www
6
src/www
|
@ -25,10 +25,10 @@ const log = require('./services/log');
|
|||
const appInfo = require('./services/app_info');
|
||||
const ws = require('./services/ws');
|
||||
const utils = require('./services/utils');
|
||||
const sqlInit = require('./services/sql_init');
|
||||
const port = require('./services/port');
|
||||
const host = require('./services/host');
|
||||
const semver = require('semver');
|
||||
const beccaLoader = require("./becca/becca_loader");
|
||||
|
||||
if (!semver.satisfies(process.version, ">=10.5.0")) {
|
||||
console.error("Trilium only supports node.js 10.5 and later");
|
||||
|
@ -95,6 +95,10 @@ async function startTrilium() {
|
|||
const cpuInfos = require('os').cpus();
|
||||
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
|
||||
|
||||
if (!utils.isElectron()) {
|
||||
beccaLoader.loadInitially();
|
||||
}
|
||||
|
||||
/**
|
||||
* Listen on provided port, on all network interfaces.
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue