diff --git a/examples/grid/src/index.ts b/examples/grid/src/index.ts index 6387d25a..86e0d9e9 100644 --- a/examples/grid/src/index.ts +++ b/examples/grid/src/index.ts @@ -1,4 +1,4 @@ -import { DRPNode } from "@ts-drp/node"; +import { DRPNode, DRPNodeConfig } from "@ts-drp/node"; import { enableTracing, IMetrics, OpentelemetryMetrics } from "@ts-drp/tracer"; import { Grid } from "./objects/grid"; @@ -6,27 +6,43 @@ import { render, enableUIControls, renderInfo } from "./render"; import { gridState } from "./state"; import { getColorForPeerId } from "./util/color"; -export function getNetworkConfigFromEnv() { +export function getNetworkConfigFromEnv(): DRPNodeConfig { const hasBootstrapPeers = Boolean(import.meta.env.VITE_BOOTSTRAP_PEERS); const hasDiscoveryInterval = Boolean(import.meta.env.VITE_DISCOVERY_INTERVAL); const hasEnv = hasBootstrapPeers || hasDiscoveryInterval; - const config: Record = { - browser_metrics: true, + const config: DRPNodeConfig = { + network_config: { + browser_metrics: true, + }, }; if (!hasEnv) { + config.network_config = { + ...config.network_config, + bootstrap_peers: [ + "/ip4/127.0.0.1/tcp/50000/ws/p2p/12D3KooWC6sm9iwmYbeQJCJipKTRghmABNz1wnpJANvSMabvecwJ", + ], + browser_metrics: true, + }; return config; } if (hasBootstrapPeers) { - config.bootstrap_peers = import.meta.env.VITE_BOOTSTRAP_PEERS.split(","); + config.network_config = { + ...config.network_config, + bootstrap_peers: import.meta.env.VITE_BOOTSTRAP_PEERS.split(","), + }; } if (hasDiscoveryInterval) { - config.pubsub = { - peer_discovery_interval: import.meta.env.VITE_DISCOVERY_INTERVAL, + config.network_config = { + ...config.network_config, + pubsub: { + ...config.network_config?.pubsub, + peer_discovery_interval: import.meta.env.VITE_DISCOVERY_INTERVAL, + }, }; } @@ -139,7 +155,7 @@ async function main() { } const networkConfig = getNetworkConfigFromEnv(); - gridState.node = new DRPNode(networkConfig ? { network_config: networkConfig } : undefined); + gridState.node = new DRPNode(networkConfig); await gridState.node.start(); await gridState.node.networkNode.isDialable(async () => { console.log("Started node", import.meta.env); diff --git a/examples/grid/src/objects/grid.ts b/examples/grid/src/objects/grid.ts index e55cce70..cdbb1435 100644 --- a/examples/grid/src/objects/grid.ts +++ b/examples/grid/src/objects/grid.ts @@ -20,6 +20,10 @@ export class Grid implements DRP { } moveUser(userId: string, direction: string): void { + this._moveUser(userId, direction); + } + + private _moveUser(userId: string, direction: string): void { const userColorString = [...this.positions.keys()].find((u) => u.startsWith(`${userId}:`)); if (userColorString) { const position = this.positions.get(userColorString); diff --git a/packages/object/src/index.ts b/packages/object/src/index.ts index ea4f369f..514f588b 100644 --- a/packages/object/src/index.ts +++ b/packages/object/src/index.ts @@ -153,14 +153,8 @@ export class DRPObject implements DRPObjectBase { if ((propKey as string).startsWith("query_")) { return Reflect.apply(applyTarget, thisArg, args); } - const callerName = new Error().stack?.split("\n")[2]?.trim().split(" ")[1]; - if (callerName?.startsWith("DRPObject.resolveConflicts")) { - return Reflect.apply(applyTarget, thisArg, args); - } - if (!callerName?.startsWith("Proxy.")) { - return obj.callFn(fullPropKey, args, vertexType); - } - return Reflect.apply(applyTarget, thisArg, args); + + return obj.callFn(fullPropKey, args, vertexType); }, }); }