npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@nuxtjs/universal-storage

v0.5.9

Published

Universal Storage Utilities for Nuxt

Downloads

6,841

Readme

Nuxt Universal Storage Module

npm (scoped with tag) npm GitHub Actions Codecov Dependencies js-standard-style

Universal Storage Utilities for Nuxt.js based on @nuxt-community/auth-module

📖 Release Notes

Setup

  • Add @nuxtjs/universal-storage dependency using yarn or npm to your project
yarn add @nuxtjs/universal-storage

OR

npm install @nuxtjs/universal-storage --save
  • Add @nuxtjs/universal-storage to the modules section of your nuxt.config.js file
{
  modules: [
    '@nuxtjs/universal-storage',
  ],

  storage: {

  }
}

Usage

Options

Options are defined as following:

 storage: {
  vuex, // boolean or {namespace}
  localStorage, // boolean or {prefix}
  cookie, // boolean or {prefix, options}
  initialState,  // Object {}
  ignoreExceptions //
 }

and default to the following values:

 {
  vuex: {
    namespace: 'storage'
  },
  cookie: {
    prefix: '',
    options: {
      path: '/'
    }
  },
  localStorage: {
    prefix: ''
  },
  ignoreExceptions: false,
}

Full synchronise on start with initialState as default

Since version 0.4.0 this module allows full state synchronisation with cookies, localStorage and initialState as a default value. That allows for a very neat usage pattern: For example, if you have an initialState like the following in your nuxt.config.js file:

  storage: {
    initialState: { testParam: false }
  }

then in my component I can simply declare (with decorators)

  @State(s => s.storage.testParam)
  testParam

or (with mapState)

  computed: mapState({
    testParam: s => s.storage.testParam
  })

Afterwards you can get the computed property testParam with whatever value it had in your last session and on change you just have to call this.$storage.setUniversal("testParam", newVal) to get the new value saved.

Hidden settings (private state)

Private state is suitable to keep information not being exposed to the Vuex store. This helps prevent stealing tokens from the SSR response HTML.

If the key name starts with _ then that value is kept separate in the memory storage and not exposed to the Vuex store like the rest of the values.

For example:

  $storage.setState("_password", "alpha1")

Api

  • $storage.getUniversal(key)

  • $storage.setUniversal(key, value)

  • $storage.syncUniversal(key, defaultValue)

  • $storage.removeUniversal(key)

  • $storage.getState(key)

  • $storage.setState(key, value)

  • $storage.removeState(key)

  • $storage.watchState(key, fn)

  • $storage.getLocalStorage(key)

  • $storage.setLocalStorage(key, value)

  • $storage.removeLocalStorage(key)

  • $storage.getCookies()

  • $storage.getCookie(key)

  • $storage.setCookie(key, value)

  • $storage.removeCookie(key)

Development

  • Clone this repository
  • Install dependencies using yarn install or npm install
  • Start development server using yarn run dev or npm run dev
  • Point your browser to http://localhost:3000

Roadmap

  • Add Encryption
  • Universal Session Handling

License

MIT License