move main.js to main_node.ts, still plenty of errors

pull/2239/head
Audric Ackermann 3 years ago
parent 5b1379f930
commit b36be1cbbb

@ -1,32 +1,35 @@
/* eslint-disable no-console */
const path = require('path');
const url = require('url');
const os = require('os');
const fs = require('fs');
const crypto = require('crypto');
const _ = require('lodash');
const pify = require('pify');
const electron = require('electron');
const { setup: setupSpellChecker } = require('./app/spell_check');
const packageJson = require('./package.json');
const GlobalErrors = require('./app/global_errors');
GlobalErrors.addHandler();
const electronLocalshortcut = require('electron-localshortcut');
const getRealPath = pify(fs.realpath);
const {
import {
app,
BrowserWindow,
ipcMain: ipc,
ipcMain as ipc,
Menu,
protocol: electronProtocol,
protocol as electronProtocol,
session,
shell,
screen,
systemPreferences,
} = electron;
} from 'electron';
import path from 'path';
import url from 'url';
import os from 'os';
import fs from 'fs';
import crypto from 'crypto';
import _ from 'lodash';
import pify from 'pify';
import { setup as setupSpellChecker } from './app/spell_check';
import packageJson from './package.json';
import GlobalErrors from './app/global_errors';
GlobalErrors.addHandler();
import electronLocalshortcut from 'electron-localshortcut';
// tslint:disable: no-console
const getRealPath = pify(fs.realpath);
// FIXME Hardcoding appId to prevent build failures on release.
// const appUserModelId = packageJson.build.appId;
@ -38,7 +41,7 @@ app.setAppUserModelId(appUserModelId);
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let mainWindow;
let mainWindow: BrowserWindow | null = null;
function getMainWindow() {
return mainWindow;
@ -47,36 +50,36 @@ function getMainWindow() {
// Tray icon and related objects
let tray = null;
const config = require('./app/config');
import config from './app/config';
// Very important to put before the single instance check, since it is based on the
// userData directory.
const userConfig = require('./app/user_config');
const passwordUtil = require('./ts/util/passwordUtils');
import userConfig from './app/user_config';
import passwordUtil from './ts/util/passwordUtils';
const development = config.environment === 'development';
const appInstance = config.util.getEnv('NODE_APP_INSTANCE') || 0;
// We generally want to pull in our own modules after this point, after the user
// data directory has been set.
const attachments = require('./ts/attachments/attachments');
const attachmentChannel = require('./app/attachment_channel');
import attachments from './ts/attachments/attachments';
import attachmentChannel from './app/attachment_channel';
const updater = require('./ts/updater/index');
import updater from './ts/updater/index';
const createTrayIcon = require('./app/tray_icon');
const ephemeralConfig = require('./app/ephemeral_config');
const logging = require('./app/logging');
const sql = require('./app/sql');
const sqlChannels = require('./app/sql_channel');
const windowState = require('./app/window_state');
const { createTemplate } = require('./app/menu');
const { installFileHandler, installWebHandler } = require('./app/protocol_filter');
const { installPermissionsHandler } = require('./app/permissions');
import createTrayIcon from './app/tray_icon';
import ephemeralConfig from './app/ephemeral_config';
import logging from './app/logging';
import sql from './app/sql';
import sqlChannels from './app/sql_channel';
import windowState from './app/window_state';
import { createTemplate } from './app/menu';
import { installFileHandler, installWebHandler } from './app/protocol_filter';
import { installPermissionsHandler } from './app/permissions';
let appStartInitialSpellcheckSetting = true;
let latestDesktopRelease;
let latestDesktopRelease: string | undefined;
async function getSpellCheckSetting() {
const json = await sql.getItemById('spell-check');
@ -141,7 +144,8 @@ if (windowFromUserConfig) {
ephemeralConfig.set('window', windowConfig);
}
const loadLocale = require('./app/locale').load;
// import {load as loadLocale} from '../..'
const loadLocale = './app/locale'.load;
// Both of these will be set after app fires the 'ready' event
let logger;
@ -228,8 +232,8 @@ function getStartInTray() {
const usingTrayIcon = startInTray || process.argv.some(arg => arg === '--use-tray-icon');
return { usingTrayIcon, startInTray };
}
// tslint:disable-next-line: max-func-body-length
async function createWindow() {
const { screen } = electron;
const { minWidth, minHeight, width, height } = getWindowSize();
const windowOptions = Object.assign(
@ -663,7 +667,7 @@ async function removeDB() {
}
}
async function showMainWindow(sqlKey, passwordAttempt = false) {
async function showMainWindow(sqlKey: string, passwordAttempt = false) {
const userDataPath = await getRealPath(app.getPath('userData'));
sql.initialize({
@ -675,18 +679,8 @@ async function showMainWindow(sqlKey, passwordAttempt = false) {
appStartInitialSpellcheckSetting = await getSpellCheckSetting();
await sqlChannels.initialize();
async function cleanupOrphanedAttachments() {
const allAttachments = await attachments.getAllAttachments(userDataPath);
const orphanedAttachments = await sql.removeKnownAttachments(allAttachments);
await attachments.deleteAll({
userDataPath,
attachments: orphanedAttachments,
});
}
await attachmentChannel.initialize({
configDir: userDataPath,
cleanupOrphanedAttachments,
userDataPath,
});
ready = true;
Loading…
Cancel
Save