Packages
Six independently published @basmilius/* packages. Each one solves a single concern, ships as ESM-only TypeScript, and can be installed on its own — there is no meta-package to pull in.
CommonVue 3 composables, Pinia store helpers, router helpers and shared error classes.HTTP ClientA typed HTTP client with reactive DTOs, decorators and serialization.RoutingA vue-router wrapper that adds modal, overlay and slide-over routing.Utils47+ tree-shakeable utilities for dates, colors, math, DOM and geo.Vite PresetAn opinionated Vite preset with CSS modules, library composition and chunking.WorkerCloudflare Worker primitives — typed routing, request helpers and errors.
How they fit together
Three packages form a small Vue toolkit; the other three are standalone tools you can drop into any project. Only two internal dependencies exist between them:
common ──▶ http-client ──▶ utils
└───────────────────────▶ utilscommondepends onhttp-client(for the data-oriented composables) and onutils.http-clientdepends onutils.routing,vite-presetandworkerare fully standalone.
Tree-shakeable by design
Installing common pulls in http-client and utils automatically, but every package is side-effect-free and tree-shakeable — you only ship the symbols you import.
Peer dependencies
Packages declare their framework dependencies as peers, so you control the exact versions.
| Package | Peer dependencies |
|---|---|
common | vue, vue-router, pinia (http-client optional) |
http-client | vue |
routing | vue, vue-router |
utils | luxon |
vite-preset | vite |
worker | luxon |
Where to start
- New to the ecosystem? Begin with the Guide for installation and conventions.
- Building a Vue app? Start with Common and add HTTP Client and Routing as needed.
- Just need a helper? Utils is standalone and tree-shakeable.