@berish/rfp
Version:
Binary secure transport organization protocol for peer communication using function fingerprints
35 lines • 1.7 kB
JavaScript
;
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