Axonpack
@axonpack/expo-devtools

Example app

A runnable Expo app for trying all of this against real traffic.

example/ in the repository is a runnable Expo app for trying all of this against real traffic. It has one screen per tab, each a wall of buttons.

git clone https://github.com/axonpack/axonpack.git
cd axonpack
bun install
cd packages/@axonpack/expo-devtools/example
bun run start   # Expo Go / dev client
bun run ios     # or: bun run android (full native build)

What each screen does

  • Requests fires GET, POST and DELETE, downloads an image and uploads one, across fetch, XMLHttpRequest and axios, so you can watch all three interception paths land in the same list. Its WebView sub-tab loads a real external site, whose own requests arrive tagged with their source.
  • Console covers every kind of output worth testing, in three groups. Levels; argument shapes — mixed arguments, nested objects, arrays of objects, class instances, Map and Set, exotic primitives, empty values; and edge cases — circular references, a throwing getter, an unhandled rejection, a message repeated five times, a very long message, and a 600-entry flood.
  • Performance blocks the JS thread for 60 ms, 150 ms, 400 ms or three bursts in a row, runs a deliberately slow tap handler, records mark and measure pairs with and without detail, and allocates memory you can retain or release to make the heap chart move.
  • Storage seeds AsyncStorage, MMKV, SecureStore and an in-memory Map with a spread of value shapes, and can write past the 1,000-key read cap.

A worked configuration

example/devtools.ts doubles as a worked configuration: a dark default theme, a custom midnight one, two declared webviewSources, a console.context you can reach from the prompt, and all four storage adapters registered against real AsyncStorage, MMKV, SecureStore and an in-memory Map.

MMKV is not in Expo Go

AsyncStorage and SecureStore ship inside Expo Go, so bun run start exercises them as-is. MMKV does not, and createMMKV() throws when its native module is missing — the example catches that and registers the other three stores instead of crashing. bun run ios gets you all four.

On this page