From e050506a0510fc723ebc542d26f84da5351f63a2 Mon Sep 17 00:00:00 2001 From: KernelDeimos Date: Tue, 28 May 2024 18:12:07 -0400 Subject: [PATCH] Add class registry (second pass) ExportService gets removed and instead a global class registry is added. The `init.js` file is split into `init_sync.js` and `init_async.js` so that synchronous code that isn't dependent on imports is guarenteed to run before initgui.js. The globalThis scope and service-script API now expose `def`, a function for registering class definitions, and `use`, a function for obtaining registered classes. --- .../src/services/PuterHomepageService.js | 15 ++- puter-gui.json | 3 +- src/UI/Components/Button.js | 8 +- src/UI/Components/CodeEntryView.js | 8 +- src/UI/Components/ConfirmationsView.js | 8 +- src/UI/Components/Flexer.js | 8 +- src/UI/Components/JustHTML.js | 8 +- src/UI/Components/PasswordEntry.js | 8 +- src/UI/Components/QRCode.js | 8 +- src/UI/Components/RecoveryCodeEntryView.js | 8 +- src/UI/Components/RecoveryCodesView.js | 8 +- src/UI/Components/Slider.js | 8 +- src/UI/Components/Spinner.js | 41 ++++++ src/UI/Components/StepHeading.js | 8 +- src/UI/Components/StepView.js | 8 +- src/UI/Components/StringView.js | 8 +- src/UI/Components/Table.js | 8 +- src/UI/Components/TestView.js | 8 +- src/index.js | 1 + src/init_async.js | 8 ++ src/init_sync.js | 119 ++++++++++++++++++ src/initgui.js | 11 +- src/services/ExportService.js | 24 ---- src/static-assets.js | 2 + src/util/Component.js | 52 ++++---- src/util/TeePromise.js | 8 +- src/util/register.js | 17 --- 27 files changed, 265 insertions(+), 156 deletions(-) create mode 100644 src/UI/Components/Spinner.js create mode 100644 src/init_async.js create mode 100644 src/init_sync.js delete mode 100644 src/services/ExportService.js delete mode 100644 src/util/register.js diff --git a/packages/backend/src/services/PuterHomepageService.js b/packages/backend/src/services/PuterHomepageService.js index 2c8f8fe73..a32c017ff 100644 --- a/packages/backend/src/services/PuterHomepageService.js +++ b/packages/backend/src/services/PuterHomepageService.js @@ -114,6 +114,12 @@ class PuterHomepageService extends BaseService { const bundled = env != 'dev' || use_bundled_gui; + const writeScriptTag = path => + `\n` + ; + return ` @@ -231,13 +237,16 @@ class PuterHomepageService extends BaseService { ${ ((!bundled && manifest?.js_paths) - ? manifest.js_paths.map(path => `\n`) + ? manifest.js_paths.map(path => writeScriptTag(path)) : []).join('') } - + -