How to use the @effectful/es-persist-serialization.any function in @effectful/es-persist-serialization

To help you get started, we’ve selected a few @effectful/es-persist-serialization examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github awto / effectfuljs / samples / persist-counters / fork.js View on Github external
return async function* fork(input, dispatch) {
    let cur = 0;
    const threads = new Map();
    const iter = forkMain(input, dispatch, threads, transducer);
    const main = { iter, task: iter.next() };
    const suspended = [];
    try {
      for (;;) {
        const i = await R.any([main, ...threads.values()].map(forkCont));
        if (i.done) {
          if (i === main) return i.value;
          threads.delete(i.key);
          i.source.stop();
          await i.iter.return();
          continue;
        }
        i.task = i.iter.next();
        if (!i.value) continue;
        if (i === main) {
          yield i.value;
        } else {
          if (i.value.type === "FLUSH") {
            if (i.value.awaiting) {
              i.value.awaiting.delete(i.key);
              if (i.value.awaiting.size) continue;