Comparing main...feat/hmr-dev-sessions-integrated · NativeScript/android · GitHub
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NativeScript/android
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: NativeScript/android
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: feat/hmr-dev-sessions-integrated
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 4 commits
  • 32 files changed
  • 1 contributor

Commits on Jun 16, 2026

  1. feat: HMR dev-sessions, ESM resolver hardening, dev-mode runtime globals

    Adds the Hot Module Replacement runtime layer plus the supporting ESM
    resolver hardening and dev-session globals that make hot reload viable on
    Android.
    
    * `import.meta.hot`: `data`, `accept`, `dispose`, `prune`, `decline`,
      `invalidate`, `on`/`off`/`send` event surface.
    * Dev-session globals (`__nsStartDevSession`, `__nsReloadDevApp`,
      `__nsInvalidateModules`, `__nsRunHmrDispose`, `__nsRunHmrPrune`,
      `__nsHasDeclinedModule`, `__nsKickstartHmrPrefetch`,
      `__nsGetLoadedModuleUrls`, `__nsApplyStyleUpdate`,
      `__nsConfigureDevRuntime`/`__nsConfigureRuntime`,
      `__nsTerminateAllWorkers`).
    * Speculative HTTP module prefetch (opt-in) with canonical-key
      normalization so `__ns_hmr__/v<N>` and `__ns_boot__/b<N>` tag prefixes
      share `hot.data` identity across reload cycles.
    * ESM resolver hardening in `ModuleInternalCallbacks.cpp` to:
      - Preserve synthetic-namespace identity (`ns-vendor://`, `optional:`,
        `node:`, `blob:`) — these are NOT filesystem paths.
      - Handle HTTP/HTTPS module URLs end-to-end (resolution, fetch,
        canonical-key collapse, dynamic import).
      - Compile `.json` imports into synthetic ES modules.
    * Android runtime-dex support for `.extend()` classes created during HMR
      that the static binding generator can't see at build time: runtime DEX
      generation with `$`/`_` inner-class normalization (`DexFactory`),
      dev/HMR class-resolution fallback (`ClassResolver`), and dev-flag /
      `logScriptLoading` plumbing (`AppConfig`, `DevFlags`).
    NathanWalker committed Jun 16, 2026
    Configuration menu
    Copy the full SHA
    6c9e8b1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    708fecd View commit details
    Browse the repository at this point in the history
  3. feat: reloadApplication for JS bundle restart without restarting app …

    …process
    
    Helpful for programmatic reset of JS isolate for clean restart of JS application as well as OTA (over-the-air) updates without restarting the entire app process.
    NathanWalker committed Jun 16, 2026
    Configuration menu
    Copy the full SHA
    15db855 View commit details
    Browse the repository at this point in the history
  4. chore: 9.1.0-alpha.6

    NathanWalker committed Jun 16, 2026
    Configuration menu
    Copy the full SHA
    e3cadab View commit details
    Browse the repository at this point in the history
Loading