astro-ghostcms/.pnpm-store/v3/files/bb/e373d7cd31d39cf811e4fcf25d8...

32 lines
738 B
Plaintext

import {visitChildren} from 'unist-util-visit-children'
// Patch the position on a parent node based on its first and last child.
export const patchPosition = visitChildren(function (child, index, node) {
const siblings = node.children
if (!child.position) {
return
}
if (
index < 1 &&
/* c8 ignore next */
(!node.position || !node.position.start)
) {
patch(node)
node.position.start = child.position.start
}
if (index === siblings.length - 1 && (!node.position || !node.position.end)) {
patch(node)
node.position.end = child.position.end
}
})
// Add a `position` object when it does not yet exist on `node`.
function patch(node) {
if (!node.position) {
node.position = {}
}
}