mirror of
https://github.com/ivabus/gui
synced 2025-06-06 15:20:29 +03:00
convert electron.cjs into ts
This commit is contained in:
parent
621262627c
commit
91c4ee9606
8 changed files with 75 additions and 26 deletions
|
@ -13,4 +13,5 @@ package-lock.json
|
|||
yarn.lock
|
||||
coverage/*
|
||||
build/*
|
||||
dist/*
|
||||
dist/*
|
||||
electron/dist/*
|
|
@ -24,5 +24,8 @@ module.exports = {
|
|||
browser: true,
|
||||
es2017: true,
|
||||
node: true
|
||||
},
|
||||
rules: {
|
||||
'@typescript-eslint/ban-ts-comment': ['error', { 'ts-ignore': 'allow-with-description' }]
|
||||
}
|
||||
};
|
||||
|
|
3
modules/desktop/.gitignore
vendored
3
modules/desktop/.gitignore
vendored
|
@ -7,4 +7,5 @@ node_modules
|
|||
.env.*
|
||||
!.env.example
|
||||
coverage/*
|
||||
dist/*
|
||||
dist/*
|
||||
electron/dist/*
|
|
@ -15,4 +15,5 @@ build
|
|||
coverage/*
|
||||
**/*.plist
|
||||
build/*
|
||||
dist/*
|
||||
dist/*
|
||||
electron/dist/*
|
|
@ -7,7 +7,7 @@ module.exports = {
|
|||
productName: 'tea',
|
||||
asar: false,
|
||||
directories: { output: 'dist' },
|
||||
files: ['electron/electron.cjs', { from: 'build', to: '' }]
|
||||
files: ['electron/dist/electron.cjs', { from: 'build', to: '' }]
|
||||
// TODO: if xcrun altool exists eventually in our self-hosted macos
|
||||
// SOLUTION: is notarize separately in next pipeline step
|
||||
// afterSign: async (params) => {
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
const windowStateManager = require('electron-window-state');
|
||||
const { app, BrowserWindow, ipcMain } = require('electron');
|
||||
const contextMenu = require('electron-context-menu');
|
||||
const serve = require('electron-serve');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
import windowStateManager from 'electron-window-state';
|
||||
import { app, BrowserWindow, ipcMain } from 'electron';
|
||||
import contextMenu from 'electron-context-menu';
|
||||
import serve from 'electron-serve';
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
|
||||
try {
|
||||
require('electron-reloader')(module);
|
||||
//@ts-ignore only used in dev should not be packaged inprod
|
||||
/* eslint-disable */
|
||||
const er = require('electron-reloader');
|
||||
er(module);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
|
@ -14,10 +17,10 @@ try {
|
|||
const serveURL = serve({ directory: '.' });
|
||||
const port = process.env.PORT || 3000;
|
||||
const dev = !app.isPackaged;
|
||||
let mainWindow;
|
||||
let mainWindow: BrowserWindow | null;
|
||||
|
||||
function createWindow() {
|
||||
let windowState = windowStateManager({
|
||||
const windowState = windowStateManager({
|
||||
defaultWidth: 800,
|
||||
defaultHeight: 600
|
||||
});
|
||||
|
@ -32,7 +35,7 @@ function createWindow() {
|
|||
minHeight: 450,
|
||||
minWidth: 500,
|
||||
webPreferences: {
|
||||
enableRemoteModule: true,
|
||||
// enableRemoteModule: true,
|
||||
contextIsolation: false,
|
||||
nodeIntegration: true,
|
||||
spellcheck: false,
|
||||
|
@ -72,7 +75,7 @@ contextMenu({
|
|||
});
|
||||
|
||||
function loadVite(port) {
|
||||
mainWindow.loadURL(`http://localhost:${port}`).catch((e) => {
|
||||
mainWindow?.loadURL(`http://localhost:${port}`).catch((e) => {
|
||||
console.log('Error loading URL, retrying', e);
|
||||
setTimeout(() => {
|
||||
loadVite(port);
|
||||
|
@ -101,7 +104,7 @@ app.on('window-all-closed', () => {
|
|||
});
|
||||
|
||||
ipcMain.on('to-main', (event, count) => {
|
||||
return mainWindow.webContents.send('from-main', `next count is ${count + 1}`);
|
||||
return mainWindow?.webContents.send('from-main', `next count is ${count + 1}`);
|
||||
});
|
||||
|
||||
ipcMain.handle('get-installed-packages', async () => {
|
||||
|
@ -114,10 +117,10 @@ ipcMain.handle('get-installed-packages', async () => {
|
|||
const deepReadDir = async (dirPath) => {
|
||||
let arrayOfFiles;
|
||||
try {
|
||||
arrayOfFiles = fs.readdirSync(dirPath)
|
||||
console.log(arrayOfFiles)
|
||||
} catch(e) {
|
||||
console.log(e)
|
||||
arrayOfFiles = fs.readdirSync(dirPath);
|
||||
console.log(arrayOfFiles);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
// await Promise.all(
|
||||
// (await readdir(dirPath, {withFileTypes: true})).map(async (dirent) => {
|
||||
|
@ -126,4 +129,4 @@ const deepReadDir = async (dirPath) => {
|
|||
// }),
|
||||
// )
|
||||
return arrayOfFiles;
|
||||
}
|
||||
};
|
38
modules/desktop/electron/vite.config.ts
Normal file
38
modules/desktop/electron/vite.config.ts
Normal file
|
@ -0,0 +1,38 @@
|
|||
import { join } from 'path';
|
||||
|
||||
const PACKAGE_ROOT = __dirname;
|
||||
const PROJECT_ROOT = join(PACKAGE_ROOT, '../..');
|
||||
|
||||
/**
|
||||
* @type {import('vite').UserConfig}
|
||||
* @see https://vitejs.dev/config/
|
||||
*/
|
||||
const config = {
|
||||
root: PACKAGE_ROOT,
|
||||
envDir: PROJECT_ROOT,
|
||||
resolve: {
|
||||
alias: {
|
||||
'/@/': join(PACKAGE_ROOT, 'src') + '/'
|
||||
}
|
||||
},
|
||||
build: {
|
||||
ssr: true,
|
||||
sourcemap: 'inline',
|
||||
outDir: 'dist',
|
||||
assetsDir: '.',
|
||||
minify: process.env.MODE !== 'development',
|
||||
lib: {
|
||||
entry: 'electron.ts',
|
||||
formats: ['cjs']
|
||||
},
|
||||
rollupOptions: {
|
||||
output: {
|
||||
entryFileNames: '[name].cjs'
|
||||
}
|
||||
},
|
||||
emptyOutDir: true,
|
||||
reportCompressedSize: false
|
||||
}
|
||||
};
|
||||
|
||||
export default config;
|
|
@ -4,19 +4,21 @@
|
|||
"private": true,
|
||||
"description": "tea gui app",
|
||||
"author": "tea.xyz",
|
||||
"main": "electron/electron.cjs",
|
||||
"main": "electron/dist/electron.cjs",
|
||||
"scripts": {
|
||||
"dev": "cross-env NODE_ENV=dev npm run dev:all",
|
||||
"dev:all": "concurrently -n=svelte,electron -c='#ff3e00',blue \"npm run dev:svelte\" \"npm run dev:electron\"",
|
||||
"dev:all": "concurrently -n=svelte,electron -c='#ff3e00',blue \"pnpm dev:main\" \"pnpm dev:svelte\" \"pnpm dev:electron\"",
|
||||
"dev:svelte": "vite dev",
|
||||
"dev:electron": "electron electron/electron.cjs",
|
||||
"dev:electron": "electron electron/dist/electron.cjs",
|
||||
"dev:main": "cd ./electron && vite build --watch",
|
||||
"build:main": "cd ./electron && vite build",
|
||||
"pack": "electron-builder --dir --config electron-builder.config.cjs",
|
||||
"dist": "pnpm build && electron-builder --config electron-builder.config.cjs",
|
||||
"package": "pnpm build && electron-builder --config electron-builder.config.cjs",
|
||||
"dev:package": "pnpm build && electron-builder --config electron-builder.config.cjs --dir",
|
||||
"electron": "concurrently --kill-others \"vite dev\" \"electron electron/electron.cjs\"",
|
||||
"electron": "concurrently --kill-others \"vite dev\" \"electron electron/dist/electron.cjs\"",
|
||||
"olddev": "vite dev",
|
||||
"build": "vite build && cp build/app.html build/index.html",
|
||||
"build": "pnpm build:main && vite build && cp build/app.html build/index.html",
|
||||
"preview": "vite preview",
|
||||
"unit:test": "vitest",
|
||||
"coverage": "vitest run --coverage",
|
||||
|
|
Loading…
Reference in a new issue