Home Reference Source

core/datastore/processors/processor-factory.js

import { repositoryProvider } from '../repositories';
import { OfflineDataProcessor } from './offline-data-processor';
import { NetworkDataProcessor } from './network-data-processor';
import { CacheOfflineDataProcessor } from './cache-offline-data-processor';
import { syncManagerProvider } from '../sync';

function getOfflineProcessor() {
  const syncManager = syncManagerProvider.getSyncManager();
  return new OfflineDataProcessor(syncManager);
}

function getNetworkProcessor() {
  return new NetworkDataProcessor();
}

function getCacheOfflineDataProcessor() {
  const networkRepo = repositoryProvider.getNetworkRepository();
  const syncManager = syncManagerProvider.getSyncManager();
  return new CacheOfflineDataProcessor(syncManager, networkRepo);
}

/**
 * @private
 */
export const processorFactory = {
  getOfflineProcessor,
  getNetworkProcessor,
  getCacheOfflineDataProcessor
};