npm.io
0.2.0 • Published 3d ago

@lostcoords/lumi-reader-core

Licence
MIT
Version
0.2.0
Deps
1
Size
464 kB
Vulns
0
Weekly
0

lumi-reader

Framework-agnostic EPUB reader engine, plus thin per-framework wrappers.

Packages

Package What
@lostcoords/lumi-epub Parse .epubBook (atom-offset model). Zero deps, browser-first.
@lostcoords/lumi-reader-core Paginated + continuous render engine, neutral store, ports.
@lostcoords/lumi-reader-svelte Svelte 5 wrapper.

Use it (Svelte)

<script>
  import { Reader } from "@lostcoords/lumi-reader-svelte";
  // store: createReaderStore({ ports }) from @lostcoords/lumi-reader-core
  // settings: your app's reactive SettingsPort
</script>

<Reader {store} {settings} />

Reader mounts the engine and forwards settings changes. The app owns the store and drives navigation directly (store.nextPage(), store.jumpToHref(...)). Props are captured at mount — to reset against a new store, remount with {#key store}. For prop typechecking, import @lostcoords/lumi-reader-svelte/Reader.svelte directly.

Develop

bun install
bun run test        # all packages
bun run typecheck
bun run build

License

MIT