vuex-composition-helpers
Version:
Helpers to use Vuex store form Vue Composition API
113 lines • 4.09 kB
JavaScript
import { computed } from '@vue/composition-api';
import { computedGetter, getAction, getMutation, getStoreFromInstance, useMapping } from './util';
function computedState(store, prop) {
return computed(() => store.state[prop]);
}
function computedNamespacedState(store, namespace, prop) {
let module = namespace.split('/').reduce((module, key) => module[key], store.state);
return computed(() => module[prop]);
}
export function useStore() {
return getStoreFromInstance();
}
export function useState(storeOrNamespace, namespaceOrMap, map) {
let realStore, realNamespace, realMap;
if (arguments.length >= 3) {
realStore = storeOrNamespace || getStoreFromInstance();
realNamespace = namespaceOrMap || null;
realMap = map || null;
}
else if (arguments.length === 2) {
if (typeof storeOrNamespace === 'string') {
realStore = getStoreFromInstance();
realNamespace = storeOrNamespace || null;
}
else {
realStore = storeOrNamespace || getStoreFromInstance();
realNamespace = null;
}
realMap = namespaceOrMap || null;
}
else {
realStore = getStoreFromInstance();
realNamespace = null;
realMap = storeOrNamespace || null;
}
return useMapping(realStore, realNamespace, realMap, !realNamespace ? computedState : computedNamespacedState);
}
export function useGetters(storeOrNamespace, namespaceOrMap, map) {
let realStore, realNamespace, realMap;
if (arguments.length >= 3) {
realStore = storeOrNamespace || getStoreFromInstance();
realNamespace = namespaceOrMap || null;
realMap = map || null;
}
else if (arguments.length === 2) {
if (typeof storeOrNamespace === 'string') {
realStore = getStoreFromInstance();
realNamespace = storeOrNamespace || null;
}
else {
realStore = storeOrNamespace || getStoreFromInstance();
realNamespace = null;
}
realMap = namespaceOrMap || null;
}
else {
realStore = getStoreFromInstance();
realNamespace = null;
realMap = storeOrNamespace || null;
}
return useMapping(realStore, realNamespace, realMap, computedGetter);
}
export function useMutations(storeOrNamespace, namespaceOrMap, map) {
let realStore, realNamespace, realMap;
if (arguments.length >= 3) {
realStore = storeOrNamespace || getStoreFromInstance();
realNamespace = namespaceOrMap || null;
realMap = map || null;
}
else if (arguments.length === 2) {
if (typeof storeOrNamespace === 'string') {
realStore = getStoreFromInstance();
realNamespace = storeOrNamespace || null;
}
else {
realStore = storeOrNamespace || getStoreFromInstance();
realNamespace = null;
}
realMap = namespaceOrMap || null;
}
else {
realStore = getStoreFromInstance();
realNamespace = null;
realMap = storeOrNamespace || null;
}
return useMapping(realStore, realNamespace, realMap, getMutation);
}
export function useActions(storeOrNamespace, namespaceOrMap, map) {
let realStore, realNamespace, realMap;
if (arguments.length >= 3) {
realStore = storeOrNamespace || getStoreFromInstance();
realNamespace = namespaceOrMap || null;
realMap = map || null;
}
else if (arguments.length === 2) {
if (typeof storeOrNamespace === 'string') {
realStore = getStoreFromInstance();
realNamespace = storeOrNamespace || null;
}
else {
realStore = storeOrNamespace || getStoreFromInstance();
realNamespace = null;
}
realMap = namespaceOrMap || null;
}
else {
realStore = getStoreFromInstance();
realNamespace = null;
realMap = storeOrNamespace || null;
}
return useMapping(realStore, realNamespace, realMap, getAction);
}
//# sourceMappingURL=global.js.map