UNPKG

hta

Version:

The tiny framework for building Hyper Text Application with ease

37 lines (32 loc) 1.01 kB
import createMarker from "./createMarker"; import tryGetFirstNode from "./tryGetFirstNode"; import renderContent from "./renderContent"; import tryReorder from "./tryReorder"; import tryUnmount from "./tryUnmount"; import { INNER } from "./types"; export default function createContextWrapper(marker, extend) { let innerMarker = createMarker(); let data = {}; let instance = { firstNode: () => tryGetFirstNode(data[INNER]), render(app, context, content) { if (instance.unmounted) return; renderContent(app, context, data, INNER, innerMarker, content); }, reorder() { if (instance.unmounted || innerMarker.nextSibling === marker) return; marker.before(innerMarker); tryReorder(data[INNER]); }, unmount: () => { instance.unmounted = true; tryUnmount(data[INNER]); }, }; marker.before(innerMarker); extend && (typeof extend === "function" ? extend(instance) : Object.assign(instance, extend)); return instance; }