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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@composy/storage-vue

v0.0.1

Published

LDesign 存储管理 - Vue 3 适配器

Readme

@composy/storage-vue

@composy/storage-vue 为 @composy/storage-core 提供 Vue 侧接入能力。

能力范围

  • 原生 Vue plugin:createStoragePlugin
  • @composy/engine-core plugin:createStorageEnginePlugin
  • composables
    • useStorage
    • useLocalStorage
    • useSessionStorage
    • useCookie
    • useIndexedDB

设计约束

  • 原生 Vue plugin 和 engine plugin 共用同一个 runtime 安装链。
  • composable 默认优先复用已注入的 StorageManager;没有注入时再退回到对应介质的共享 manager。
  • useIndexedDB 在普通 Ref<T> 基础上额外提供 ready(),方便等待异步初始化。

原生 Vue plugin

import { createStoragePlugin } from '@composy/storage-vue'
import { createApp } from 'vue'
import App from './App.vue'

const app = createApp(App)

app.use(createStoragePlugin({
  prefix: 'demo',
  defaultTTL: 60_000,
}))

app.mount('#app')

安装后会提供:

  • provide(STORAGE_MANAGER_SYMBOL, manager)
  • provide('storage', manager)
  • provide('storageManager', manager)
  • provide('ldesign-storage', manager)
  • app.config.globalProperties.$storage

engine plugin

import { createStorageEnginePlugin } from '@composy/storage-vue'

engine.use(createStorageEnginePlugin({
  name: 'storage',
  prefix: 'demo',
}))

当 engine 已经创建 Vue app 时,plugin 会把 runtime 安装到 app 并同步写入 engine state;如果 app 尚未创建,会等待 app:created 后再完成绑定。

composables

useStorage

import { LocalStorageAdapter } from '@composy/storage-core'
import { useStorage } from '@composy/storage-vue'

const state = useStorage(
  'draft',
  '',
  new LocalStorageAdapter(),
  {
    prefix: 'demo',
    ttl: 10_000,
    syncTabs: true,
  },
)

console.info(state.value)

useLocalStorage

const username = useLocalStorage('username', 'guest', {
  prefix: 'demo',
  syncTabs: true,
})

console.info(username.value)

useCookie

const token = useCookie('token', '', {
  path: '/',
  secure: true,
  sameSite: 'lax',
})

console.info(token.value)

useIndexedDB

const history = useIndexedDB('history', [], {
  prefix: 'demo',
  databaseName: 'demo-storage',
})

await history.ready()

同步规则

  • 同一应用内的多处读写,统一通过 StorageManager 事件保持同步。
  • syncTabs: true 当前只对能拿到浏览器原生 Storage 实例的适配器生效,也就是 localStorage / sessionStorage。
  • cookie 和 indexedDB 目前不会额外创建跨标签页广播通道。