Intuitive, type safe and flexible ORM for Pinia based on Vuex ORM Next
You want to migrate from vuex to pinia and with it vuex-orm to pinia-orm but you don't know yet? Well maybe this table will help you to decide. This comparison is just about facts and current state.
| Features | [email protected] | @vuex-orm/[email protected] | @vuex-orm/[email protected] |
|---|---|---|---|
| Bundle Size (Min + GZIP) | 9.9 KB | 16.7 KB | 12.6 KB |
| Relations (hasMany, belongsTo, morphOne, hasManyBy, hasOne, morphTo) | β | β | β |
| Relations (morphMany, belongsToMany, hasManyThrough) | β | β | β |
| Relations (morphToMany, morphedByMany) | β | β | β |
| Mutators | β | β | β |
| Casts | β | β | β |
| Decorators | β | β | β |
| Single Table Inheritance | β | β | β |
| Lifecycle Hooks | β | β | β |
| Aggregates | β | β | β |
| Query (orHas, doesntHave, orDoesntHave, whereHas, orWhereHas, groupBy) | β | β | β |
| Collection Helpers | β | (β ) can use pinia-orm helpers too | (β ) can use pinia-orm helpers too |
| Hidden Fields | β | β | β |
| Metadata field | β | β | β |
| Caching of queries with gc | β | (β ) with plugin | β |
If you decide to migrate then there are some breaking changes. A guide how to migrate will be written. Small overview:
- Fields are by default
null - Renamed some functions aligning more with laravel naming
- Code is based on
vuex-orm-nextand not onvuex-orm!
- Clone this repository
- Enable Corepack using
corepack enable(usenpm i -g corepackfor Node.js < 16.10) - Install dependencies using
pnpm install - Build normalizr package:
pnpm build - Run interactive tests using
cd packages/pinia-orm && pnpm test:ui
Made with β€οΈ
Published under MIT License.