@nvs-pinia/client
Version:
Client side pinia composable
34 lines (30 loc) • 1.37 kB
JavaScript
import { createPinia } from 'pinia';
import { syliusApiRoutes, authenticationRoutes, createAPI, useAPI, useStoreByName, usePersistedState } from '@nvs-pinia/common';
const BASE_URL = window.location.href;
const API_BASE = 'api';
const ENDPOINTS = Object.assign(Object.assign({ API_BASE_URL: `${BASE_URL}/${API_BASE}`, BASE_URL }, syliusApiRoutes), authenticationRoutes);
// Vendor
const BUNDLE_NAME = '🍍 NVS Pinia Collection client bundle';
const usePiniaCollection = (options) => {
const { api: apiOptions, namespace = 'nvs', persist } = options || {};
const { baseURL = ENDPOINTS.API_BASE_URL, endpoints: customEndpoints, locale, onSessionExpired, } = apiOptions || {};
const pinia = createPinia();
const api = createAPI({
baseURL,
locale,
onSessionExpired,
});
pinia.use(useAPI({
api,
endpoints: Object.assign(Object.assign({}, ENDPOINTS), customEndpoints),
}));
pinia.use(useStoreByName);
if (persist) {
pinia.use(usePersistedState(Object.assign(Object.assign({}, (typeof persist === 'object' ? persist : {})), { namespace, storage: typeof persist === 'object' && 'storage' in persist
? persist.storage
: window.localStorage })));
}
return pinia;
};
export { BUNDLE_NAME, usePiniaCollection };
//# sourceMappingURL=index.esm.js.map