sanity
Version:
Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches
24 lines (17 loc) • 587 B
text/typescript
import {type ReactNode} from 'react'
import {linkMiddleware} from './linkMiddleware'
import {type Middleware} from './types'
const middlewares: Middleware[] = [linkMiddleware]
/**
* A function that transforms a ReactNode using a set of middlewares
*/
export function transformChildren(node: ReactNode): ReactNode {
if (!Array.isArray(node)) return node
return node.flatMap((item) => {
let transformedItem: ReactNode[] = [item]
for (const middleware of middlewares) {
transformedItem = transformedItem.flatMap(middleware)
}
return transformedItem
})
}