UNPKG

@ceramicnetwork/core

Version:

Typescript implementation of the Ceramic protocol

25 lines 1.46 kB
import { StreamUpdater } from '../stream-loading/stream-updater.js'; import { StreamLoader } from '../stream-loading/stream-loader.js'; import { AnchorTimestampExtractor } from '../stream-loading/anchor-timestamp-extractor.js'; import { TipFetcher } from '../stream-loading/tip-fetcher.js'; import { LogSyncer } from '../stream-loading/log-syncer.js'; import { StateManipulator } from '../stream-loading/state-manipulator.js'; import { empty } from 'rxjs'; const noopPubsubQuerier = { queryNetwork(streamId) { return empty(); }, }; export function makeStreamLoaderAndUpdater(logger, dispatcher, anchorValidator, api, streamHandlers) { const anchorTimestampExtractor = new AnchorTimestampExtractor(logger, dispatcher, anchorValidator); if (!dispatcher.messageBus) { logger.warn("No pubsub querier detected, won't be able to load tips from the network"); } const tipFetcher = new TipFetcher(dispatcher.messageBus ? dispatcher.messageBus : noopPubsubQuerier); const logSyncer = new LogSyncer(dispatcher); const stateManipulator = new StateManipulator(logger, streamHandlers, logSyncer, api); const streamLoader = new StreamLoader(logger, tipFetcher, logSyncer, anchorTimestampExtractor, stateManipulator); const streamUpdater = new StreamUpdater(logger, dispatcher, logSyncer, anchorTimestampExtractor, stateManipulator); return [streamLoader, streamUpdater]; } //# sourceMappingURL=stream-loading.js.map