@vertexvis/rollup-plugin-web-workers
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

@vertexvis/rollup-plugin-web-workers

A Rollup plugin that will bundle web workers into a module. Intended to be used with @vertexvis/web-workers.

Install

// Yarn
yarn add --dev @vertexvis/rollup-plugin-web-workers

// NPM
npm install --save-dev @vertexvis/rollup-plugin-web-workers

Usage

Worker

// ./worker.ts
import { defineWorker } from '@vertexvis/web-workers';

export type AddFn = (a: number, b: number) => Promise<number>;

const add: AddFn = async (a, b) => {
  return a + b;
}

defineWorker(add);

Entry

// ./main.ts
import type { AddFn } from './worker';
import { loadWorker } from 'worker:./worker';

async function main(): Promise<void> {
  const { spawnWorker } = await loadWorker<AddFn>();

  const add = await spawnWorker();
  const sum = await add(1, 2)
  console.log('sum', sum);
}

main();

Rollup Config

import resolve from '@rollup/plugin-node-resolve';
import typescript2 from 'rollup-plugin-typescript2';
import { terser } from 'rollup-plugin-terser';
import workers from '@vertexvis/rollup-plugin-web-workers';

export default {
  input: 'src/main.ts',
  output: {
    dir: './dist',
    format: 'esm',
  },
  plugins: [
    resolve(),
    workers({
      // Workers are bundled separately. Pass a list of plugins to use when
      // bundling the worker.
      plugins: [resolve(), typescript(), terser()]
    }),
    typescript2(),
  ]
}

/@vertexvis/rollup-plugin-web-workers/

    Package Sidebar

    Install

    npm i @vertexvis/rollup-plugin-web-workers

    Weekly Downloads

    9

    Version

    0.1.0

    License

    MIT

    Unpacked Size

    30.2 kB

    Total Files

    8

    Last publish

    Collaborators

    • danschultz-vertex
    • jdm717
    • joshskinner-vertex
    • ci-vertex