UNPKG

@nvs-pinia/client

Version:

Client side pinia composable

34 lines (30 loc) 1.37 kB
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