Change directory structure and merge all configurations
This commit is contained in:
parent
983e317358
commit
0c89b22e92
23 changed files with 195 additions and 156 deletions
|
@ -1,12 +1,10 @@
|
||||||
{
|
{
|
||||||
"extends": "./tsconfig.json",
|
"extends": "./tsconfig.json",
|
||||||
"include": [
|
"include": [
|
||||||
"../../electron/main/index.ts",
|
"../../app/electron/main/index.ts",
|
||||||
"../../electron/windows/primary.ts"
|
"../../app/electron/main/window.ts"
|
||||||
],
|
],
|
||||||
"exclude": [
|
"exclude": [
|
||||||
"../../.build",
|
"../../app/astro",
|
||||||
"../../astro",
|
|
||||||
"../../configuration",
|
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -1,7 +1,5 @@
|
||||||
import { Configuration } from 'electron-builder'
|
import { Configuration } from 'electron-builder'
|
||||||
import {meta} from '../configuration/app'
|
import {info, splash, update, macos, linux, windows} from '../configuration'
|
||||||
import {splash} from '../configuration/theme'
|
|
||||||
import {update, macos, linux, windows} from '../configuration/electron-builder'
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
// Please configure the "configuration/app.ts" file instead. //
|
// Please configure the "configuration/app.ts" file instead. //
|
||||||
|
@ -9,8 +7,8 @@ import {update, macos, linux, windows} from '../configuration/electron-builder'
|
||||||
|
|
||||||
const config: Configuration = {
|
const config: Configuration = {
|
||||||
directories: {output: ".build/output/distribution/${platform}/${arch}"},
|
directories: {output: ".build/output/distribution/${platform}/${arch}"},
|
||||||
productName: meta.name,
|
productName: info.name,
|
||||||
appId: meta.id,
|
appId: info.id,
|
||||||
|
|
||||||
// Auto Update
|
// Auto Update
|
||||||
publish: {
|
publish: {
|
||||||
|
@ -43,16 +41,16 @@ const config: Configuration = {
|
||||||
},
|
},
|
||||||
appx: {
|
appx: {
|
||||||
backgroundColor: splash.backgroundColor,
|
backgroundColor: splash.backgroundColor,
|
||||||
applicationId: meta.id,
|
applicationId: info.id,
|
||||||
identityName: windows.identityName,
|
identityName: windows.identityName,
|
||||||
publisher: windows.publisher,
|
publisher: windows.publisher,
|
||||||
publisherDisplayName: meta.company
|
publisherDisplayName: info.company
|
||||||
},
|
},
|
||||||
nsis: {
|
nsis: {
|
||||||
installerSidebar: ".build/assets/backgrounds/NSIS-Sidebar.bmp",
|
installerSidebar: ".build/assets/backgrounds/NSIS-Sidebar.bmp",
|
||||||
uninstallDisplayName: meta.name + ' - Uninstall.exe',
|
uninstallDisplayName: info.name + ' - Uninstall.exe',
|
||||||
artifactName: meta.name + ' - Install.exe',
|
artifactName: info.name + ' - Install.exe',
|
||||||
shortcutName: meta.name,
|
shortcutName: info.name,
|
||||||
allowElevation: windows.requireAdmin,
|
allowElevation: windows.requireAdmin,
|
||||||
oneClick: windows.silent,
|
oneClick: windows.silent,
|
||||||
allowToChangeInstallationDirectory: windows.allowToChangeInstallationDirectory,
|
allowToChangeInstallationDirectory: windows.allowToChangeInstallationDirectory,
|
||||||
|
@ -65,9 +63,9 @@ const config: Configuration = {
|
||||||
linux: {
|
linux: {
|
||||||
icon: ".build/assets/icons/linux/icon.png",
|
icon: ".build/assets/icons/linux/icon.png",
|
||||||
category: linux.category,
|
category: linux.category,
|
||||||
maintainer: meta.id,
|
maintainer: info.id,
|
||||||
vendor: meta.company,
|
vendor: info.company,
|
||||||
description: meta.description,
|
description: info.description,
|
||||||
target: [
|
target: [
|
||||||
{ target: 'AppImage', arch: 'x64' }, // Universal - x86_64
|
{ target: 'AppImage', arch: 'x64' }, // Universal - x86_64
|
||||||
{ target: 'AppImage', arch: 'arm64' }, // Universal - arm64
|
{ target: 'AppImage', arch: 'arm64' }, // Universal - arm64
|
||||||
|
@ -83,7 +81,7 @@ const config: Configuration = {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
snap: {
|
snap: {
|
||||||
title: meta.name,
|
title: info.name,
|
||||||
allowNativeWayland: true,
|
allowNativeWayland: true,
|
||||||
confinement: "strict"
|
confinement: "strict"
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,8 @@ import { defineConfig } from 'astro/config'
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
compressHTML: true,
|
compressHTML: true,
|
||||||
publicDir: "./src/public",
|
publicDir: "./src/public",
|
||||||
outDir: "../.build/output/astro",
|
outDir: "../../.build/output/astro",
|
||||||
cacheDir: "../build/output/astro-cache/",
|
cacheDir: "../../build/output/astro-cache/",
|
||||||
server: {
|
server: {
|
||||||
host: false,
|
host: false,
|
||||||
port: 2023
|
port: 2023
|
Before Width: | Height: | Size: 749 B After Width: | Height: | Size: 749 B |
0
astro/src/env.d.ts → app/astro/src/env.d.ts
vendored
0
astro/src/env.d.ts → app/astro/src/env.d.ts
vendored
|
@ -3,4 +3,5 @@ import App from '../structure/app.astro'
|
||||||
---
|
---
|
||||||
|
|
||||||
<App>
|
<App>
|
||||||
|
<p>Hello</p>
|
||||||
</App>
|
</App>
|
13
app/astro/src/structure/app.astro
Normal file
13
app/astro/src/structure/app.astro
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
import {info} from '../../../../configuration'
|
||||||
|
---
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>{info.name}</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<slot />
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,3 +1,3 @@
|
||||||
import {app, BrowserWindow} from "electron"
|
import {app, BrowserWindow} from "electron"
|
||||||
let mainWindow = require('../windows/primary')
|
let mainWindow = require('./window')
|
||||||
app.whenReady().then(() => {mainWindow.launch()})
|
app.whenReady().then(() => {mainWindow.launch()})
|
43
app/electron/main/window.ts
Normal file
43
app/electron/main/window.ts
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
import {BrowserWindow} from 'electron'
|
||||||
|
import {info, window, splash} from '../../../configuration'
|
||||||
|
if (process.env.NODE_ENV === "development") {var devTools = true}
|
||||||
|
else if (process.env.NODE_ENV === 'production') {var devTools =false}
|
||||||
|
let mainWindow : BrowserWindow
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
launch: function() {
|
||||||
|
mainWindow = new BrowserWindow({
|
||||||
|
title: info.name,
|
||||||
|
width: window.width,
|
||||||
|
height: window.height,
|
||||||
|
minWidth: window.minWidth,
|
||||||
|
minHeight: window.minHeight,
|
||||||
|
show: false,
|
||||||
|
autoHideMenuBar: true,
|
||||||
|
transparent: true,
|
||||||
|
// frame: false,
|
||||||
|
// titleBarStyle: 'hiddenInset',
|
||||||
|
vibrancy: 'sidebar', // Window blur effect on macOS
|
||||||
|
backgroundMaterial: 'auto', // Window blur effect on Windows. Note: This method is only supported on Windows 11 22H2 and up.
|
||||||
|
trafficLightPosition: { x: 25, y: 28 }, // Position of Traffic Light buttons on macOS
|
||||||
|
titleBarOverlay: { // Background and Height of Windows titlebar buttons
|
||||||
|
color: splash.backgroundColor, // Background
|
||||||
|
symbolColor: 'white', // Icon
|
||||||
|
height: 44,
|
||||||
|
},
|
||||||
|
webPreferences: {
|
||||||
|
webviewTag: true,
|
||||||
|
nodeIntegration: false,
|
||||||
|
contextIsolation: true,
|
||||||
|
devTools: devTools
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// Load Content
|
||||||
|
if (process.env.NODE_ENV === "development") {mainWindow.loadURL('http://localhost:2023')}
|
||||||
|
else if (process.env.NODE_ENV === 'production') {mainWindow.loadFile('.build/output/astro/index.html')}
|
||||||
|
|
||||||
|
// Showing the window gracefuly
|
||||||
|
// Doc: https://www.electronjs.org/docs/latest/api/browser-window#showing-the-window-gracefully
|
||||||
|
mainWindow.once('ready-to-show', () => {mainWindow.show()})
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<title>DESKTOP_APP_NAME</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<slot />
|
|
||||||
</body>
|
|
||||||
</html>
|
|
117
configuration.ts
Normal file
117
configuration.ts
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
///////////////////////
|
||||||
|
// Metadata //
|
||||||
|
///////////////////////
|
||||||
|
export const info = {
|
||||||
|
name: 'App ',
|
||||||
|
company: 'Company Name',
|
||||||
|
description: '',
|
||||||
|
id: 'org.company-name.app-name-here', // extension.domain.appname
|
||||||
|
|
||||||
|
// Sources
|
||||||
|
website: "https://mywebsite.net/",
|
||||||
|
support: "https://mywebsite.net/help/",
|
||||||
|
source_code: "https://github.com/user/repo"
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
// App Configuration //
|
||||||
|
////////////////////////////////
|
||||||
|
export const config = {
|
||||||
|
// Notifications
|
||||||
|
notificationType: "Native", // "Custom" "Native"
|
||||||
|
|
||||||
|
// Pushy Notifications
|
||||||
|
pushyAppId: "63e9212d7446e48a2a0e8ec0",
|
||||||
|
|
||||||
|
// Crash Reporter
|
||||||
|
crashReportServer: "https://nexuspolestar.bugsplat.com/post/electron/crash.php"
|
||||||
|
}
|
||||||
|
|
||||||
|
export const window = {
|
||||||
|
width: 1200,
|
||||||
|
height: 800,
|
||||||
|
minWidth: 400,
|
||||||
|
minHeight: 400,
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////
|
||||||
|
// Theme //
|
||||||
|
////////////////////
|
||||||
|
export const sidebar = {
|
||||||
|
headerFontSize: "14px",
|
||||||
|
tabFontSize: "16px",
|
||||||
|
tabHeight: "24px",
|
||||||
|
tabPositions: "Normal", // "Normal" "Centered"
|
||||||
|
size: "Normal", // "Normal" "Compact"
|
||||||
|
enableToggle: false,
|
||||||
|
enableSearch: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
export const splash = {
|
||||||
|
loadingIndicator: "Spinner", // "Spinner" "ProgressBar" "JumpingBalls" "GlowingBars"
|
||||||
|
backgroundColor: "#232323",
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
// Sidebar //
|
||||||
|
//////////////////////
|
||||||
|
export const SIDEBARTOP = [
|
||||||
|
{
|
||||||
|
text: "Dashboard",
|
||||||
|
icon: "wand-magic-sparkles",
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "Files",
|
||||||
|
icon: "folder-tree"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "Webview Demo",
|
||||||
|
icon: "globe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "Webview Demo 2",
|
||||||
|
icon: "globe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "iFrame Demo",
|
||||||
|
icon: "eye"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
export const SIDEBARBOTTOM = [
|
||||||
|
{
|
||||||
|
text: "Settings",
|
||||||
|
icon: "sliders"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
///////////////////////////////
|
||||||
|
// Electron Builder //
|
||||||
|
///////////////////////////////
|
||||||
|
export const update = {
|
||||||
|
channel: "latest", // Branch: "latest" "beta" "alpha"
|
||||||
|
url: '' // Point to url where build files will be stored on your server.
|
||||||
|
}
|
||||||
|
|
||||||
|
export const macos = {
|
||||||
|
category: 'public.app-category.utilities' // https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8
|
||||||
|
}
|
||||||
|
|
||||||
|
export const linux = {
|
||||||
|
category: 'Utilities', // https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html/category-registry
|
||||||
|
}
|
||||||
|
|
||||||
|
export const windows = {
|
||||||
|
// NSIS (.exe setup)
|
||||||
|
requireAdmin: false, // If you app needs to run admin tasks, which is shouldn't need to, set this to "true"
|
||||||
|
silent: false, // Ignore NSIS options below if "true"
|
||||||
|
allowToChangeInstallationDirectory: true, // Allow users to install your app anywhere
|
||||||
|
displayLanguageSelector: true,
|
||||||
|
createDesktopShortcut: false,
|
||||||
|
deleteAppDataOnUninstall: true,
|
||||||
|
|
||||||
|
// Microsoft Store
|
||||||
|
identityName: '00000Company.AppName',
|
||||||
|
publisher: 'CN=000A00A0-A00A-0A00-AAA0-0AAA00A000AA'
|
||||||
|
}
|
|
@ -1,28 +0,0 @@
|
||||||
///////////////////////
|
|
||||||
// Metadata //
|
|
||||||
///////////////////////
|
|
||||||
export const meta = {
|
|
||||||
name: 'App Name Here',
|
|
||||||
company: 'Company Name',
|
|
||||||
description: '',
|
|
||||||
id: 'org.company-name.app-name-here', // extension.domain.appname
|
|
||||||
|
|
||||||
// Sources
|
|
||||||
website: "https://mywebsite.net/",
|
|
||||||
support: "https://mywebsite.net/help/",
|
|
||||||
source_code: "https://github.com/user/repo"
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////
|
|
||||||
// App Configuration //
|
|
||||||
////////////////////////////////
|
|
||||||
export const config = {
|
|
||||||
// Notifications
|
|
||||||
notificationType: "Native", // "Custom" "Native"
|
|
||||||
|
|
||||||
// Pushy Notifications
|
|
||||||
pushyAppId: "63e9212d7446e48a2a0e8ec0",
|
|
||||||
|
|
||||||
// Crash Reporter
|
|
||||||
crashReportServer: "https://nexuspolestar.bugsplat.com/post/electron/crash.php"
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
export const update = {
|
|
||||||
channel: "latest", // Branch: "latest" "beta" "alpha"
|
|
||||||
url: '' // Point to url where build files will be stored on your server.
|
|
||||||
}
|
|
||||||
|
|
||||||
export const macos = {
|
|
||||||
category: 'public.app-category.utilities' // https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8
|
|
||||||
}
|
|
||||||
|
|
||||||
export const linux = {
|
|
||||||
category: 'Utilities', // https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html/category-registry
|
|
||||||
}
|
|
||||||
|
|
||||||
export const windows = {
|
|
||||||
// NSIS (.exe setup)
|
|
||||||
requireAdmin: false, // If you app needs to run admin tasks, which is shouldn't need to, set this to "true"
|
|
||||||
silent: false, // Ignore NSIS options below if "true"
|
|
||||||
allowToChangeInstallationDirectory: true, // Allow users to install your app anywhere
|
|
||||||
displayLanguageSelector: true,
|
|
||||||
createDesktopShortcut: false,
|
|
||||||
deleteAppDataOnUninstall: true,
|
|
||||||
|
|
||||||
// Microsoft Store
|
|
||||||
identityName: '00000Company.AppName',
|
|
||||||
publisher: 'CN=000A00A0-A00A-0A00-AAA0-0AAA00A000AA'
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
export const SIDEBARTOP = [
|
|
||||||
{
|
|
||||||
text: "Dashboard",
|
|
||||||
icon: "wand-magic-sparkles",
|
|
||||||
default: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "Files",
|
|
||||||
icon: "folder-tree"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "Webview Demo",
|
|
||||||
icon: "globe"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "Webview Demo 2",
|
|
||||||
icon: "globe"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "iFrame Demo",
|
|
||||||
icon: "eye"
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
export const SIDEBARBOTTOM = [
|
|
||||||
{
|
|
||||||
text: "Settings",
|
|
||||||
icon: "sliders"
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -1,14 +0,0 @@
|
||||||
export const sidebar = {
|
|
||||||
headerFontSize: "14px",
|
|
||||||
tabFontSize: "16px",
|
|
||||||
tabHeight: "24px",
|
|
||||||
tabPositions: "normal", // "normal" "centered"
|
|
||||||
size: "normal", // "normal" "compact"
|
|
||||||
enableToggle: false,
|
|
||||||
enableSearch: false,
|
|
||||||
}
|
|
||||||
|
|
||||||
export const splash = {
|
|
||||||
loadingIndicator: "Spinner", // "Spinner" "ProgressBar" "JumpingBalls" "GlowingBars"
|
|
||||||
backgroundColor: "#232323",
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
import {BrowserWindow} from "electron"
|
|
||||||
import {meta} from '../../configuration/app'
|
|
||||||
let mainWindow : BrowserWindow
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
launch: function() {
|
|
||||||
mainWindow = new BrowserWindow({
|
|
||||||
title: meta.name,
|
|
||||||
width: 500,
|
|
||||||
height: 500,
|
|
||||||
webPreferences: {
|
|
||||||
webviewTag: true,
|
|
||||||
nodeIntegration: false,
|
|
||||||
contextIsolation: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
// Load Content
|
|
||||||
if (process.env.NODE_ENV === "development") {
|
|
||||||
mainWindow.loadURL('http://localhost:2023')
|
|
||||||
} else if (process.env.NODE_ENV === 'production') {
|
|
||||||
mainWindow.loadFile('.build/output/astro/index.html')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -2,13 +2,13 @@
|
||||||
"name": "nexus-polestar",
|
"name": "nexus-polestar",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"main": ".build/output/electron/electron/main/index.js",
|
"main": ".build/output/electron/app/electron/main/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "concurrently \"npm run tsc\" \"npm run astro:start\" \"wait-on http://localhost:2023 && npm run electron:start\"",
|
"start": "concurrently \"npm run tsc\" \"npm run astro:start\" \"wait-on http://localhost:2023 && npm run electron:start\"",
|
||||||
"build": "npm run tsc && npm run astro:build && npm run electron:build",
|
"build": "npm run tsc && npm run astro:build && npm run electron:build",
|
||||||
"tsc": "tsc -p .build/devlopment/tsconfig-build.json",
|
"tsc": "tsc -p .build/devlopment/tsconfig-build.json",
|
||||||
"astro:start": "astro dev --silent --root ./astro/",
|
"astro:start": "astro dev --silent --root ./app/astro/",
|
||||||
"astro:build": "astro build --silent --root ./astro/",
|
"astro:build": "astro build --silent --root ./app/astro/",
|
||||||
"electron:start": "NODE_ENV=development electron .",
|
"electron:start": "NODE_ENV=development electron .",
|
||||||
"electron:build": "electron-builder --config ./.build/electron-builder.ts"
|
"electron:build": "electron-builder --config ./.build/electron-builder.ts"
|
||||||
},
|
},
|
||||||
|
|
Reference in a new issue