jsdom#VirtualConsole TypeScript Examples
The following examples show how to use
jsdom#VirtualConsole.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: utils.ts From vite-plugin-vue-i18n with MIT License | 7 votes |
export async function bundleAndRun(
fixture: string,
options: Record<string, unknown> = {}
) {
const { code } = await bundle(fixture, options)
let dom: JSDOM | null = null
let jsdomError
try {
dom = new JSDOM(`<!DOCTYPE html><html><head></head><body></body></html>`, {
runScripts: 'outside-only',
virtualConsole: new VirtualConsole()
})
dom.window.eval(code)
} catch (e) {
console.error(`JSDOM error:\n${e.stack}`)
jsdomError = e
}
if (!dom) {
return Promise.reject(new Error('Cannot assigned JSDOM instance'))
}
const { window } = dom
const { module, exports } = window
return Promise.resolve({
window,
module,
exports,
jsdomError
})
}
Example #2
Source File: simple-wappalyzer.ts From crossfeed with Creative Commons Zero v1.0 Universal | 6 votes |
wappalyzer = ({ data = '', url = '', headers = {} }) => {
const dom = new JSDOM(data, { url, virtualConsole: new VirtualConsole() });
return analyze({
url: url,
meta: getMeta(dom.window.document),
headers: getHeaders(headers),
scripts: getScripts(dom.window.document.scripts),
cookies: getCookies(headers['set-cookie']),
html: dom.serialize()
});
}
Example #3
Source File: parse-cdn.test.ts From analytics-next with MIT License | 6 votes |
function withTag(tag: string) {
const html = `
<!DOCTYPE html>
<head>
${tag}
</head>
<body>
</body>
</html>
`.trim()
const virtualConsole = new VirtualConsole()
const jsd = new JSDOM(html, {
runScripts: 'dangerously',
resources: 'usable',
url: 'https://segment.com',
virtualConsole,
})
const windowSpy = jest.spyOn(global, 'window', 'get')
const documentSpy = jest.spyOn(global, 'document', 'get')
jest.spyOn(console, 'warn').mockImplementationOnce(() => {})
windowSpy.mockImplementation(() => {
return jsd.window as unknown as Window & typeof globalThis
})
documentSpy.mockImplementation(
() => jsd.window.document as unknown as Document
)
}