Skip to content

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

License

Notifications You must be signed in to change notification settings

CarstenRuetz/pinia-orm

 
 

Repository files navigation

Pinia ORM logo

Artwork from Pinia

pinia-orm

npm version npm downloads Github Actions CI Coverage License

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 [email protected] @vuex-orm/[email protected] @vuex-orm/[email protected]
Bundle Size (Min + GZIP) 9.1 KB 16.7 KB 12.6 KB
Relations (hasMany, belongsTo, morphOne, hasManyBy, hasOne)
Relations (morphTo, morphMany, belongsToMany)
Relations (morphToMany, morphedByMany, hasManyThrough)
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 💚

Platinum Sponsors

Gold Sponsors

Silver Sponsors

Bronze Sponsors

tintin10q

Lovely Sponsors

Sven Hue Paolo Dina


FAQ

A few notes about the project and possible questions:

Q: Does it work with the same models as vuex-orm?

A: Yes, this code is based on their work

💻 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

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 85.2%
  • Vue 8.8%
  • JavaScript 3.9%
  • HTML 1.8%
  • CSS 0.3%