js • Lines: 107"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 serializers_exports = {};
__export(serializers_exports, {
transformObject: () => transformObject,
transformObjectAsync: () => transformObjectAsync,
unwrapObject: () => unwrapObject,
wrapObject: () => wrapObject
});
module.exports = __toCommonJS(serializers_exports);
var import_importRegistry = require("./importRegistry");
function isFunctionRef(value) {
return value && typeof value === "object" && value.__pw_type === "function";
}
function wrapObject(value, callbacks) {
return transformObject(value, (v) => {
if (typeof v === "function") {
const ordinal = callbacks.length;
callbacks.push(v);
const result = {
__pw_type: "function",
ordinal
};
return { result };
}
});
}
async function unwrapObject(value) {
return transformObjectAsync(value, async (v) => {
if (isFunctionRef(v)) {
const result = (...args) => {
window.__ctDispatchFunction(v.ordinal, args);
};
return { result };
}
if ((0, import_importRegistry.isImportRef)(v))
return { result: await window.__pwRegistry.resolveImportRef(v) };
});
}
function transformObject(value, mapping) {
const result = mapping(value);
if (result)
return result.result;
if (value === null || typeof value !== "object")
return value;
if (value instanceof Date || value instanceof RegExp || value instanceof URL)
return value;
if (Array.isArray(value)) {
const result3 = [];
for (const item of value)
result3.push(transformObject(item, mapping));
return result3;
}
if (value?.__pw_type === "jsx" && typeof value.type === "function") {
throw new Error([
`Component "${value.type.name}" cannot be mounted.`,
`Most likely, this component is defined in the test file. Create a test story instead.`,
`For more information, see https://playwright.dev/docs/test-components#test-stories.`
].join("\n"));
}
const result2 = {};
for (const [key, prop] of Object.entries(value))
result2[key] = transformObject(prop, mapping);
return result2;
}
async function transformObjectAsync(value, mapping) {
const result = await mapping(value);
if (result)
return result.result;
if (value === null || typeof value !== "object")
return value;
if (value instanceof Date || value instanceof RegExp || value instanceof URL)
return value;
if (Array.isArray(value)) {
const result3 = [];
for (const item of value)
result3.push(await transformObjectAsync(item, mapping));
return result3;
}
const result2 = {};
for (const [key, prop] of Object.entries(value))
result2[key] = await transformObjectAsync(prop, mapping);
return result2;
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
transformObject,
transformObjectAsync,
unwrapObject,
wrapObject
});