1367a306 by Adam Heath

Move createAdjuster from external to html.

1 parent 0d873159
1 --- 1 ---
2 import { parseHtml, createMatcher, findNode } from './html.ts' 2 import { parseHtml, createAdjuster, createMatcher, findNode } from './html.ts'
3 import { getUrl, getSitePage } from './remote-content.ts' 3 import { getUrl, getSitePage } from './remote-content.ts'
4 import Match from './match.astro' 4 import Match from './match.astro'
5 5
...@@ -24,19 +24,6 @@ export const getNodesFromProps = async (props, options) => { ...@@ -24,19 +24,6 @@ export const getNodesFromProps = async (props, options) => {
24 return xpath ? findNode(doc, xpath, { single: false }) : [ doc ] 24 return xpath ? findNode(doc, xpath, { single: false }) : [ doc ]
25 } 25 }
26 26
27 export const createAdjuster = (adjustments = {}) => {
28 const adjustmentsCompiled = Object.entries(adjustments).map(([ selector, handler ]) => [ createMatcher(selector), handler ])
29 const adjuster = (node, parent, index) => {
30 for (const [ matcher, handler ] of adjustmentsCompiled) {
31 if (matcher(node, parent, index, false)) {
32 node = handler(node)
33 }
34 }
35 return node
36 }
37 return adjuster
38 }
39
40 const { props } = Astro 27 const { props } = Astro
41 const { debug, replacers, slotHandler } = props 28 const { debug, replacers, slotHandler } = props
42 const nodes = await getNodesFromProps(props) 29 const nodes = await getNodesFromProps(props)
......
...@@ -343,6 +343,19 @@ export const createMatcher = (selector: string): Matcher => { ...@@ -343,6 +343,19 @@ export const createMatcher = (selector: string): Matcher => {
343 return newMatcherCreater() 343 return newMatcherCreater()
344 } 344 }
345 345
346 export const createAdjuster = (adjustments = {}) => {
347 const adjustmentsCompiled = Object.entries(adjustments).map(([ selector, handler ]) => [ createMatcher(selector), handler ])
348 const adjuster = (node, parent, index) => {
349 for (const [ matcher, handler ] of adjustmentsCompiled) {
350 if (matcher(node, parent, index, false)) {
351 node = handler(node)
352 }
353 }
354 return node
355 }
356 return adjuster
357 }
358
346 const reactAttributeMap = { 359 const reactAttributeMap = {
347 'class': 'className', 360 'class': 'className',
348 'srcset': 'srcSet', 361 'srcset': 'srcSet',
......