xatto
Version:
xatto is View Layer Library based on Function and Context using VirtualDOM. This is developed by forking from jorgebucaran/superfine.
47 lines (40 loc) • 1.17 kB
text/typescript
import { eventProxyProvider } from './eventProxyProvider'
import { glueNodeMergerProvider } from './glueNodeMergerProvider'
import { patcherProvider } from './patcherProvider'
import { Props } from './Props'
import { resolverProvider } from './resolverProvider'
export function rendererProvider (
mutate,
getContext,
setContext /*, view, glueNode */
) {
const eventTargetProps = new WeakMap<EventTarget, Props>()
const removedNodes = new WeakMap<Node, boolean>()
const eventProxy = eventProxyProvider(mutate, getContext, eventTargetProps)
return () => {
const lifecycleEvents: Function[] = []
return [
// resolver
resolverProvider(getContext, setContext),
// meger
glueNodeMergerProvider(removedNodes),
// pather
patcherProvider(
mutate,
lifecycleEvents,
eventProxy,
eventTargetProps,
removedNodes
),
// finallyer
() => () => {
lifecycleEvents.reduceRight((_, lifecycleEvent) => lifecycleEvent(), 0)
}
] as [
Function | undefined,
Function | undefined,
Function | undefined,
Function | undefined
]
}
}