MCPcopy Create free account
hub / github.com/cyclejs/cyclejs / DOMDriver

Function DOMDriver

dom/src/makeDOMDriver.ts:58–89  ·  view source on GitHub ↗
(vnode$: Stream<VNode>, name = 'DOM')

Source from the content-addressed store, hash-verified

56 makeDOMDriverInputGuard(modules);
57
58 function DOMDriver(vnode$: Stream<VNode>, name = 'DOM'): DOMSource {
59 domDriverInputGuard(vnode$);
60 const sanitation$ = xs.create<null>();
61 const rootElement$ = xs.merge(vnode$.endWhen(sanitation$), sanitation$)
62 .map(vnode => vnodeWrapper.call(vnode))
63 .fold(patch, toVNode(rootElement))
64 .drop(1)
65 .map(unwrapElementFromVNode)
66 .compose(dropCompletion) // don't complete this stream
67 .startWith(rootElement);
68
69 // Start the snabbdom patching, over time
70 const listener = {error: reportSnabbdomError};
71 if (document.readyState === 'loading') {
72 document.addEventListener('readystatechange', () => {
73 if (document.readyState === 'interactive') {
74 rootElement$.addListener(listener);
75 }
76 });
77 } else {
78 rootElement$.addListener(listener);
79 }
80
81 return new MainDOMSource(
82 rootElement$,
83 sanitation$,
84 [],
85 isolateModule,
86 delegators,
87 name,
88 );
89 };
90
91 return DOMDriver;
92}

Callers

nothing calls this directly

Calls 4

domDriverInputGuardFunction · 0.85
createMethod · 0.80
mapMethod · 0.65
callMethod · 0.45

Tested by

no test coverage detected