Skip to content

Commit 5f46bb7

Browse files
refactor(Sky): remove Electron-specific bootstrap script and environment conditionals
- Removed conditional loading of `bootstrap-window.js` from VSCode output in both `Default.astro` and `Application.astro` - Eliminates legacy Electron-specific initialization code as part of migration to Tauri architecture - Simplified script loading structure by removing development environment checks (`NODE_ENV`, `TAURI_ENV_DEBUG`) - Added platform-specific keyboard layout handling in build configuration: - Mac/Linux keyboard layout files now included in static assets pipeline - Prepares for native input handling differences in Tauri webview - Removed redundant Fragment wrapper and debug logging (`console.log(Bundle)`) This cleanup reduces technical debt from Electron migration while maintaining cross-platform compatibility through proper keyboard layout configuration. The changes align with Land's goal of removing Electron dependencies while preserving VS Code functionality.
1 parent 8a44472 commit 5f46bb7

8 files changed

Lines changed: 50 additions & 56 deletions

File tree

Source/Workbench/Default.astro

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,3 @@
1-
---
2-
const On =
3-
process.env["NODE_ENV"] === "development" ||
4-
process.env["TAURI_ENV_DEBUG"] === "true";
5-
---
6-
7-
{
8-
On ? (
9-
<script>
10-
import
11-
"@codeeditorland/output/Target/Microsoft/VSCode/bootstrap-window.js";
12-
</script>
13-
) : null
14-
}
15-
161
<script>
172
import "@codeeditorland/output/Target/Microsoft/VSCode/vs/code/electron-sandbox/workbench/workbench.js";
183
</script>

Source/pages/Application.astro

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@ import Layout from "@Source/Function/Markup/Base.astro";
44
import BrowserWorkbench from "@Source/Workbench/Browser.astro";
55
import DefaultWorkbench from "@Source/Workbench/Default.astro";
66
7-
const Site = Astro.site;
8-
9-
const Worker = `/Worker.js?BASE_REMOTE=${encodeURIComponent(Site?.toString() ?? Astro.url.origin)}`;
10-
117
const On =
128
process.env["NODE_ENV"] === "development" ||
139
process.env["TAURI_ENV_DEBUG"] === "true";
10+
const Bundle = process.env["Bundle"] === "true";
11+
12+
const Browser = process.env["Browser"] === "true";
13+
14+
const Site = Astro.site;
15+
16+
const Worker = `/Worker.js?BASE_REMOTE=${encodeURIComponent(Site?.toString() ?? Astro.url.origin)}`;
1417
1518
const Default = {
1619
// --- Core Local Configuration ---
@@ -153,9 +156,7 @@ const Default = {
153156
const Bust = (Base: string): string =>
154157
`${Base}${Base.includes("?") ? "&" : "?"}Time=${encodeURIComponent(Date.now())}`;
155158
156-
const Bundle = process.env["Bundle"] === "true";
157-
158-
const Browser = process.env["Browser"] === "true";
159+
console.log(Bundle);
159160
---
160161

161162
<Layout>
@@ -315,26 +316,14 @@ const Browser = process.env["Browser"] === "true";
315316
defer
316317
/>
317318
) : (
318-
<Fragment>
319-
{On ? (
320-
<script
321-
is:inline
322-
type="module"
323-
src={Bust(
324-
"/Static/Application/bootstrap-window.js",
325-
)}
326-
/>
327-
) : null}
328-
329-
<script
330-
is:inline
331-
type="module"
332-
src={Bust(
333-
"/Static/Application/vs/code/electron-sandbox/workbench/workbench.js",
334-
)}
335-
defer
336-
/>
337-
</Fragment>
319+
<script
320+
is:inline
321+
type="module"
322+
src={Bust(
323+
"/Static/Application/vs/code/electron-sandbox/workbench/workbench.js",
324+
)}
325+
defer
326+
/>
338327
)}
339328
</Fragment>
340329
)

Target/Application/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!DOCTYPE html><html class=no-js data-beasties-container dir=ltr lang=en><head><script type=module>document.documentElement.classList.remove("no-js"),document.documentElement.classList.add("js")</script><title>FIDDEE</title><meta charset=utf-8><meta content name=description><meta content=yes name=mobile-web-app-capable><meta content=yes name=apple-mobile-web-app-capable><meta content=FIDDEE name=apple-mobile-web-app-title><meta content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" name=viewport><meta content=#ffffff name=theme-color><meta content="telephone=no" name=format-detection><meta content=on name=twitter:dnt><meta content=" default-src 'none' ; img-src 'self' data: blob: vscode-remote-resource: vscode-managed-remote-resource: https: ; manifest-src 'self' ; media-src 'self' ; frame-src 'self' vscode-webview: ; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: ; style-src 'self' 'unsafe-inline' ; connect-src 'self' wss://tauri.localhost https: ; font-src 'self' vscode-remote-resource: vscode-managed-remote-resource: ; block-all-mixed-content ; upgrade-insecure-requests ; require-trusted-types-for 'script' ; trusted-types WorkerApplication amdLoader cellRendererEditorText defaultWorkerFactory diffEditorWidget diffReview domLineBreaksComputer dompurify editorGhostText editorViewLayer notebookRenderer stickyScrollViewLayer tokenizeToString notebookChatEditController ; " http-equiv=Content-Security-Policy><meta data-settings={&#34;remoteAuthority&#34;:&#34;&#34;,&#34;serverBasePath&#34;:&#34;/&#34;,&#34;connectionToken&#34;:&#34;&#34;,&#34;enableWorkspaceTrust&#34;:true,&#34;settingsSyncOptions&#34;:{&#34;enabled&#34;:false},&#34;productConfiguration&#34;:{&#34;embedderIdentifier&#34;:&#34;desktop&#34;,&#34;nameShort&#34;:&#34;FIDDEE&#34;,&#34;nameLong&#34;:&#34;FIDDEE&#34;,&#34;applicationName&#34;:&#34;fiddee&#34;},&#34;developmentOptions&#34;:{&#34;logLevel&#34;:0,&#34;enableSmokeTestDriver&#34;:false}} id=vscode-workbench-web-configuration><meta data-settings={} id=vscode-workbench-auth-session><link href=/Manifest.json rel=manifest crossorigin=use-credentials><script type=module>const Site="https://tauri.localhost/";globalThis._VSCODE_FILE_ROOT=`${Site}/Static/Application/`</script><script type=module>const Worker="/Worker.js?BASE_REMOTE=https%3A%2F%2Ftauri.localhost%2F&Time=1746700691533";window._WORKER=Worker</script><style>:root{--vscode-sash-size:4px;--vscode-sash-hover-size:4px}@property --chat-editing-last-edit-shift{syntax:"<percentage>";initial-value:100%;inherits:false}@property --inline-chat-frame-progress{syntax:"<percentage>";initial-value:0%;inherits:false}body{height:100%;width:100%;margin:0;padding:0;overflow:hidden;font-size:11px;user-select:none;-webkit-user-select:none}</style><link href=/_astro/Browser.CRM72xFj.css rel=stylesheet media=print onload="this.media=&#34;all&#34;"><noscript><link href=/_astro/Browser.CRM72xFj.css rel=stylesheet></noscript><script type=module src=/_astro/page.D5PnSXWY.js></script></head><body aria-label><script type=module>window._LOAD_CSS_WORKER=e=>{const r=e+(e.includes("?")?"&":"?")+"Skip=Intercept";try{if(document.querySelector(`link[href="${r}"]`))return;const e=document.createElement("link");e.rel="stylesheet",e.type="text/css",e.href=r,e.onerror=r=>{e.remove()},e.onload=()=>{},document.head.appendChild(e)}catch{}},(()=>{if(window._POLICY_WORKER=window._POLICY_WORKER||{},window.trustedTypes&&window.trustedTypes.createPolicy&&!window._POLICY_WORKER.WorkerApplication)try{window._POLICY_WORKER.WorkerApplication=window.trustedTypes.createPolicy("WorkerApplication",{createScriptURL:e=>{if(e&&/^\/[^/\\:]+\.js(\?.*)?$/.test(e))return e;throw new TypeError(`Invalid URL format for service worker script: ${e}`)}})}catch(e){e instanceof TypeError&&e.message.includes("already exists")}})();const s="string"==typeof window._WORKER?window._WORKER:"/Worker.js",e="WorkerReload";if("serviceWorker"in navigator){navigator.serviceWorker.addEventListener("controllerchange",(()=>{"true"===sessionStorage.getItem(e)&&(sessionStorage.removeItem(e),window.location.reload())})),navigator.serviceWorker.addEventListener("message",(e=>{"New"===e.data?.Version&&window.location.reload()}));const r=async()=>{const r=!!navigator.serviceWorker.controller;try{let t;if(window.trustedTypes)try{const e=window._POLICY_WORKER?.WorkerApplication;if(!e)throw new Error("Required Trusted Types policy 'WorkerApplication' not found. Ensure Policy.js executes first and succeeds.");t=e.createScriptURL(s)}catch(e){throw e}else t=s;const o=await navigator.serviceWorker.register(t,{scope:"/Application",type:"module"});o.installing||o.waiting||o.active,await navigator.serviceWorker.ready;const i=!!navigator.serviceWorker.controller;if(r||i)sessionStorage.getItem(e)&&sessionStorage.removeItem(e);else{if(!sessionStorage.getItem(e))return sessionStorage.setItem(e,"true"),void window.location.reload();sessionStorage.removeItem(e)}}catch(r){r instanceof TypeError&&(r.message.includes("TrustedScriptURL")||r.message.includes("Trusted Type")),sessionStorage.removeItem(e)}};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",r):r()}</script><script type=module src=/_astro/Browser.astro_astro_type_script_index_0_lang.BZmB-OSp.js></script></body></html>
1+
<!DOCTYPE html><html class=no-js data-beasties-container dir=ltr lang=en><head><script type=module>document.documentElement.classList.remove("no-js"),document.documentElement.classList.add("js")</script><title>FIDDEE</title><meta charset=utf-8><meta content name=description><meta content=yes name=mobile-web-app-capable><meta content=yes name=apple-mobile-web-app-capable><meta content=FIDDEE name=apple-mobile-web-app-title><meta content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" name=viewport><meta content=#ffffff name=theme-color><meta content="telephone=no" name=format-detection><meta content=on name=twitter:dnt><meta content=" default-src 'none' ; img-src 'self' data: blob: vscode-remote-resource: vscode-managed-remote-resource: https: ; manifest-src 'self' ; media-src 'self' ; frame-src 'self' vscode-webview: ; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: ; style-src 'self' 'unsafe-inline' ; connect-src 'self' wss://tauri.localhost https: ; font-src 'self' vscode-remote-resource: vscode-managed-remote-resource: ; block-all-mixed-content ; upgrade-insecure-requests ; require-trusted-types-for 'script' ; trusted-types WorkerApplication amdLoader cellRendererEditorText defaultWorkerFactory diffEditorWidget diffReview domLineBreaksComputer dompurify editorGhostText editorViewLayer notebookRenderer stickyScrollViewLayer tokenizeToString notebookChatEditController ; " http-equiv=Content-Security-Policy><meta data-settings={&#34;remoteAuthority&#34;:&#34;&#34;,&#34;serverBasePath&#34;:&#34;/&#34;,&#34;connectionToken&#34;:&#34;&#34;,&#34;enableWorkspaceTrust&#34;:true,&#34;settingsSyncOptions&#34;:{&#34;enabled&#34;:false},&#34;productConfiguration&#34;:{&#34;embedderIdentifier&#34;:&#34;desktop&#34;,&#34;nameShort&#34;:&#34;FIDDEE&#34;,&#34;nameLong&#34;:&#34;FIDDEE&#34;,&#34;applicationName&#34;:&#34;fiddee&#34;},&#34;developmentOptions&#34;:{&#34;logLevel&#34;:0,&#34;enableSmokeTestDriver&#34;:false}} id=vscode-workbench-web-configuration><meta data-settings={} id=vscode-workbench-auth-session><link href=/Manifest.json rel=manifest crossorigin=use-credentials><script type=module>const Site="https://tauri.localhost/";globalThis._VSCODE_FILE_ROOT=`${Site}/Static/Application/`</script><script type=module>const Worker="/Worker.js?BASE_REMOTE=https%3A%2F%2Ftauri.localhost%2F&Time=1746736979128";window._WORKER=Worker</script><style>:root{--vscode-sash-size:4px;--vscode-sash-hover-size:4px}@property --chat-editing-last-edit-shift{syntax:"<percentage>";initial-value:100%;inherits:false}@property --inline-chat-frame-progress{syntax:"<percentage>";initial-value:0%;inherits:false}body{height:100%;width:100%;margin:0;padding:0;overflow:hidden;font-size:11px;user-select:none;-webkit-user-select:none}</style><link href=/_astro/Browser.CtagLlJC.css rel=stylesheet media=print onload="this.media=&#34;all&#34;"><noscript><link href=/_astro/Browser.CtagLlJC.css rel=stylesheet></noscript><script type=module src=/_astro/page.D5PnSXWY.js></script></head><body aria-label><script type=module>window._LOAD_CSS_WORKER=e=>{const r=e+(e.includes("?")?"&":"?")+"Skip=Intercept";try{if(document.querySelector(`link[href="${r}"]`))return;const e=document.createElement("link");e.rel="stylesheet",e.type="text/css",e.href=r,e.onerror=r=>{e.remove()},e.onload=()=>{},document.head.appendChild(e)}catch{}},(()=>{if(window._POLICY_WORKER=window._POLICY_WORKER||{},window.trustedTypes&&window.trustedTypes.createPolicy&&!window._POLICY_WORKER.WorkerApplication)try{window._POLICY_WORKER.WorkerApplication=window.trustedTypes.createPolicy("WorkerApplication",{createScriptURL:e=>{if(e&&/^\/[^/\\:]+\.js(\?.*)?$/.test(e))return e;throw new TypeError(`Invalid URL format for service worker script: ${e}`)}})}catch(e){e instanceof TypeError&&e.message.includes("already exists")}})();const s="string"==typeof window._WORKER?window._WORKER:"/Worker.js",e="WorkerReload";if("serviceWorker"in navigator){navigator.serviceWorker.addEventListener("controllerchange",(()=>{"true"===sessionStorage.getItem(e)&&(sessionStorage.removeItem(e),window.location.reload())})),navigator.serviceWorker.addEventListener("message",(e=>{"New"===e.data?.Version&&window.location.reload()}));const r=async()=>{const r=!!navigator.serviceWorker.controller;try{let t;if(window.trustedTypes)try{const e=window._POLICY_WORKER?.WorkerApplication;if(!e)throw new Error("Required Trusted Types policy 'WorkerApplication' not found. Ensure Policy.js executes first and succeeds.");t=e.createScriptURL(s)}catch(e){throw e}else t=s;const o=await navigator.serviceWorker.register(t,{scope:"/Application",type:"module"});o.installing||o.waiting||o.active,await navigator.serviceWorker.ready;const i=!!navigator.serviceWorker.controller;if(r||i)sessionStorage.getItem(e)&&sessionStorage.removeItem(e);else{if(!sessionStorage.getItem(e))return sessionStorage.setItem(e,"true"),void window.location.reload();sessionStorage.removeItem(e)}}catch(r){r instanceof TypeError&&(r.message.includes("TrustedScriptURL")||r.message.includes("Trusted Type")),sessionStorage.removeItem(e)}};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",r):r()}</script><script type=module src=/_astro/Browser.astro_astro_type_script_index_0_lang.Ha0bZXq9.js></script></body></html>

Target/Worker.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Target/_astro/Browser.CRM72xFj.css

Lines changed: 0 additions & 1 deletion
This file was deleted.

Target/_astro/Browser.CtagLlJC.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Target/_astro/Browser.astro_astro_type_script_index_0_lang.BZmB-OSp.js renamed to Target/_astro/Browser.astro_astro_type_script_index_0_lang.Ha0bZXq9.js

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

astro.config.ts

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export const Static = {
7171

7272
dest: "Static/Shim/",
7373
},
74+
7475
{
7576
src: `${VSCodeOutput}/${KeyboardLayouts}/_.contribution.js`,
7677

@@ -91,6 +92,24 @@ switch (Platform) {
9192

9293
break;
9394

95+
case "Mac":
96+
Static.targets.push({
97+
src: `${VSCodeOutput}/${KeyboardLayouts}/*.darwin.js`,
98+
99+
dest: `${ApplicationStatic}/${KeyboardLayouts}/`,
100+
});
101+
102+
break;
103+
104+
case "Linux":
105+
Static.targets.push({
106+
src: `${VSCodeOutput}/${KeyboardLayouts}/*.linux.js`,
107+
108+
dest: `${ApplicationStatic}/${KeyboardLayouts}/`,
109+
});
110+
111+
break;
112+
94113
default:
95114
break;
96115
}
@@ -142,6 +161,7 @@ export default defineConfig({
142161

143162
prefetch: {
144163
prefetchAll: true,
164+
145165
defaultStrategy: "viewport",
146166
},
147167

@@ -331,27 +351,29 @@ export default defineConfig({
331351

332352
// properties: {
333353
// reserved: [
334-
// "WorkerApplication",
354+
// "WorkerApplication",
335355

336-
// "_LOAD_CSS_WORKER",
356+
// "_LOAD_CSS_WORKER",
337357

338-
// "_POLICY_WORKER",
358+
// "_POLICY_WORKER",
339359

340-
// "_WORKER",
360+
// "_WORKER",
341361

342-
// "value",
362+
// "value",
343363

344-
// "get",
364+
// "get",
345365
// ],
346366

347367
// keep_quoted: true,
368+
348369
// },
349370

350371
// reserved: [],
351372

352373
// safari10: false,
353374

354375
// toplevel: true,
376+
355377
// },
356378

357379
mangle: false,
@@ -429,10 +451,8 @@ export default defineConfig({
429451
},
430452

431453
plugins: [
432-
// @ts-expect-error
433454
(await import("vite-plugin-static-copy")).viteStaticCopy(Static),
434455

435-
// @ts-expect-error
436456
(await import("vite-plugin-top-level-await")).default(),
437457

438458
((Module: string[]) => ({

0 commit comments

Comments
 (0)