UNPKG

playwright-test

Version:

Run mocha, zora, uvu, tape and benchmark.js scripts inside real browsers with playwright.

78 lines (73 loc) 1.91 kB
// @ts-nocheck // eslint-disable-next-line unicorn/prefer-module const _process = require('process/browser') const performance = globalThis.performance || {} const performanceNow = performance.now || (() => Date.now()) // generate timestamp or delta // see http://nodejs.org/api/process.html#process_process_hrtime /** * * @param {number} previousTimestamp */ function hrtime(previousTimestamp) { const clocktime = performanceNow.call(performance) * 1e-3 let seconds = Math.floor(clocktime) let nanoseconds = Math.floor((clocktime % 1) * 1e9) if (previousTimestamp) { seconds = seconds - previousTimestamp[0] nanoseconds = nanoseconds - previousTimestamp[1] if (nanoseconds < 0) { seconds-- nanoseconds += 1e9 } } return [seconds, nanoseconds] } const p = { ..._process, exit: (code = 0) => { const options = JSON.parse(process.env.PW_OPTIONS) if (code === 0) { if (options.mode === 'worker') { postMessage({ pwRunEnded: true, pwRunFailed: false, }) } else { globalThis.PW_TEST.end(false) } } else if (options.mode === 'worker') { postMessage({ pwRunEnded: true, pwRunFailed: true, }) } else { globalThis.PW_TEST.end(true) } }, stdout: { write: (message) => { if (globalThis.PW_TEST_STDOUT_WRITE) { globalThis.PW_TEST_STDOUT_WRITE(message) } else { postMessage({ pwStdout: message }) } }, getColorDepth: () => 256, isTTY: true, }, stderr: { write: (message) => { if (globalThis.PW_TEST_STDERR_WRITE) { globalThis.PW_TEST_STDERR_WRITE(message) } else { postMessage({ pwStderr: message }) } }, getColorDepth: () => 256, isTTY: true, }, hrtime, } export const process = p // https://github.com/ionic-team/rollup-plugin-node-polyfills