Initial commit

This commit is contained in:
Yura Dupyn 2026-02-03 18:18:44 +01:00
commit c4626edee4
19 changed files with 11968 additions and 0 deletions

8
src/index.scss Normal file
View file

@ -0,0 +1,8 @@
body {
font-family:
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial,
sans-serif;
margin: auto;
max-width: 38rem;
padding: 2rem;
}

50
src/main.ts Normal file
View file

@ -0,0 +1,50 @@
import { app, BrowserWindow, ipcMain } from 'electron';
import path from 'node:path';
import started from 'electron-squirrel-startup';
console.log('Hello from Electron 👋');
// Handle creating/removing shortcuts on Windows when installing/uninstalling.
if (started) {
app.quit();
}
function createWindow() {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
},
});
// and load the index.html of the app.
if (MAIN_WINDOW_VITE_DEV_SERVER_URL) {
mainWindow.loadURL(MAIN_WINDOW_VITE_DEV_SERVER_URL);
} else {
mainWindow.loadFile(
path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`),
);
}
// or use ctrl+shift+i
mainWindow.webContents.openDevTools();
// mainWindow.loadURL('chrome://gpu');
}
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', () => {
ipcMain.handle('ping', () => 'pong');
createWindow();
});
// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});

11
src/preload.ts Normal file
View file

@ -0,0 +1,11 @@
// See the Electron documentation for details on how to use preload scripts:
// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts
import { contextBridge, ipcRenderer } from 'electron';
contextBridge.exposeInMainWorld('versions', {
node() { return process.versions.node; },
chrome() { return process.versions.chrome; },
electron() { return process.versions.electron; },
ping() { return ipcRenderer.invoke('ping'); }
});

45
src/renderer.ts Normal file
View file

@ -0,0 +1,45 @@
/**
* This file will automatically be loaded by vite and run in the "renderer" context.
* To learn more about the differences between the "main" and the "renderer" context in
* Electron, visit:
*
* https://electronjs.org/docs/tutorial/process-model
*
* By default, Node.js integration in this file is disabled. When enabling Node.js integration
* in a renderer process, please be aware of potential security implications. You can read
* more about security risks here:
*
* https://electronjs.org/docs/tutorial/security
*
* To enable Node.js integration in this file, open up `main.ts` and enable the `nodeIntegration`
* flag:
*
* ```
* // Create the browser window.
* mainWindow = new BrowserWindow({
* width: 800,
* height: 600,
* webPreferences: {
* nodeIntegration: true
* }
* });
* ```
*/
import './index.scss';
console.log("hello world! yooo");
const information = document.getElementById('info');
information.innerText = `This app is using Chrome (v${versions.chrome()}), Node.js (v${versions.node()}), and Electron (v${versions.electron()})`;
async function func() {
const response = await versions.ping();
console.log(response);
return response;
}
func().then(x => {
console.log("is this working? ", x);
});