| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- "use strict";
- var __defProp = Object.defineProperty;
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
- var __getOwnPropNames = Object.getOwnPropertyNames;
- var __hasOwnProp = Object.prototype.hasOwnProperty;
- var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
- };
- var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
- };
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
- var process_exports = {};
- __export(process_exports, {
- ProcessRunner: () => ProcessRunner
- });
- module.exports = __toCommonJS(process_exports);
- var import_utils = require("playwright-core/lib/utils");
- var import_util = require("../util");
- class ProcessRunner {
- async gracefullyClose() {
- }
- dispatchEvent(method, params) {
- const response = { method, params };
- sendMessageToParent({ method: "__dispatch__", params: response });
- }
- }
- let gracefullyCloseCalled = false;
- let forceExitInitiated = false;
- sendMessageToParent({ method: "ready" });
- process.on("disconnect", () => gracefullyCloseAndExit(true));
- process.on("SIGINT", () => {
- });
- process.on("SIGTERM", () => {
- });
- let processRunner;
- let processName;
- const startingEnv = { ...process.env };
- process.on("message", async (message) => {
- if (message.method === "__init__") {
- const { processParams, runnerParams, runnerScript } = message.params;
- void (0, import_utils.startProfiling)();
- (0, import_utils.setTimeOrigin)(processParams.timeOrigin);
- const { create } = require(runnerScript);
- processRunner = create(runnerParams);
- processName = processParams.processName;
- return;
- }
- if (message.method === "__stop__") {
- const keys = /* @__PURE__ */ new Set([...Object.keys(process.env), ...Object.keys(startingEnv)]);
- const producedEnv = [...keys].filter((key) => startingEnv[key] !== process.env[key]).map((key) => [key, process.env[key] ?? null]);
- sendMessageToParent({ method: "__env_produced__", params: producedEnv });
- await gracefullyCloseAndExit(false);
- return;
- }
- if (message.method === "__dispatch__") {
- const { id, method, params } = message.params;
- try {
- const result = await processRunner[method](params);
- const response = { id, result };
- sendMessageToParent({ method: "__dispatch__", params: response });
- } catch (e) {
- const response = { id, error: (0, import_util.serializeError)(e) };
- sendMessageToParent({ method: "__dispatch__", params: response });
- }
- }
- });
- const kForceExitTimeout = +(process.env.PWTEST_FORCE_EXIT_TIMEOUT || 3e4);
- async function gracefullyCloseAndExit(forceExit) {
- if (forceExit && !forceExitInitiated) {
- forceExitInitiated = true;
- setTimeout(() => process.exit(0), kForceExitTimeout);
- }
- if (!gracefullyCloseCalled) {
- gracefullyCloseCalled = true;
- await processRunner?.gracefullyClose().catch(() => {
- });
- if (processName)
- await (0, import_utils.stopProfiling)(processName).catch(() => {
- });
- process.exit(0);
- }
- }
- function sendMessageToParent(message) {
- try {
- process.send(message);
- } catch (e) {
- try {
- JSON.stringify(message);
- } catch {
- throw e;
- }
- }
- }
- // Annotate the CommonJS export names for ESM import in node:
- 0 && (module.exports = {
- ProcessRunner
- });
|