setupDevtoolsPlugin,
} from '@vue/devtools-api'
import { App } from 'vue'
-import { GenericStore } from './types'
+import { GenericStore, GettersTree, StateTree } from './types'
function formatDisplay(display: string) {
return {
const fields: CustomInspectorState[string] = [
{ editable: false, key: 'id', value: formatDisplay(store.$id) },
{ editable: true, key: 'state', value: store.$state },
+ {
+ editable: false,
+ key: 'getters',
+ value: (store._getters || []).reduce((getters, key) => {
+ getters[key] = store[key]
+ return getters
+ }, {} as GettersTree<StateTree>),
+ },
]
return fields
// created.
Object.defineProperty(store, '$state', descriptor)
+ if (IS_CLIENT && __BROWSER__ && __DEV__) {
+ store._getters = Object.keys(getters)
+ }
+
// apply all plugins
pinia._p.forEach((extender) => {
assign(store, extender({ store, app: pinia._a, pinia, options }))