From 0747a4540dbc1a8b936d494e58d9d5bf963857a7 Mon Sep 17 00:00:00 2001 From: Nystik <236107-Nystik@users.noreply.gitlab.com> Date: Fri, 20 Mar 2026 23:46:17 +0100 Subject: [PATCH] consolidate build scripts, reorganize source into src/ directory, fix favicon injection --- Dockerfile | 6 +-- build-ui.js | 17 ------- build.js | 47 +++++++++++++------ package.json | 6 +-- scripts/patch-obsidian.js | 15 +++--- {services => src/services}/vault-service.js | 0 {shims => src/shims}/btime.js | 0 {shims => src/shims}/crypto/create-hash.js | 0 {shims => src/shims}/crypto/index.js | 0 {shims => src/shims}/crypto/random-bytes.js | 0 {shims => src/shims}/crypto/scrypt.js | 0 {shims => src/shims}/electron/index.js | 0 {shims => src/shims}/electron/ipc-renderer.js | 0 {shims => src/shims}/electron/remote/app.js | 0 .../shims}/electron/remote/clipboard.js | 0 .../shims}/electron/remote/dialog.js | 0 {shims => src/shims}/electron/remote/index.js | 0 {shims => src/shims}/electron/remote/menu.js | 0 .../shims}/electron/remote/native-image.js | 0 .../shims}/electron/remote/notification.js | 0 .../shims}/electron/remote/screen.js | 0 .../shims}/electron/remote/session.js | 0 {shims => src/shims}/electron/remote/shell.js | 0 .../electron/remote/system-preferences.js | 0 {shims => src/shims}/electron/remote/theme.js | 0 .../shims}/electron/remote/window.js | 0 {shims => src/shims}/electron/web-frame.js | 0 {shims => src/shims}/fs/constants.js | 0 {shims => src/shims}/fs/content-cache.js | 0 {shims => src/shims}/fs/index.js | 0 {shims => src/shims}/fs/metadata-cache.js | 0 {shims => src/shims}/fs/promises.js | 0 {shims => src/shims}/fs/sync.js | 0 {shims => src/shims}/fs/transport.js | 0 {shims => src/shims}/fs/watch.js | 0 {shims => src/shims}/loader.js | 0 {shims => src/shims}/node/child_process.js | 0 {shims => src/shims}/node/events.js | 0 {shims => src/shims}/node/http.js | 0 {shims => src/shims}/node/net.js | 0 {shims => src/shims}/node/os.js | 0 {shims => src/shims}/path.js | 0 {shims => src/shims}/process.js | 0 {shims => src/shims}/request-url.js | 0 {shims => src/shims}/url.js | 0 {ui => src/ui}/bootstrap.js | 0 .../ui}/components/display/ListItem.svelte | 0 {ui => src/ui}/components/input/Button.svelte | 0 .../ui}/components/input/SearchInput.svelte | 0 .../components/layout/ConfirmDialog.svelte | 0 .../components/layout/MessageDialog.svelte | 0 {ui => src/ui}/components/layout/Modal.svelte | 0 .../ui}/components/layout/PromptDialog.svelte | 0 .../ui}/components/menu/PopoverMenu.svelte | 0 {ui => src/ui}/index.js | 0 {ui => src/ui}/views/VaultManager.svelte | 0 56 files changed, 46 insertions(+), 45 deletions(-) delete mode 100644 build-ui.js rename {services => src/services}/vault-service.js (100%) rename {shims => src/shims}/btime.js (100%) rename {shims => src/shims}/crypto/create-hash.js (100%) rename {shims => src/shims}/crypto/index.js (100%) rename {shims => src/shims}/crypto/random-bytes.js (100%) rename {shims => src/shims}/crypto/scrypt.js (100%) rename {shims => src/shims}/electron/index.js (100%) rename {shims => src/shims}/electron/ipc-renderer.js (100%) rename {shims => src/shims}/electron/remote/app.js (100%) rename {shims => src/shims}/electron/remote/clipboard.js (100%) rename {shims => src/shims}/electron/remote/dialog.js (100%) rename {shims => src/shims}/electron/remote/index.js (100%) rename {shims => src/shims}/electron/remote/menu.js (100%) rename {shims => src/shims}/electron/remote/native-image.js (100%) rename {shims => src/shims}/electron/remote/notification.js (100%) rename {shims => src/shims}/electron/remote/screen.js (100%) rename {shims => src/shims}/electron/remote/session.js (100%) rename {shims => src/shims}/electron/remote/shell.js (100%) rename {shims => src/shims}/electron/remote/system-preferences.js (100%) rename {shims => src/shims}/electron/remote/theme.js (100%) rename {shims => src/shims}/electron/remote/window.js (100%) rename {shims => src/shims}/electron/web-frame.js (100%) rename {shims => src/shims}/fs/constants.js (100%) rename {shims => src/shims}/fs/content-cache.js (100%) rename {shims => src/shims}/fs/index.js (100%) rename {shims => src/shims}/fs/metadata-cache.js (100%) rename {shims => src/shims}/fs/promises.js (100%) rename {shims => src/shims}/fs/sync.js (100%) rename {shims => src/shims}/fs/transport.js (100%) rename {shims => src/shims}/fs/watch.js (100%) rename {shims => src/shims}/loader.js (100%) rename {shims => src/shims}/node/child_process.js (100%) rename {shims => src/shims}/node/events.js (100%) rename {shims => src/shims}/node/http.js (100%) rename {shims => src/shims}/node/net.js (100%) rename {shims => src/shims}/node/os.js (100%) rename {shims => src/shims}/path.js (100%) rename {shims => src/shims}/process.js (100%) rename {shims => src/shims}/request-url.js (100%) rename {shims => src/shims}/url.js (100%) rename {ui => src/ui}/bootstrap.js (100%) rename {ui => src/ui}/components/display/ListItem.svelte (100%) rename {ui => src/ui}/components/input/Button.svelte (100%) rename {ui => src/ui}/components/input/SearchInput.svelte (100%) rename {ui => src/ui}/components/layout/ConfirmDialog.svelte (100%) rename {ui => src/ui}/components/layout/MessageDialog.svelte (100%) rename {ui => src/ui}/components/layout/Modal.svelte (100%) rename {ui => src/ui}/components/layout/PromptDialog.svelte (100%) rename {ui => src/ui}/components/menu/PopoverMenu.svelte (100%) rename {ui => src/ui}/index.js (100%) rename {ui => src/ui}/views/VaultManager.svelte (100%) diff --git a/Dockerfile b/Dockerfile index d3bcf19..7a4cea0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,10 +6,8 @@ WORKDIR /build COPY package.json package-lock.json ./ RUN npm ci --ignore-scripts -COPY build.js build-ui.js ./ -COPY shims/ ./shims/ -COPY services/ ./services/ -COPY ui/ ./ui/ +COPY build.js ./ +COPY src/ ./src/ RUN npm run build diff --git a/build-ui.js b/build-ui.js deleted file mode 100644 index e4e41bb..0000000 --- a/build-ui.js +++ /dev/null @@ -1,17 +0,0 @@ -const esbuild = require("esbuild"); -const sveltePlugin = require("esbuild-svelte"); -const path = require("path"); - -esbuild.build({ - entryPoints: [path.join(__dirname, "ui", "index.js")], - bundle: true, - outfile: path.join(__dirname, "dist", "ignis-ui.js"), - format: "iife", - globalName: "IgnisUI", - platform: "browser", - target: ["chrome90"], - mainFields: ["svelte", "browser", "module", "main"], - conditions: ["svelte", "browser"], - plugins: [sveltePlugin({ compilerOptions: { css: "injected" } })], - logLevel: "info", -}).catch(() => process.exit(1)); diff --git a/build.js b/build.js index fc2acec..789a4f0 100644 --- a/build.js +++ b/build.js @@ -1,15 +1,34 @@ -const esbuild = require('esbuild'); -const path = require('path'); +const esbuild = require("esbuild"); +const sveltePlugin = require("esbuild-svelte"); +const path = require("path"); -esbuild.build({ - entryPoints: [path.join(__dirname, 'shims', 'loader.js')], - bundle: true, - outfile: path.join(__dirname, 'dist', 'shim-loader.js'), - format: 'iife', - platform: 'browser', - target: ['chrome90'], - alias: { - 'path': 'path-browserify', - }, - logLevel: 'info', -}).catch(() => process.exit(1)); +Promise.all([ + // Build shim-loader.js + esbuild.build({ + entryPoints: [path.join(__dirname, "src", "shims", "loader.js")], + bundle: true, + outfile: path.join(__dirname, "dist", "shim-loader.js"), + format: "iife", + platform: "browser", + target: ["chrome90"], + alias: { + path: "path-browserify", + }, + logLevel: "info", + }), + + // Build ignis-ui.js + esbuild.build({ + entryPoints: [path.join(__dirname, "src", "ui", "index.js")], + bundle: true, + outfile: path.join(__dirname, "dist", "ignis-ui.js"), + format: "iife", + globalName: "IgnisUI", + platform: "browser", + target: ["chrome90"], + mainFields: ["svelte", "browser", "module", "main"], + conditions: ["svelte", "browser"], + plugins: [sveltePlugin({ compilerOptions: { css: "injected" } })], + logLevel: "info", + }), +]).catch(() => process.exit(1)); diff --git a/package.json b/package.json index 3199247..30cc8b4 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,10 @@ { "name": "ignis", - "version": "0.1.0", + "version": "0.4.0", "private": true, "description": "An Electron shim and server bridge for running Obsidian in a browser.", "scripts": { - "build:ui": "node build-ui.js", - "build:shims": "node build.js", - "build": "npm run build:ui && npm run build:shims", + "build": "node build.js", "dev:server": "node server/index.js", "dev": "npm run build && npm run dev:server" }, diff --git a/scripts/patch-obsidian.js b/scripts/patch-obsidian.js index 8d6dc75..c11b673 100644 --- a/scripts/patch-obsidian.js +++ b/scripts/patch-obsidian.js @@ -37,15 +37,18 @@ function patchHtml(filePath) { "\n", ); - // Inject ignis assets before the first \n' + - ' \n'; + // Inject favicon into
+ html = html.replace( + "", + ' \n', + ); + // Inject ignis scripts before the first \n' + + '\n' + + '