UNPKG

@virtualstate/examples

Version:
88 lines 4.17 kB
import { h, toString } from "@virtualstate/fringe"; async function Render() { // https://cdn.skypack.dev/-/@virtualstate/examples // https://cdn.skypack.dev/-/@virtualstate/examples@v2.25.4-q8D2nHm4G0WzB5trVWBP/dist=es2019,mode=imports/optimized/common/index-570381d0.js // _Z0001_StringWebsite const playwright = await import("playwright"); const content = await toString(h("html", null, h("head", null, h("title", null, "Site"), h("script", { type: "importmap" }, ` { "imports": { "@virtualstate/deno": "https://cdn.skypack.dev/@virtualstate/deno", "@virtualstate/fringe": "https://cdn.skypack.dev/@virtualstate/fringe", "@virtualstate/dom": "https://cdn.skypack.dev/@virtualstate/dom", "@virtualstate/hooks": "https://cdn.skypack.dev/@virtualstate/hooks", "@virtualstate/examples": "https://cdn.skypack.dev/@virtualstate/examples", "@virtualstate/hooks-extended": "https://cdn.skypack.dev/@virtualstate/hooks-extended", "@virtualstate/union": "https://cdn.skypack.dev/@virtualstate/union", "@virtualstate/web": "https://cdn.skypack.dev/@virtualstate/web", "@virtualstate/x": "https://cdn.skypack.dev/@virtualstate/x", "abort-controller": "https://cdn.skypack.dev/abort-controller", "iterable": "https://cdn.skypack.dev/iterable", "microtask-collector": "https://cdn.skypack.dev/microtask-collector", "uuid": "https://cdn.skypack.dev/uuid", "@opennetwork/rdf-data-model": "https://cdn.skypack.dev/@opennetwork/rdf-data-model" } }`), h("script", { type: "module" }, ` window.render = async function () { console.log("Hello"); const { thenish } = await import("@virtualstate/fringe"); const { _Z0001_StringWebsite } = await import("@virtualstate/examples"); console.log({ thenish, _Z0001_StringWebsite }); const [{ source: site }] = await new Promise(thenish.bind(_Z0001_StringWebsite)); console.log({ site }); const parser = new DOMParser(); const importedDocument = parser.parseFromString(site, "text/html"); if (!!importedDocument.head.querySelector("title")) { document.head.querySelector("title").remove(); } document.head.append(...Array.from(importedDocument.head.children).map(document.adoptNode.bind(document))); document.body.append(...Array.from(importedDocument.body.children).map(document.adoptNode.bind(document))); console.log("appended", document); }; `)), h("body", null, h("noscript", null, "JavaScript was expected to be enabled")))); const url = `data:text/html,${encodeURIComponent(content)}`; // console.log(url); const browser = await playwright.chromium.launch({ timeout: 120000 }); const page = await browser.newPage(); await page.goto(url); await page.waitForLoadState("load", { timeout: 120000 }); await page.waitForLoadState("domcontentloaded", { timeout: 120000 }); await page.waitForLoadState("networkidle", { timeout: 120000 }); await page.coverage.startJSCoverage({}); await page.evaluate(async () => await window.render()); await page.coverage.stopJSCoverage(); page.on('console', msg => console.log(msg.text())); page.on('pageerror', exception => { console.log(`Uncaught exception: "${exception}"`); }); page.on('crash', exception => { console.log(`Uncaught exception: "${exception}"`); }); page.on('requestfailed', request => { console.log(request.url() + ' ' + request.failure().errorText); }); const head = await page.$("head"); const body = await page.$("body"); return JSON.stringify({ head: await head.innerHTML(), body: await body.innerHTML() }); // return <ok /> } export const _EP0001_Playwright = h(Render, null); export const _EP0001_URL = import.meta.url; //# sourceMappingURL=index.js.map