Files
test-repo/src/language-html/get-node-content.js
T
Sosuke Suzuki 0eb1493988 Refactor html printer (#11462)
* tmp: not working

* works

* renamae

* Refactor

* Address review
2021-09-08 16:32:20 +09:00

35 lines
938 B
JavaScript

"use strict";
const {
needsToBorrowParentClosingTagStartMarker,
printClosingTagStartMarker,
needsToBorrowLastChildClosingTagEndMarker,
printClosingTagEndMarker,
needsToBorrowParentOpeningTagEndMarker,
printOpeningTagEndMarker,
} = require("./print/tag.js");
function getNodeContent(node, options) {
let start = node.startSourceSpan.end.offset;
if (
node.firstChild &&
needsToBorrowParentOpeningTagEndMarker(node.firstChild)
) {
start -= printOpeningTagEndMarker(node).length;
}
let end = node.endSourceSpan.start.offset;
if (
node.lastChild &&
needsToBorrowParentClosingTagStartMarker(node.lastChild)
) {
end += printClosingTagStartMarker(node, options).length;
} else if (needsToBorrowLastChildClosingTagEndMarker(node)) {
end -= printClosingTagEndMarker(node.lastChild, options).length;
}
return options.originalText.slice(start, end);
}
module.exports = getNodeContent;