commit d8ebc770bed4012ee8f5b492b4e543f65e0906ab Author: ztimson Date: Sat Aug 6 14:17:27 2022 -0400 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..664930f --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +# IDEs +.idea +.vscode + +# Artifacts +node_modules +dist diff --git a/index.html b/index.html new file mode 100644 index 0000000..92c07a7 --- /dev/null +++ b/index.html @@ -0,0 +1,18 @@ + + + + + + TS Electron Template + + + +

Versions:

+

Node.js -

+

Chromium -

+

Electron -

+ + + + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..42f8e16 --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "desktop-daemon", + "version": "0.0.0", + "description": "Programming Game", + "scripts": { + "build": "tsc", + "watch": "tsc -w", + "start": "npm run build && electron ./dist/main.js" + }, + "devDependencies": { + "electron": "^20.0.1", + "typescript": "^4.7.4" + }, + "dependencies": {} +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..7847c13 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,34 @@ +import {app, BrowserWindow} from "electron"; +import * as path from "path"; + +// Window factory +function createWindow() { + const window = new BrowserWindow({ + height: 600, + width: 800, + webPreferences: { + preload: path.join(__dirname, "preload.js") + } + }); + + window.loadFile(path.join(__dirname, "../index.html")); + window.webContents.openDevTools(); +} + +// Start +app.on("ready", () => { + createWindow(); + + // OSX convention - (resume the session) + app.on("activate", function () { + if (BrowserWindow.getAllWindows().length === 0) createWindow(); + }); +}); + +// Stop +app.on("window-all-closed", () => { + // OSX convention (stay running in dock) + if (process.platform !== "darwin") app.quit(); +}); + +// You can put anything else you want in the main thread here diff --git a/src/preload.ts b/src/preload.ts new file mode 100644 index 0000000..e0be721 --- /dev/null +++ b/src/preload.ts @@ -0,0 +1,12 @@ +// All of the Node.js APIs are available in the preload process (sandboxed). + +window.addEventListener("DOMContentLoaded", () => { + const replaceText = (selector: string, text: string) => { + const element = document.getElementById(selector); + if(element) element.innerText = text; + }; + + replaceText('chrome-version', process.versions['chrome']); + replaceText('electron-version', process.versions['electron']); + replaceText('node-version', process.versions['node']); +}); diff --git a/src/renderer.ts b/src/renderer.ts new file mode 100644 index 0000000..66b947d --- /dev/null +++ b/src/renderer.ts @@ -0,0 +1,4 @@ +/* +This file is imported by index.html, you can put any code you want to run afer +page load, here. + */ diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..302b714 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "noImplicitAny": true, + "sourceMap": true, + "outDir": "dist", + "baseUrl": ".", + "paths": { + "*": ["node_modules/*"] + }, + "lib": ["dom", "es2015"] + }, + "include": [ + "src/**/*" + ] +}