@slightning/anything-to-string
Version:
Converts anything to a string.
62 lines (61 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MaximumHTMLElementRule = exports.MajorHTMLElementRule = exports.LesserHTMLElementRule = exports.MinimumHTMLElementRule = void 0;
const object_1 = require("./object");
function isHTMLElement(data) {
return typeof HTMLElement != "undefined" && data instanceof HTMLElement;
}
class MinimumHTMLElementRule {
constructor() {
this.test = isHTMLElement;
}
toString(data, __config, __context) {
let result = data.tagName;
if (data.id != "") {
result += `#${data.id}`;
}
for (const name of Array.from(data.classList)) {
result += `.${name}`;
}
return `[${Object.getPrototypeOf(data).constructor.name}: ${result}]`;
}
}
exports.MinimumHTMLElementRule = MinimumHTMLElementRule;
class LesserHTMLElementRule {
constructor() {
this.test = isHTMLElement;
}
toString(data, __config, __context) {
if (data.innerHTML == "") {
return data.outerHTML;
}
else {
const newData = data.cloneNode(false);
newData.innerText = "...";
return data.outerHTML;
}
}
}
exports.LesserHTMLElementRule = LesserHTMLElementRule;
class MajorHTMLElementRule {
constructor() {
this.test = isHTMLElement;
}
toString(data, __config, __context) {
return data.outerHTML;
}
}
exports.MajorHTMLElementRule = MajorHTMLElementRule;
class MaximumHTMLElementRule {
constructor() {
this.test = isHTMLElement;
}
prepare(data, config, context) {
new object_1.MaximumObjectRule().prepare(data, config, context);
}
toString(data, config, context) {
return data.outerHTML + " " +
new object_1.MaximumObjectRule().toString(data, config, context);
}
}
exports.MaximumHTMLElementRule = MaximumHTMLElementRule;