TinyJoin logoTinyJoin

addEventListener

The overload of this method for the message event type listens for Worker messages.

addEventListener(
  type: "message",
  listener: (event: (
    Omit<MessageEvent<any>, "data"> &
    {data: unknown}
  )) => void,
): void
TypeDescription
type"message"

The message event type.

listener(event: ( Omit<MessageEvent<any>, "data"> & {data: unknown} )) => void

The callback receiving messages from the Worker.

returnsvoid

This has no return value.

Example

import {create} from 'tinyjoin';
import type {WorkerLike} from 'tinyjoin';

const worker: WorkerLike = new Worker(
  new URL('./worker.ts', import.meta.url),
  {type: 'module'},
);

// Count the messages the Worker sends, beside the Client's own listener.
let messages = 0;
worker.addEventListener('message', () => {
  messages++;
});

const db = await create({worker});
console.log(messages > 0);
// -> true
await db.close();

The overload of this method for the messageerror event type listens for message decoding failures.

addEventListener(
  type: "messageerror",
  listener: (event: (
    Omit<MessageEvent<any>, "data"> &
    {data: unknown}
  )) => void,
): void
TypeDescription
type"messageerror"

The messageerror event type.

listener(event: ( Omit<MessageEvent<any>, "data"> & {data: unknown} )) => void

The callback receiving message decoding failures.

returnsvoid

This has no return value.

Example

import {create} from 'tinyjoin';
import type {WorkerLike} from 'tinyjoin';

const worker: WorkerLike = new Worker(
  new URL('./worker.ts', import.meta.url),
  {type: 'module'},
);

// Report a message from the Worker that the page could not decode.
worker.addEventListener('messageerror', () => {
  console.error('A message from the Worker could not be decoded.');
});

const db = await create({worker});
await db.close();

The overload of this method for the error event type listens for Worker runtime failures.

addEventListener(
  type: "error",
  listener: (event: ErrorEvent) => void,
): void
TypeDescription
type"error"

The error event type.

listener(event: ErrorEvent) => void

The callback receiving Worker runtime failures.

returnsvoid

This has no return value.

Example

import {create} from 'tinyjoin';
import type {WorkerLike} from 'tinyjoin';

const worker: WorkerLike = new Worker(
  new URL('./worker.ts', import.meta.url),
  {type: 'module'},
);

// Report an error the Worker did not catch, such as a script that failed
// to load.
worker.addEventListener('error', (event) => {
  console.error('The TinyJoin Worker failed:', event.message);
});

const db = await create({worker});
await db.close();