50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
import { parseRegexp } from '@vitest/utils';
|
|
|
|
var _a, _b;
|
|
const REGEXP_WRAP_PREFIX = "$$vitest:";
|
|
const processSend = (_a = process.send) == null ? void 0 : _a.bind(process);
|
|
const processOn = (_b = process.on) == null ? void 0 : _b.bind(process);
|
|
function createThreadsRpcOptions({ port }) {
|
|
return {
|
|
post: (v) => {
|
|
port.postMessage(v);
|
|
},
|
|
on: (fn) => {
|
|
port.addListener("message", fn);
|
|
}
|
|
};
|
|
}
|
|
function createForksRpcOptions(nodeV8) {
|
|
return {
|
|
serialize: nodeV8.serialize,
|
|
deserialize: (v) => nodeV8.deserialize(Buffer.from(v)),
|
|
post(v) {
|
|
processSend(v);
|
|
},
|
|
on(fn) {
|
|
processOn("message", (message, ...extras) => {
|
|
if (message == null ? void 0 : message.__tinypool_worker_message__)
|
|
return;
|
|
return fn(message, ...extras);
|
|
});
|
|
}
|
|
};
|
|
}
|
|
function unwrapSerializableConfig(config) {
|
|
if (config.testNamePattern && typeof config.testNamePattern === "string") {
|
|
const testNamePattern = config.testNamePattern;
|
|
if (testNamePattern.startsWith(REGEXP_WRAP_PREFIX))
|
|
config.testNamePattern = parseRegexp(testNamePattern.slice(REGEXP_WRAP_PREFIX.length));
|
|
}
|
|
if (config.defines && Array.isArray(config.defines.keys) && config.defines.original) {
|
|
const { keys, original } = config.defines;
|
|
const defines = {};
|
|
for (const key of keys)
|
|
defines[key] = original[key];
|
|
config.defines = defines;
|
|
}
|
|
return config;
|
|
}
|
|
|
|
export { createThreadsRpcOptions as a, createForksRpcOptions as c, unwrapSerializableConfig as u };
|