New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ava-typescript-worker

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ava-typescript-worker

🪄 register shared Typescript workers with AVA

  • 2.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.5K
decreased by-50.89%
Maintainers
1
Weekly downloads
 
Created
Source

ava-typescript-worker

AVA has a really cool feature called shared workers.

But when using TypeScript and AVA with on-the-fly transpilation with something like tsx, loaded worker files are not transpiled--meaning you're limited to just using Javascript.

This library fixes that and allows you to register and load TypeScript workers.

Installation

npm install ava-typescript-worker --save-dev

or

yarn add ava-typescript-worker --dev

Usage

For the most part, shared workers behave identically with a few differences.

Here's an example of what a worker might look like:

test.ts:

import test from "ava"
import { registerSharedTypeScriptWorker } from "ava-typescript-worker"
import path from "path"

const worker = registerSharedTypeScriptWorker({
  filename: path.resolve("echo.worker.ts"),
})

test("is worker available", async (t) => {
  await worker.available()
  t.pass()
})

echo.worker.ts:

import { SharedWorker } from "ava/plugin"

const echo = async (protocol: SharedWorker.Protocol) => {
  for await (const msg of protocol.subscribe()) {
    msg.reply(msg.data)
  }
}

export default echo

Notice that:

  • supportedProtocols cannot be passed as an option to registerSharedTypeScriptWorker()
  • Workers don't need to do protocol negotiation with await negotiateProtocol(["ava-4"]).ready()

This is because TypeScript files are loaded through a Javascript "proxy" loader, which handles protocol negotiations out of necessity.

Keywords

FAQs

Package last updated on 25 Jun 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc