khamba
Version:
A cli tool for sharing files through local network.
36 lines (35 loc) • 1.25 kB
JavaScript
import { deepMap } from 'nanostores';
export const $discoveredPeers = deepMap({});
export const addDiscoveredPeer = (newPeer) => {
const currDiscoveredPeers = $discoveredPeers.get();
if (currDiscoveredPeers[newPeer.id]) {
return false;
}
$discoveredPeers.set({ ...currDiscoveredPeers, [newPeer.id]: newPeer });
return true;
};
export const removeDiscoveredPeer = (id) => {
const currDiscoveredPeers = $discoveredPeers.get();
if (currDiscoveredPeers.hasOwnProperty(id)) {
const updatedPeers = { ...currDiscoveredPeers };
delete updatedPeers[id];
$discoveredPeers.set(updatedPeers);
}
};
export const $connectedPeers = deepMap({});
export const addConnectedPeer = (newPeer) => {
const currConnectedPeers = $connectedPeers.get();
if (currConnectedPeers[newPeer.id]) {
return false;
}
$connectedPeers.set({ ...currConnectedPeers, [newPeer.id]: newPeer });
return true;
};
export const removeConnectedPeer = (id) => {
const currConnectedPeers = $connectedPeers.get();
if (currConnectedPeers.hasOwnProperty(id)) {
const updatedPeers = { ...currConnectedPeers };
delete updatedPeers[id];
$connectedPeers.set(updatedPeers);
}
};