Skip to content
 
 

Repository files navigation

Pinia ORM banner

npm version npm downloads Github Actions CI Coverage License

Welcome to pinia-orm

Intuitive, type safe and flexible ORM for Pinia based on Vuex ORM Next

Migration from vuex-orm

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 pinia-orm@v1.4.0 @vuex-orm/core@0.36.4 @vuex-orm/core@1.0.0-draft.16
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-next and not on vuex-orm !

Help me keep working on this project 💚


💻 Development

  • Clone this repository
  • Enable Corepack using corepack enable (use npm i -g corepack for 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

Credits

Related projects

License

Made with ❤️

Published under MIT License.

About

The Pinia plugin to enable Object-Relational Mapping access to the Pinia Store.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages