@usirin/spellcaster
Version:
Remote execution of spells defined in spellbooks
29 lines (28 loc) • 991 B
JavaScript
import * as __WEBPACK_EXTERNAL_MODULE__usirin_forge_181b4736__ from "@usirin/forge";
import * as __WEBPACK_EXTERNAL_MODULE__transport_js_83a5c232__ from "./transport.js";
function serve(spellbook, transport) {
return transport.incoming.pipeThrough((0, __WEBPACK_EXTERNAL_MODULE__transport_js_83a5c232__.createSpellbookStream)(spellbook)).pipeTo(transport.outgoing);
}
const createSpellbookServer = (0, __WEBPACK_EXTERNAL_MODULE__usirin_forge_181b4736__.factory)("server", (spellbook, options)=>{
let running = false;
return {
start () {
if (running) return;
running = true;
serve(spellbook, options.transport);
},
stop () {
running = false;
},
isRunning () {
return running;
},
getSpellbook () {
return spellbook;
},
getTransport () {
return options.transport;
}
};
});
export { createSpellbookServer, serve };