developit / undom

🍩 1kb minimally viable DOM Document implementation
https://npm.im/undom
MIT License
662 stars 25 forks source link

Implement Element.tagName and Node.ownerDocument #27

Open alanhoff opened 5 years ago

alanhoff commented 5 years ago

This PR implements the following APIs:

It will allow the following code to operate correctly:

import React from 'react';
import ReactDOM from 'react-dom';
import undom from 'undom';

// The render function utilizes global variables so you will need this 
// if running it inside Node.js
// globals.window = {HTMLIFrameElement: function() {}}

ReactDOM.render(<p>Hello React!</p>, undom().document.body);

Sidenote

The best scenario would be adding get ownerDocument to Node instead of monkey patching Element at runtime, but currently that's impossible since Node is isolated from the environment.