Changelog

Discover the latest updates.


👀 Highlights

Now pinia-orm has finally all functions and relations from vuex-orm/core 🎈 Also i added the support for pinia setup store syntax. 💯 So now you are getting even more flexibility.

💊 Plugins fixed

I know the plugin system was still buggy. Either the types were wrong or the configs weren't working. It's finally doing well. But the plugin regestration changed. Since it haven't worked well yet it should be not a big breaking change.

You now need to register plugins that way:

- const piniaOrm = createORM()- piniaOrm().use(createPiniaOrmAxios({-   axios,- }))+ const piniaOrm = createORM({+    plugins: [+       createPiniaOrmAxios({+        axios,+       }),+    ],+   })

🚀 Pina Setup Store Option

You can now also use the pina setup syntax in pinia-orm. You only need to change your piniaOrm options

createPiniaORM({ pinia: { storeType: 'setupStore' } })
class User extends Model {      static entity = 'users'      static piniaOptions = {        newData: ref('1'),      }      static piniaExtend = {        persist: true,      }      @Attr(0) declare id: number      @Str('') declare name: string      @Str('') declare username: string    }console.log(userRepo.piniaStore().newData) // 1

👉 Changelog

compare changes

🚀 Enhancements

  • pinia-orm: Add morphedByMany as relation (#1897)
  • pinia-orm: Add option for custom pivotKey for relations with pivot (#1907)
  • pinia-orm: Pinia setup store syntax support (#1905)

🩹 Fixes

  • pinia-orm: Change plugin registration to be still compatible with pinia types (#1902)
  • axios: Axios instance is not found (29a91b0)
  • pinia-orm: Data was wrong for belongsTo & hasOne with composite key (#1904)
  • pinia-orm: BelongsToMany relation returns a toplevel 'pivot' reation (#1909)
  • pinia-orm: pivot helper fields are not deleted or removed. (#1911)
  • pinia-orm: Model original data is overwritten by different namspace models with same ID (#1954)
  • pinia-orm: UID Decorator: Setting Custom Alphabet Results in "undefined" Instead of Characters in UIDs (#1956)
  • pinia-orm: Ordering sometimes wrong with Query.orderBy and UseCollect.sortBy (#1957)

💅 Refactors

  • pinia-orm: Replace relation.getKey with relation.getResolvedKey (ad91ce6)

📖 Documentation

  • pinia-orm: MorphToMany example Taggable is missing primaryKey (#1959)

🏡 Chore

  • Update sponsors (2eed564)
  • normalizr: Add missing types export for bundler usage (220b093)
  • pinia-orm: Move to moduleResolution bundler (#1906)
  • pinia-orm: Update WeakCache types for newest typescript version (dc9d711)
  • Add .eslintcache to gitignore (3d6c378)

✅ Tests

  • axios: Correct axios is not set test (93359fd)

❤️ Contributors

👍 3🎉 1❤️ 1🚀 1

v1.10.0

@CodeDredd

November 26, 2024

Again some bug fixes from last release

👉 Changelog

compare changes

🩹 Fixes

  • pinia-orm: Two same belongsToMany with inverse keys on same model are causing wrong saved data (#1860)
  • pinia-orm: .find returning type any when using useRepo (#1865)
  • pinia-orm: Avoid attr default value modification by reference (#1869)
  • pinia-orm: Serialization was wrong with custom cast with custom serialization (#1866)
  • pinia-orm: Export missing composable useSortBy (#1882)
  • pinia-orm: Namespace + BelongsToMany throws error on query (#1883)

💅 Refactors

  • pinia-orm: Returning type of find is still any (#1876)

❤️ Contributors

❤️ 2

v1.9.2

@CodeDredd

July 10, 2024

Small bugfixes from 1.9.0 release

👉 Changelog

compare changes

🩹 Fixes

  • pinia-orm: Typings of useRepo with Repository are broken (#1848)
  • pinia-orm: Mutators/Casts on related models with belongsToMany were wrong (#1851)

🏡 Chore

  • Make release executable (3250493)
  • Correct release script (2d9db02)
  • Simplify PR template & update existing ones (fab5a76)

🤖 CI

  • Use correct auth token for release (040e51b)
  • Use correct auth token for release (37e7354)

❤️ Contributors

❤️ 5🚀 4

v1.9.1

@CodeDredd

May 17, 2024

👀 Highlights

This is possibly the second last minor release before pinia-orm v2, and so many bug fixes and some new nice features are inside! ✨

If you wonder why i skipped v1.8.0...well that happend because i now implemented an auto changelog gen and i didn't wanted to change my git history because of a simple mistake. 😄

💪 Typing improvements

Big thanks @dev1437 for his prework

First of all some type fixes were made so you shouldn't get any errors anymore. Along of this there some nice type support features now

Models throw an error if you try to accesss an not existing property

Autocomplete for with()

Autocomplete for where()

🚀 Edge Channel

There is now a edge channel so you don't have to wait to try out new merged commits. The edge builds are also made for the other packages axios, normalizr & nuxt

Opting into the edge channel

Update pinia-orm dependency inside package.json:

package.json
{  "devDependencies": {-   "pinia-orm": "^1.0.0"+   "pinia-orm": "npm:pinia-orm-edge@latest"  }}

Remove lockfile (package-lock.json, yarn.lock, or pnpm-lock.yaml) and reinstall dependencies.

Opting out from the edge channel

Update pinia-orm dependency inside package.json:

package.json
{  "devDependencies": {-   "pinia-orm": "npm:pinia-orm-edge@latest"+   "pinia-orm": "^1.0.0"  }}

Remove lockfile (package-lock.json, yarn.lock, or pnpm-lock.yaml) and reinstall dependencies.

👉 Changelog

pinia-orm@1.7.1...v1.9.0

compare changes

🚀 Enhancements

  • pinia-orm: Change orderBy execution (#1809)
  • pinia-orm: Improve DateCast & orderBy for Dates (#1825)
  • pinia-orm: Add where(Not)Null and (or)where(Not)In (#1831)
  • pinia-orm:: Attribute autocompletion in where and with (#816)
  • pinia-orm: Fallback added for not existing type prop in STI Models (#1835)

🩹 Fixes

  • pinia-orm: Export for "dist" is broken (a3c734e)
  • pinia-orm: Update vue 2 reactivity (#1773)
  • pinia-orm: Fix eager load relations with complex foreign/local keys (#1798)
  • nuxt: Import nuxt composables from #imports (#1729)
  • pinia-orm: Updates were wrong for hydrated cache for casts & mutators (#1823)
  • pinia-orm: Get mutators were wrong for updated models (#1824)
  • pinia-orm: saving, updating hooks second param had wrong values (#1826)
  • pinia-orm: Get mutator was called twice (#1827)
  • pinia-orm: Mutators still don't apply on update consistently (#1828)
  • pinia-orm: Relations don't use namespace to make/retrieve related model (#1834)
  • pinia-orm: $isDirty() in hooks on model had wrong state (4ecf93f)

💅 Refactors

  • pinia-orm: createORM() had wrong type (#1830)

📖 Documentation

  • pinia-orm: Fix typo on axios setup guide (#1797)
  • Add edge channel to documentation (0696a1a)
  • Axios setup example was wrong (8cb2648)
  • axios: Update docs and type descriptions for delete (#1838)

🏡 Chore

  • Add edge release (6a0d649)
  • Add changelogen config (401a35f)
  • Add bump and start 1.8.0 (ae3b7f2)
  • Trigger edge release only on packages changes (a8f07ca)
  • Update linting so it works again (11ee966)
  • axios: Build was failing cause of importing pinia (becc438)
  • axios: Linting (fc105f0)
  • Add changelog auto generation (67517dd)
  • Small fix changelog generation (89ad5c2)
  • Wrong rep owner for changelog gen (35880c8)
  • Change changelog gen condition (e0643e7)
  • Broken workflow (b8cabe3)
  • Add getContributors to utils (be51347)
  • Clean up playgrounds (b4b0a4f)
  • Renovate should also include pin and digest (45f87aa)
  • Post more info for changelog generation for debugging (6ff54cd)

✅ Tests

  • axios: Test were failing because pinia instance was not set (9c8f86d)
  • pinia-orm: Add belongsToMany self relation test (#1807)

🤖 CI

  • Fix workflow errors for cache (6b61206)
  • Fix cache issue in workflows (b812020)
  • Wrong versions (a7b864a)
  • Change branch master to main (ac1cc11)
  • Wrong tag release branch (dba5cda)
  • Change node version (3728fc5)
  • Add checkout (173a71c)
  • Fix build step in release ci (4a2ee8a)
  • Fix broken workflow (498b532)
  • Fix broken workflow (934a436)
  • Fix broken workflow (6d02a54)
  • Update permission (c1cf3e6)
  • Remove examples (db59d22)
  • Add changelogen (c95f4c8)
  • Update versions used for workflow (bbb8bab)
  • Fix changelog version check (4b0b95a)
  • Fix changeloggen currentPR not found (2ee4656)
  • Remove currenPR console log (3da6251)
  • Add release workflow (744fcaf)
  • Update changelog gen script to get the right PR (8ac3119)
  • Script update changelog is failing (5e6a2f0)
  • Ensure correct PR is found in changelog gen (de5a38e)

❤️ Contributors

🎉 9❤️ 8

v1.9.0

@CodeDredd

May 8, 2024

v1.7.2

Hotfix release for v1.7.1 which broke imports for old "dist"

🩹 Fixes

  • pinia-orm: Proper exports for collection and uid helpers (a3c734e)

❤️ Contributors

v1.7.1

Hotfix release

🩹 Fixes

  • pinia-orm: Proper exports for collection and uid helpers (#1681)

❤️ Contributors

❤️ 1

v1.7.0 - 🐦

This update is a huge one. I think the biggest change people always asked about is the axios plugin. It's fiinally there. But most importantly now you are able to extend pinia-orm like you want with the plugin system.

🚀 Enhancements

  • pinia-orm: Add options for uid, nanoid/uid and uuid/uid (#1510)
  • pinia-orm: Allow composite key lookup (#1206)
  • pinia-orm: Add namespace option for the store (#1618)
  • pina-orm: Add plugin system (#1603)
  • axios: Create new plugin package for axios (#1603)
  • pinia-orm: Add setModel for Repository (d0cd5e6)
  • pinia-orm: Throw an error when trying to save a list into a 1:1 relationship (#1670)
  • pinia-orm: Add HMR support (dcbc02e)
  • pinia-orm: Composite primary key can now be used with destroy and onDelete (#1671)

🩹 Fixes

  • pinia-orm: Wrong behaviour of $getOriginal (#1576)
  • pinia-orm: Repository pinaStore instance was wrong on STI models (#1618)
  • pinia-orm: Uncaught TypeError: parent.$fields()[key] is undefied when inserting nested data with polymorphic relationships (#1648)

🔥 Performance

  • pinia-orm: Improve lookup performance for huge datasets (#1206)
  • pinia-orm: Improve performance by mutating the state (#1604)

💅 Refactors

  • pinia-orm: useRepo was having the wrong type for repositories (be3c4f4)
  • pinia-orm: Add correct operation for insert (25090ec)
  • pinia-orm: Make nanoid async uuid deprecated (4d1a21e)

📖 Documentation

  • Typo with vuex-orm instead of pinia-orm (#1577)
  • Removed duplicate Relationsihps > Getting Started > Loading Nested Relationship (#1369)
  • Couple of typos (#1183)
  • Typo in docs examples: form -> from (#1590)
  • Broken link or missing reference (#1596)
  • Fixed insert incorrect example (#1628)
  • Update dependencies & fix small display errors (#1627)
  • Adapt STI docs to be more correctly (7c5a23e)

🏡 Chore

  • Update lint rules & packages (be0ca45)
  • Remove lerna for building and just use pnpm (#1618)
  • Change renovate cycle (5284a7b)
  • Remove agolia workflow (43f0dcc)
  • Issue template improvement (#1636)

❤️ Contributors

👍 6🎉 8❤️ 6

pinia-orm@1.7.0

@CodeDredd

September 17, 2023

v1.6.7

🩹 Fixes

  • pinia-orm: Build broken cause of missing files (ecaed0f)

❤️ Contributors

  • Gregor Becker

v1.6.6

🩹 Fixes

  • nuxt: Nuxt 3 throws error on build & dev (#1136)
  • nuxt: Types wrong exported (#1136)

❤️ Contributors

  • Gregor Becker

v1.6.5

🩹 Fixes

  • pinia-orm: Improve Date serialization in Model class (#1121)
  • pinia-orm: $refresh() is not working (#1125)

❤️ Contributors

  • Gregor Becker
  • sergerdn

v1.6.4

🩹 Fixes

  • pinia-orm: DateCast still causing unexpected result (519681c)

❤️ Contributors

  • Gregor Becker

v1.6.3

🩹 Fixes

  • pinia-orm: DateCast with null causes type error with empty object (2caa97a)

❤️ Contributors

  • Gregor Becker

v1.6.2

🩹 Fixes

  • pinia-orm: Shared hydration cache was not working correctly (#1113)
  • pinia-orm: Hooks are not triggering casts(#1113)
  • pinia-orm: new() is not cached in the hydration cache (#1113)
  • pinia-orm: save() results weren't cached in the hydration cache (#1113)

💅 Refactors

  • pinia-orm: use model $getKey for id creation instead of custom logic (#1113)

❤️ Contributors

  • Gregor Becker

v1.6.1

🚀 Enhancements

  • pinia-orm: Add the option for new() not to persist the model (#1107)

📖 Documentation

  • Add target blank to link
  • Fix query examples (d59ad1d)

❤️ Contributors

  • Gregor Becker

v1.6.0 - 🦕

🚀 Enhancements

  • pinia-orm: Add morphToMany relation (#1060)
  • pinia-orm: Pinia actions triggering repo actions (#1066)
  • nuxt: Add nuxt devtools support (#1100)
  • nuxt: Add autoimports with default useRepo (#1100)

🩹 Fixes

  • pinia-orm: Types in hooks were conflicting (#1074)
  • nuxt: Add missing config options (#1100)

🔥 Performance

  • pinia-orm: Shared hydration cache (#1066)

💅 Refactors

  • nuxt: Use nuxt kit resolver instead of node resolver (#1100)

📖 Documentation

  • Fixed syntax of 'Global Lifecycle Hooks' section (#1057)
  • Changed :::tip for ::alert{type='info'} (#1053)
  • Remove not correct await (#1087)
  • Add "what is pinia orm" (4ca4b8e)

🏡 Chore

  • pinia-orm: Resolve conflict with eslint config upgrade (#1092)
  • nuxt: Update build configuration (#1100)
  • Add Sponsorkit (#1097)

❤️ Contributors

  • Gregor Becker
  • Carlos Gamez
👍 2

v1.5.1

🔥 Performance

  • pinia-orm: Improve find speed for huge data (1714d7a)

❤️ Contributors

  • Gregor Becker

v1.5.0 - 🦖

🚀 Enhancements

  • pinia-orm: Support of composite key for some relations (#885)

🩹 Fixes

  • pinia-orm: new doesnt fire creating or created hook (#808)

🔥 Performance

  • pinia-orm: Querying models with belongsToMany relation are extremely slow (#876)
  • pinia-orm: Improve caching for hydrated models #889

📖 Documentation

  • Add missing new to api (#808)

🏡 Chore

  • normalizr: Add unpkg & jsdelivr support(c41f89d)

❤️ Contributors

  • Gregor Becker
👍 1🎉 1

v1.4.0 -🎄- Merry Christmas

🎁 Enhancements

  • pinia-orm: add hasManyThrough relation (#678)
  • pinia-orm: Add the possibility to rollback changed models. Adding $isDirty(), $getOriginal() and $refresh. (#757)

🕯️ Fixes

  • pinis-orm: Update hook not triggered with update method (fb1694f)
  • pinis-orm: @OnDelete on same model attrs leads to undefined error (#754)
  • pinia-orm: Don't delete relations bind with onDelete if hook returns false (3531a06)

🤶 Performance

  • pinia-orm: Improve hydrating check (#679)
  • pinia-orm: Remove JSON.stringfy() for comparing objects (300482d)

☃️ Refactors

  • pinia-orm: Improve typescript handling with piniaStore() (a8628c8)

🎅 Documentation

  • Add some missing model functions to api (ce54b23)

❤️ Contributors

  • Gregor Becker
  • Santa Clause
👍 1❤️ 3

v1.3.0 - 🐲

🚀 Enhancements

  • pinia-orm: Add the option to sort case insensitive with sortBy (#636)

🩹 Fixes

  • pinia-orm: Query constraints with nested relations in m:m relations broken (#625)

💅 Refactors

  • normalizr: Reduce code used by orm (#641)

🔥 Performance

  • pinia-orm: Save hydrated models if not updated (#671)

📖 Documentation

  • Add requirements info for nuxt 2 users (#638)
  • Typo in example of quick-start.md (#652)

❤️ Contributors

  • Gregor Becker
  • yyydevf

v1.2.2

🩹 Fixes

  • pinia-orm: null is casted in DateCast (#565)

📖 Documentation

✅ Tests

  • pinia-orm: Fix number cast test for notNullable (#564)

❤️ Contributors

  • Gregor Becker
  • Thomas Klaas
👍 1

v1.2.1

🩹 Fixes

  • pinia-orm: Delete on cascade doesn't work with n:m relations (#562)

📖 Documentation

  • Fix typos + minor tweaks (#558)

📦 Build

  • Trigger only ci in packages directory (59d55c4)

❤️ Contributors

  • Gregor Becker
  • Paolo Dina

v1.2.0 - 🐉

🚀 Enhancements

  • pinia-orm: Add the possibility to delete by cascade (#529)
  • pinia-orm: Enhance whereIn to support Set as values (#537)
  • pinia-orm: Attributes can now accept closures for default value (#544)
  • pinia-orm: Add simple DateCast (#546)

🩹 Fixes

  • docs: Docs broken with nuxt3.0.0-rc.13 (#543)
  • pinia-orm: Using childRepo (STI) for saving without type defined (#555)

💅 Refactors

  • pinia-orm: Remove unnecessary fallback since config is always set (#555)

📖 Documentation

  • Fixed some broken links (#529)
  • Added missing delete and destroy methods to api (#529)
  • Added decorator example for STI (#555)
  • Fix broken cards on index (bb99b49)

✅ Tests

  • pinia-orm: Add a missing test for throwError (#529)

❤️ Contributors

  • Gregor Becker

v1.1.0 - 🐦

🚀 Enhancements

  • pinia-orm: Add record field to saving hooks (#491)

💅 Refactors

  • pinia-orm: Made all relation class properties public so they can be accessed (#491)

📖 Documentation

  • Updated to current docus version & using new nuxt static generate (#473)
  • Wrong chaining example with groupBy (#482)
  • Correct STI example for simple inhertance (09b9dcf)

📦 Build

  • Removed Algolia CI Crawler since pages are crawled by generate now. (82b9cc4)

✅ Tests

  • pinia-orm: Finish skipped test for error handling (40cf182)

❤️ Contributors

  • Gregor Becker
  • Thomas Klaas
👍 2

🩹 Fixes

  • pinia-orm: pivot are not correctly loaded (#438)

🏡 Chore

  • nuxt: Updated files to new package versions (#438)

❤️ Contributors

  • Gregor Becker
  • Carsten Ruetz

🩹 Fixes

  • pinia-orm: Multiple belongsToMany relations still wrong saved (#373)

❤️ Contributors

  • Gregor Becker

🩹 Fixes

  • pinia-orm: Multiple belongsTo relationships between 2 entities lead to unintended outcome (#369)

❤️ Contributors

  • Gregor Becker

🩹 Fixes

  • pinia-orm: Fallback for "Buffer is not defined" & fix cache config (#360)

❤️ Contributors

  • Gregor Becker

v1.0.0 - 💯

Enjoy a stable and feature rich orm for pinia ! 🍍

🚀 Enhancements

  • pinia-orm: Add an option to make fields hidden (#240)
  • pinia-orm: Add _meta field for models containing metadata (#240)
  • pinia-orm: Add global configuration options (#240)
  • nuxt: Add global configuration options (#240)
  • pinia-orm: Add helper composables for collection (#259)

🩹 Fixes

  • pinia-orm: (where)has queries are not working with 1:1 relations (#342)
  • playground: Remove vue-hako since it breaks with new vueuse version (#343)

💅 Refactors

  • pinia-orm: Renamed internally ModelOption field from mutator to operation (#240)

📖 Documentation

  • Add configuration options to api (#266)
  • Add missing icons (#266)
  • Update readme comparison (#266)
  • Collapse side nav items (#266)

🔥 Performance

  • pinia-orm: Add optional caching for same get requests (#272)

✅ Tests

  • pinia-orm: Add missing tests for better coverage (#257)

❤️ Contributors

  • Gregor Becker
👍 1🎉 2❤️ 2🚀 1

Warning There are slight API changes with this release candidate.

🚀 Enhancements

  • pinia-orm: Add groupBy method to query (#213)
  • pinia-orm: Added bundles for uid libs nanoid & uuid (#215)
  • pinia-orm: Add the possibility to use useRepo outside of setup() (#228)

🩹 Fixes

  • pinia-orm: The set method of casts is not called (#215)
  • pinia-orm: Nuxt 2 has problems with nullish coalescing operator (#228)

💅 Refactors

  • pinia-orm: ⚠️ Moved decorators to pinia-orm/dist/decorators (#185)
  • pinia-orm: ⚠️ Moved casts to pinia-orm/dist/casts (#215)
  • pinia-orm: ⚠️ Removed "string casting" with string, array, number and boolean (#215)
  • pinia-orm: ⚠️ Make field per default nullable(#229)

📖 Documentation

  • Add playground (#157)
  • Add missing load to api (#153)
  • Fix small typo (6f26c40)

🔥 Performance

🏡 Chore

  • pinia-orm: Update package.json for better file imports (ac4dd70)
  • pinia-orm: Improve typings for piniaOptions, useDataStore, useStoreActions and piniaStore (#204)
  • Switch from lerna to lerna-lite for workspace support
  • nuxt: Dependencies updates
  • pinia-orm: Dependencies updates

📦 Build

  • normalizr: Added own normalizr package (#191 )
  • pinia-orm: move from normalizr to @pinia-orm/normalizr (#192)

✅ Tests

❤️ Contributors

  • Gregor Becker

Please refer to CHANGELOG.md for details.

Warning There are slight API changes with this release candidate.

🚀 Enhancements

  • pinia-orm: make in repositories can create now multiple records (#133)
  • pinia-orm: Add retrieved life cycle hook (#145)

🩹 Fixes

  • nuxt: Adept changes from @pinia/nuxt (#150)
  • docs: Invalid layout fluid selected in docs

💅 Refactors

  • pinia-orm: ⚠️ Change PiniaORM.install() to createORM() (902f4c2)
  • pinia-orm: ⚠️ Remove findIn since find does the same (#144)

📖 Documentation

  • Update documentation for nuxt2 (#137)
  • Adding algolia search (#139)

🔥 Performance

🏡 Chore

  • Update release script (0b71a7d)
  • Remove default export in indexes and create build config for cjs (#142)

📦 Build

  • Move to unbuild (#142)

✅ Tests

❤️ Contributors

  • Gregor Becker

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

Please refer to CHANGELOG.md for details.

First release

Please refer to CHANGELOG.md for details.