UNPKG

@adobe/helix-pipeline

Version:

This project provides helper functions and default implementations for creating Hypermedia Processing Pipelines.

31 lines (28 loc) 1.24 kB
/* * Copyright 2019 Adobe. All rights reserved. * This file is licensed to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy * of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ const { JSDOM } = require('jsdom'); function tovdom({ response }) { // todo: check content type ? if (!response.document && 'body' in response) { if (response.body.match(/<html/i)) { // generate document const dom = new JSDOM(response.body); response.document = dom.window.document; response.document.serialize = dom.serialize.bind(dom); } else { response.document = new JSDOM(`<html><body>${response.body}</body></html>`).window.document; response.document.serialize = () => response.document.body.innerHTML; } delete response.body; } } module.exports = tovdom;