Welcome to pinia-orm

March 22, 2023 Β· View on GitHub

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.

Featurespinia-orm@v1.4.0@vuex-orm/core@0.36.4@vuex-orm/core@1.0.0-draft.16
Bundle Size (Min + GZIP)9.9 KB16.7 KB12.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

License

Made with ❀️

Published under MIT License.