Skip to content

🦕 Deno module to translate Worker's system of messages into ReadableStream and WritableStream

License

Notifications You must be signed in to change notification settings

lambdalisue/deno-workerio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

workerio-deno

deno doc Test

Deno module to translate Worker's system of messages into Reader and Writer.

Note that WorkerReader and WorkerWriter access Deno namespace thus Using Deno in worker must be enabled.

Example

Server

import {
  WorkerReader,
  WorkerWriter,
} from "https://deno.land/x/workerio/mod.ts";

const decoder = new TextDecoder();
const encoder = new TextEncoder();

const worker = new Worker(
  new URL("./worker.ts", import.meta.url).href,
  {
    type: "module",
    // NOTE:
    // WorkerReader/WorkerWriter need to access 'Deno' namespace.
    deno: {
      namespace: true,
    },
  },
);

const reader = new WorkerReader(worker);
const writer = new WorkerWriter(worker);

await writer.write(encoder.encode("Hello"));
await writer.write(encoder.encode("World"));

for await (const data of Deno.iter(reader)) {
  const text = decoder.decode(data);
  console.log(text);
}

Worker

import {
  WorkerReader,
  WorkerWriter,
} from "https://deno.land/x/workerio/mod.ts";

const decoder = new TextDecoder();
const encoder = new TextEncoder();

async function main(): Promise<void> {
  // deno-lint-ignore no-explicit-any
  const worker = self as any;
  const reader = new WorkerReader(worker);
  const writer = new WorkerWriter(worker);

  for await (const data of Deno.iter(reader)) {
    const text = decoder.decode(data);
    await writer.write(encoder.encode(`!!! ${text} !!!`));
  }
}

main().catch((e) => console.error(e));

License

The code follows MIT license written in LICENSE. Contributors need to agree that any modifications sent in this repository follow the license.

About

🦕 Deno module to translate Worker's system of messages into ReadableStream and WritableStream

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •