UNPKG

@vyer-technologies/relay-offline

Version:

Forked from @wora Relay Offline Capabilities

40 lines 1.52 kB
import { IDBStorage } from '@vyer-technologies/cache-persist/idbstorage.js'; import { Store, RecordSource } from '@vyer-technologies/relay-store'; import { Environment } from './Environment'; class EnvironmentIDB { static create(config, idbOptions = {}, recordSourceOptions = {}, storeOptions = {}, offlineStoreOptions = {}) { const { options, persistOptions } = storeOptions; const idbStore = { serialize: false, prefix: null, ...persistOptions, }; const idbRecords = { serialize: false, prefix: null, ...recordSourceOptions, }; const idbOffline = { serialize: false, prefix: null, ...offlineStoreOptions, }; if (typeof window !== 'undefined') { const { name = 'relay', onUpgrade, version } = idbOptions; const idbStorages = IDBStorage.create({ name, storeNames: ['store', 'records', 'offline'], onUpgrade, version, }); idbStore.storage = idbStorages[0]; idbRecords.storage = idbStorages[1]; idbOffline.storage = idbStorages[2]; } const recordSource = new RecordSource(idbRecords); const store = new Store(recordSource, idbStore, options); return new Environment({ ...config, store }, idbOffline); } } export default EnvironmentIDB; //# sourceMappingURL=EnvironmentIDB.js.map