UNPKG

@bedard/hexchess-engine

Version:

A game engine for Gliński's hexagonal chess

27 lines (26 loc) 934 B
/** execute a command with the engine worker */ export function execute(worker, command, options = {}) { const id = crypto.randomUUID(); return new Promise((resolve) => { const listener = (evt) => { if (evt.data.id === id && typeof evt.data.response === 'object') { worker.removeEventListener('message', listener); resolve({ command, options: evt.data.options, response: evt.data.response, }); } }; worker.addEventListener('message', listener); worker.postMessage({ command, id, options }); }); } /** evaluate a position */ export function evaluate(worker, options) { return execute(worker, 'hexchess/evaluate', options); } /** test for a connection with the engine worker */ export function ping(worker) { return execute(worker, 'hexchess/ping'); }