1367a306 by Adam Heath

Move createAdjuster from external to html.

1 parent 0d873159
---
import { parseHtml, createMatcher, findNode } from './html.ts'
import { parseHtml, createAdjuster, createMatcher, findNode } from './html.ts'
import { getUrl, getSitePage } from './remote-content.ts'
import Match from './match.astro'
......@@ -24,19 +24,6 @@ export const getNodesFromProps = async (props, options) => {
return xpath ? findNode(doc, xpath, { single: false }) : [ doc ]
}
export const createAdjuster = (adjustments = {}) => {
const adjustmentsCompiled = Object.entries(adjustments).map(([ selector, handler ]) => [ createMatcher(selector), handler ])
const adjuster = (node, parent, index) => {
for (const [ matcher, handler ] of adjustmentsCompiled) {
if (matcher(node, parent, index, false)) {
node = handler(node)
}
}
return node
}
return adjuster
}
const { props } = Astro
const { debug, replacers, slotHandler } = props
const nodes = await getNodesFromProps(props)
......
......@@ -343,6 +343,19 @@ export const createMatcher = (selector: string): Matcher => {
return newMatcherCreater()
}
export const createAdjuster = (adjustments = {}) => {
const adjustmentsCompiled = Object.entries(adjustments).map(([ selector, handler ]) => [ createMatcher(selector), handler ])
const adjuster = (node, parent, index) => {
for (const [ matcher, handler ] of adjustmentsCompiled) {
if (matcher(node, parent, index, false)) {
node = handler(node)
}
}
return node
}
return adjuster
}
const reactAttributeMap = {
'class': 'className',
'srcset': 'srcSet',
......