mirror of
https://github.com/ivabus/gui
synced 2025-06-07 07:40:27 +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
|
@ -14,3 +14,4 @@ yarn.lock
|
||||||
coverage/*
|
coverage/*
|
||||||
build/*
|
build/*
|
||||||
dist/*
|
dist/*
|
||||||
|
electron/dist/*
|
|
@ -24,5 +24,8 @@ module.exports = {
|
||||||
browser: true,
|
browser: true,
|
||||||
es2017: true,
|
es2017: true,
|
||||||
node: true
|
node: true
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
'@typescript-eslint/ban-ts-comment': ['error', { 'ts-ignore': 'allow-with-description' }]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
1
modules/desktop/.gitignore
vendored
1
modules/desktop/.gitignore
vendored
|
@ -8,3 +8,4 @@ node_modules
|
||||||
!.env.example
|
!.env.example
|
||||||
coverage/*
|
coverage/*
|
||||||
dist/*
|
dist/*
|
||||||
|
electron/dist/*
|
|
@ -16,3 +16,4 @@ coverage/*
|
||||||
**/*.plist
|
**/*.plist
|
||||||
build/*
|
build/*
|
||||||
dist/*
|
dist/*
|
||||||
|
electron/dist/*
|
|
@ -7,7 +7,7 @@ module.exports = {
|
||||||
productName: 'tea',
|
productName: 'tea',
|
||||||
asar: false,
|
asar: false,
|
||||||
directories: { output: 'dist' },
|
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
|
// TODO: if xcrun altool exists eventually in our self-hosted macos
|
||||||
// SOLUTION: is notarize separately in next pipeline step
|
// SOLUTION: is notarize separately in next pipeline step
|
||||||
// afterSign: async (params) => {
|
// afterSign: async (params) => {
|
||||||
|
|
|
@ -1,12 +1,15 @@
|
||||||
const windowStateManager = require('electron-window-state');
|
import windowStateManager from 'electron-window-state';
|
||||||
const { app, BrowserWindow, ipcMain } = require('electron');
|
import { app, BrowserWindow, ipcMain } from 'electron';
|
||||||
const contextMenu = require('electron-context-menu');
|
import contextMenu from 'electron-context-menu';
|
||||||
const serve = require('electron-serve');
|
import serve from 'electron-serve';
|
||||||
const path = require('path');
|
import path from 'path';
|
||||||
const fs = require('fs');
|
import fs from 'fs';
|
||||||
|
|
||||||
try {
|
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) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
|
@ -14,10 +17,10 @@ try {
|
||||||
const serveURL = serve({ directory: '.' });
|
const serveURL = serve({ directory: '.' });
|
||||||
const port = process.env.PORT || 3000;
|
const port = process.env.PORT || 3000;
|
||||||
const dev = !app.isPackaged;
|
const dev = !app.isPackaged;
|
||||||
let mainWindow;
|
let mainWindow: BrowserWindow | null;
|
||||||
|
|
||||||
function createWindow() {
|
function createWindow() {
|
||||||
let windowState = windowStateManager({
|
const windowState = windowStateManager({
|
||||||
defaultWidth: 800,
|
defaultWidth: 800,
|
||||||
defaultHeight: 600
|
defaultHeight: 600
|
||||||
});
|
});
|
||||||
|
@ -32,7 +35,7 @@ function createWindow() {
|
||||||
minHeight: 450,
|
minHeight: 450,
|
||||||
minWidth: 500,
|
minWidth: 500,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
enableRemoteModule: true,
|
// enableRemoteModule: true,
|
||||||
contextIsolation: false,
|
contextIsolation: false,
|
||||||
nodeIntegration: true,
|
nodeIntegration: true,
|
||||||
spellcheck: false,
|
spellcheck: false,
|
||||||
|
@ -72,7 +75,7 @@ contextMenu({
|
||||||
});
|
});
|
||||||
|
|
||||||
function loadVite(port) {
|
function loadVite(port) {
|
||||||
mainWindow.loadURL(`http://localhost:${port}`).catch((e) => {
|
mainWindow?.loadURL(`http://localhost:${port}`).catch((e) => {
|
||||||
console.log('Error loading URL, retrying', e);
|
console.log('Error loading URL, retrying', e);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
loadVite(port);
|
loadVite(port);
|
||||||
|
@ -101,7 +104,7 @@ app.on('window-all-closed', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on('to-main', (event, count) => {
|
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 () => {
|
ipcMain.handle('get-installed-packages', async () => {
|
||||||
|
@ -114,10 +117,10 @@ ipcMain.handle('get-installed-packages', async () => {
|
||||||
const deepReadDir = async (dirPath) => {
|
const deepReadDir = async (dirPath) => {
|
||||||
let arrayOfFiles;
|
let arrayOfFiles;
|
||||||
try {
|
try {
|
||||||
arrayOfFiles = fs.readdirSync(dirPath)
|
arrayOfFiles = fs.readdirSync(dirPath);
|
||||||
console.log(arrayOfFiles)
|
console.log(arrayOfFiles);
|
||||||
} catch(e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e);
|
||||||
}
|
}
|
||||||
// await Promise.all(
|
// await Promise.all(
|
||||||
// (await readdir(dirPath, {withFileTypes: true})).map(async (dirent) => {
|
// (await readdir(dirPath, {withFileTypes: true})).map(async (dirent) => {
|
||||||
|
@ -126,4 +129,4 @@ const deepReadDir = async (dirPath) => {
|
||||||
// }),
|
// }),
|
||||||
// )
|
// )
|
||||||
return arrayOfFiles;
|
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,
|
"private": true,
|
||||||
"description": "tea gui app",
|
"description": "tea gui app",
|
||||||
"author": "tea.xyz",
|
"author": "tea.xyz",
|
||||||
"main": "electron/electron.cjs",
|
"main": "electron/dist/electron.cjs",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "cross-env NODE_ENV=dev npm run dev:all",
|
"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: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",
|
"pack": "electron-builder --dir --config electron-builder.config.cjs",
|
||||||
"dist": "pnpm build && electron-builder --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",
|
"package": "pnpm build && electron-builder --config electron-builder.config.cjs",
|
||||||
"dev:package": "pnpm build && electron-builder --config electron-builder.config.cjs --dir",
|
"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",
|
"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",
|
"preview": "vite preview",
|
||||||
"unit:test": "vitest",
|
"unit:test": "vitest",
|
||||||
"coverage": "vitest run --coverage",
|
"coverage": "vitest run --coverage",
|
||||||
|
|
Loading…
Reference in a new issue