winterspec
Version:
Write Winter-CG compatible routes with filesystem routing and tons of features
25 lines (24 loc) • 989 B
JavaScript
import { Worker } from "./worker.js";
import { fileURLToPath } from "node:url";
const needsToNegotiateProtocol = (arg) => {
return (typeof arg.negotiateProtocol === "function");
};
const workerWrapper = async (arg) => {
const protocol = needsToNegotiateProtocol(arg)
? arg.negotiateProtocol(["ava-4"]).ready()
: arg;
// Old implementation:
// const { initialData } = protocol
// const worker = new Worker(initialData as any);
const getDirectoryFromPath = (filePath) => {
if (filePath.includes("/"))
return filePath.split("/").slice(0, -1).join("/");
return filePath.split("\\").slice(0, -1).join("\\");
};
for await (const testWorker of protocol.testWorkers()) {
const testFileDirectory = getDirectoryFromPath(fileURLToPath(testWorker.file));
const worker = new Worker({ rootDirectory: testFileDirectory });
void worker.handleTestWorker(testWorker);
}
};
export default workerWrapper;