(vnode$: Stream<VNode>, name = 'DOM')
| 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 | } |
nothing calls this directly
no test coverage detected