• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

andreashuber69 / kiss-worker / #157

25 Jan 2025 04:20PM UTC coverage: 0.0% (-99.3%) from 99.31%
#157

push

andreashuber69
test: run on compiled files

0 of 33 branches covered (0.0%)

Branch coverage included in aggregate %.

0 of 119 relevant lines covered (0.0%)

0.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/api/nodeApi.ts
1
// https://github.com/andreashuber69/kiss-worker/blob/develop/README.md
2

3
import type { WorkerOptions } from "node:worker_threads";
4
import { isMainThread, parentPort, Worker } from "node:worker_threads";
5

6
const addEventListener = (type: "message", listener: (ev: MessageEvent) => unknown) => {
×
7
    // Code coverage is not reported for code executed within a worker, because only the original (uninstrumented)
8
    // version of the code is ever loaded.
9
    /* istanbul ignore next -- @preserve */
10
    // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
11
    parentPort?.addListener(type, (value: unknown) => listener({ data: value } as unknown as MessageEvent));
×
12
};
13

14
const isWorker = () => !isMainThread;
×
15

16
/* istanbul ignore next -- @preserve */
17
const postMessage = (message: unknown): void => parentPort?.postMessage({ data: message });
18

19
class WorkerLocal extends Worker {
20
    public constructor(filename: URL | string, options: WorkerOptions & { type: "module" }) {
21
        const workerFilename = filename.toString();
×
22

23
        if (workerFilename.endsWith("ts")) {
×
24
            options.workerData ??= {};
×
25
            // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
26
            options.workerData.tsxWorkerFilename = workerFilename;
×
27
            super(new URL("TsxWorker.js", import.meta.url), options);
×
28
        } else {
29
            super(filename, options);
×
30
        }
31
    }
32

33
    public addEventListener(event: "error" | "message" | "messageerror", listener: (ev: object) => void) {
34
        this.addListener(event, listener);
×
35
    }
36

37
    public removeEventListener(event: "error" | "message" | "messageerror", listener: (ev: object) => void) {
38
        this.removeListener(event, listener);
×
39
    }
40
}
41

42
const getCause = (error: object) => error;
×
43

44
const isInvalidWorkerFile = (cause: object) =>
×
45
    cause instanceof Error && "code" in cause && cause.code === "ERR_MODULE_NOT_FOUND";
×
46

47
export {
48
    addEventListener,
49
    isWorker,
50
    postMessage,
51
    WorkerLocal as Worker,
52
    getCause,
53
    isInvalidWorkerFile,
54
};
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc