diff options
| author | Adam Soltys <[email protected]> | 2026-07-04 09:10:04 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-07-04 09:10:04 -0700 |
| commit | 11b2a56a320bbd66b98991fd08478d154ff6c717 (patch) | |
| tree | 035e64613eda8ea99cee6c7d7de352ed6bbdf2fe /src/app.js | |
| parent | 5fb48ee5284dbba34c8fa3b77c36379f49404ac2 (diff) | |
| download | coinosv3-11b2a56a320bbd66b98991fd08478d154ff6c717.tar.gz coinosv3-11b2a56a320bbd66b98991fd08478d154ff6c717.zip | |
Build profiles: HAL_FEATURES selects which features ship
build.js swaps src/features/index.js for a generated module importing
only the enabled features (gifts,swaps,ark,sp — unset means all,
"none" means a plain on-chain wallet), so excluded feature code and
its network endpoints never enter the bundle. Minimal profile:
476KB vs 577KB, with the Ark/gRPC, Boltz, and MuSig2 code verifiably
absent. `bun run build:minimal` builds it.
tools/minimal-smoke.js proves the minimal profile end-to-end: no
receive-mode dropdown, no gift button, no swap/Ark/SP settings cards,
no page errors, and a plain on-chain receive still lands. The two
blessed profiles are full (everything, the existing e2e suites) and
minimal (this smoke test); other combos should work but aren't CI'd.
Gift and SP primitives still live inside wallet.js, so those bytes
remain in the minimal bundle for now — extracting them is the next
step if we want the core leaner still.
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01QFAcD4V284DvYZZHP7Rxxy
Diffstat (limited to 'src/app.js')
| -rw-r--r-- | src/app.js | 7 |
1 files changed, 2 insertions, 5 deletions
@@ -9,10 +9,7 @@ import { qrSvg } from './qr.js'; import { scanQr } from './scan.js'; import { getSyncConfig, setSyncConfig, parseNostrPubkey, npubOf, fetchNostrProfile, decryptWithCode } from './nostr.js'; import { dataSources, getSource, setSource, getNetwork, setNetwork, NETWORKS } from './api.js'; -import { swapsFeature } from './features/swaps.js'; -import { giftsFeature } from './features/gifts.js'; -import { arkFeature } from './features/ark.js'; -import { spFeature } from './features/sp.js'; +import { buildFeatures } from './features/index.js'; import { t, LANGS, getLang, setLang, isRTL, loadLocale } from './i18n.js'; import { fmtBtc, @@ -2976,7 +2973,7 @@ const ctx = { getAccounts: () => accounts, claimTargets, enterWallet, activateAccount, commitAccount, }; -const FEATURES = [giftsFeature, swapsFeature, arkFeature, spFeature].map((f) => f(ctx)); +const FEATURES = buildFeatures(ctx); // apply text direction, then restore a wallet left open in this tab — otherwise // show the unlock screen. |
