UNPKG

uhtml

Version:
24 lines (19 loc) • 699 B
'use strict'; const { TEXT_NODE } = require('domconstants/constants'); const { TEXT_ELEMENTS } = require('domconstants/re'); const { escape } = require('html-escaper'); const CharacterData = (require('./character-data.js')); const { parentNode, localName, ownerDocument, value } = require('./symbols.js'); module.exports = class Text extends CharacterData { constructor(data = '', owner = null) { super(TEXT_NODE, '#text', data, owner); } cloneNode() { return new Text(this[value], this[ownerDocument]); } toString() { const { [parentNode]: parent, [value]: data } = this; return parent && TEXT_ELEMENTS.test(parent[localName]) ? data : escape(data); } }