Code Monkey home page Code Monkey logo

Comments (6)

prazdevs avatar prazdevs commented on June 25, 2024

The plugin only supports synchronous storages to match pinia's mutation system. This is indeed one of the limitation.

from pinia-plugin-persistedstate.

Stanzilla avatar Stanzilla commented on June 25, 2024

The plugin only supports synchronous storages to match pinia's mutation system. This is indeed one of the limitation.

Can you suggest a migration path for users coming from the abandoned -2 version then?

from pinia-plugin-persistedstate.

prazdevs avatar prazdevs commented on June 25, 2024

Well I didnt make the -2.

This plugin has only ever officially supported synchronous storages as mentioned in several issues (#17 #111 #214).
You can use pinia actions for this, or the hooks, or still use non-awaited functions in the storage, but may experience side effects.

from pinia-plugin-persistedstate.

Stanzilla avatar Stanzilla commented on June 25, 2024

Well I didnt make the -2.

This plugin has only ever officially supported synchronous storages as mentioned in several issues (#17 #111 #214). You can use pinia actions for this, or the hooks, or still use non-awaited functions in the storage, but may experience side effects.

Oh yeah, I'm aware, I was just wondering if you have a suggestion for a replacement path, I'll look at actions but that looked like I have to have those defined for every store instead of globally, thanks!

from pinia-plugin-persistedstate.

Stanzilla avatar Stanzilla commented on June 25, 2024

Well I didnt make the -2.
This plugin has only ever officially supported synchronous storages as mentioned in several issues (#17 #111 #214). You can use pinia actions for this, or the hooks, or still use non-awaited functions in the storage, but may experience side effects.

Oh yeah, I'm aware, I was just wondering if you have a suggestion for a replacement path, I'll look at actions but that looked like I have to have those defined for every store instead of globally, thanks!

Would be cool if you could do something like this:

pinia.use(
    createPersistedState({
      actions: {
        getItem: async (key) => {
          return getStore(key);
        },
        setItem: async (key, value) => {
          return setStore(key, value);
        },
        removeItem: async (key) => {
          return deleteStore(key);
        },
      },
    }),
  );

from pinia-plugin-persistedstate.

prazdevs avatar prazdevs commented on June 25, 2024

Due to the way the plugin behaves and how pinia handles it, synchronozing data from async sources is out of the scope of the plugin. My advice would be to have calls done on app startup then calling stores to update the data. That would be the safest way without risking race conditions having async calls in sync functions.

Closing this 😌

from pinia-plugin-persistedstate.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.