UNPKG

@berish/rfp

Version:

Binary secure transport organization protocol for peer communication using function fingerprints

35 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createPeerStore = void 0; const stateful_1 = require("@berish/stateful"); const methods_1 = require("./methods"); function createPeerStore(peer, storeName, storeType, store) { if (!peer) throw new TypeError('createPeerStore peer is null'); if (!storeName) throw new TypeError('createPeerStore storeName is null'); if (!storeType) throw new TypeError('createPeerStore storeType is null'); if (!store) throw new TypeError('createPeerStore store is null'); const scope = stateful_1.getScope(store); scope.storeName = storeName; scope.peer = peer; scope.storeType = storeType; scope.logger = scope.peer.logger('store')(`${scope.storeName} ${scope.storeType}`); scope.isConnected = false; scope.connect = () => methods_1.connect(store); scope.disconnect = () => methods_1.disconnect(store); scope.sync = () => methods_1.sync(store); scope.reactionSetValueRemote = (callback) => methods_1.reactionSetValueRemote(store, callback); scope.reactionSetStateRemote = (callback) => methods_1.reactionSetStateRemote(store, callback); scope.setValueRemote = (props, value) => methods_1.setValueRemote(store, props, value); scope.setStateRemote = (state) => methods_1.setStateRemote(store, state); scope.peer = peer; scope.peer.emitter.on('connect.start', () => scope.connect()); scope.peer.emitter.on('connect.finish', () => scope.sync()); scope.peer.emitter.on('disconnect.start', () => scope.disconnect()); return store; } exports.createPeerStore = createPeerStore; //# sourceMappingURL=createPeerStore.js.map