{"id":20869,"library":"workerloader-jest-transformer","title":"workerloader-jest-transformer","description":"A Jest transformer for Webpack worker-loader that enables testing Web Workers with Jest. This package transforms worker files (matched by regex) into mock workers that emulate the Worker API, allowing tests to run in Node.js without a browser environment. Inspired by jsdom-worker. Current version 0.1.0 is unstable and experimental; the project is seeking maintainers. Key differentiators: specifically designed for worker-loader, uses a lightweight mock with terminate/close semantics.","status":"maintenance","version":"0.1.0","language":"javascript","source_language":"en","source_url":"https://github.com/astagi/workerloader-jest-transformer","tags":["javascript","jest","worker","utility","testing","tool","transformer","tdd"],"install":[{"cmd":"npm install workerloader-jest-transformer","lang":"bash","label":"npm"},{"cmd":"yarn add workerloader-jest-transformer","lang":"bash","label":"yarn"},{"cmd":"pnpm add workerloader-jest-transformer","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required for transforming worker files with Babel","package":"@babel/core","optional":false}],"imports":[{"note":"This package is a Jest transformer, not a library you import. Configure it in your Jest transform map.","wrong":"const transformer = require('workerloader-jest-transformer'); // not used directly","symbol":"workerloader-jest-transformer","correct":"/* No import; configure in jest config */"}],"quickstart":{"code":"// jest.config.js\nmodule.exports = {\n  transform: {\n    '^.+\\\\.worker.[t|j]sx?$': 'workerloader-jest-transformer'\n  }\n};\n\n// src/example.worker.js\nself.onmessage = function(e) {\n  postMessage(e.data * 2);\n};\n\n// __tests__/example.test.js\nconst Worker = require('worker-loader!../src/example.worker.js');\ntest('worker doubles number', (done) => {\n  const worker = new Worker();\n  worker.onmessage = (e) => {\n    expect(e.data).toBe(4);\n    done();\n  };\n  worker.postMessage(2);\n});","lang":"javascript","description":"Shows how to configure jest transform and test a web worker that doubles a number."},"warnings":[{"fix":"Consider alternatives like jsdom-worker or manual worker mocking for production.","message":"High experimental state: not stable, lacking tests, and may change API without notice.","severity":"breaking","affected_versions":"0.x"},{"fix":"Fork the repository or migrate to maintained alternatives.","message":"Package maintainers wanted; project may be abandoned if no maintainers step up.","severity":"deprecated","affected_versions":"*"},{"fix":"Ensure your webpack config also includes worker-loader for non-test builds.","message":"Requires worker-loader in webpack config for the original code, but the transformer only works with Jest transform.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"npm install --save-dev workerloader-jest-transformer","cause":"Package not installed or Jest transform path misspelled.","error":"Cannot find module 'workerloader-jest-transformer'"},{"fix":"Ensure transform regex in jest config matches your worker files, e.g., '^.+\\\\.worker.[t|j]sx?$'","cause":"Worker file not matching the transform regex or transform not configured.","error":"Jest encountered an unexpected token - This usually means that you are trying to import a file which Jest cannot parse"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}