How iamsuudi/swoff works
Swoff is a monorepo for offline-first web tooling. Its principal workflow is configuring and invoking the CLI to generate a service worker and client runtime that an application serves and uses. The README also documents a separate PWA asset generator, but its implementation is not present in the supplied tree; its capabilities are shown without inferring internal wiring. The sampled sources show a storage helper generator and framework hooks, while most feature wiring is documented rather than sampled.
Main entry points: generate.ts CLI commands · fetch-handler.ts Fetch strategies · mutation-queue.ts Mutation queue · client-injector.ts Client runtime
Components 24
CLI workflow
- CLI entry
apps/cli/src/index.ts - CLI commands
apps/cli/src/lib/commands/generate.ts - Config loading
apps/cli/src/lib/config/loader.ts - Config validation
apps/cli/src/lib/config/validator.ts - Stack detection
apps/cli/src/lib/utils/detect-framework.ts
Code generation
- Service worker generator
apps/cli/src/lib/generators/sw-generator.ts - Runtime file generators
apps/cli/src/lib/generators/file-generators - Framework adapters
apps/cli/src/lib/generators/file-generators/generate-framework-adapters.ts
Offline runtime
- Client runtime
apps/cli/src/runtime/client-injector.ts - Fetch strategies
apps/cli/src/lib/generators/sw-sections/fetch-handler.ts - Tag invalidation
apps/cli/src/lib/generators/sw-sections/tag-management.ts - Mutation queue
apps/cli/src/runtime/mutation-queue.ts
App integrations
- Framework hooks
apps/cli/templates/react/useSwoffFetch.tsx - Storage utilities
apps/cli/src/runtime/storage.ts - PWA asset generator
Other components
- App developer
- Swoff config
- Generated project files
- Web application
- Browser Cache API
- IndexedDB
- Application server
- Push or SSE server
- PWA assets
Connections 28
- App developer → CLI entry: runs
- App developer → Swoff config: configures
- CLI entry → CLI commands: dispatches
- CLI commands → Config loading: loads
- CLI commands → Config validation: validates
- Swoff config → Config loading: read by
- CLI commands → Stack detection: detects stack
- CLI commands → Service worker generator: generates worker
- CLI commands → Runtime file generators: generates runtime
- CLI commands → Framework adapters: generates adapters
- Service worker generator → Generated project files: writes worker
- Runtime file generators → Generated project files: writes runtime
- Framework adapters → Generated project files: writes hooks
- App developer → Web application: integrates files
- Web application → Client runtime: initializes
- Client runtime → Fetch strategies: registers worker
- Fetch strategies → Browser Cache API: reads and writes
- Fetch strategies → Application server: fetches requests
- Fetch strategies → Tag invalidation: tracks tags
- Fetch strategies → Mutation queue: queues mutations
- Mutation queue → IndexedDB: persists queue
- Mutation queue → Application server: retries mutations
- Web application → Framework hooks: uses hooks
- Framework hooks → Client runtime: calls runtime
- Web application → Storage utilities: checks quota
- Push or SSE server → Fetch strategies: push events
- App developer → PWA asset generator: runs separately
- PWA asset generator → PWA assets: generates assets