UNPKG

@applicaster/zapp-react-dom-app

Version:

Zapp App Component for Applicaster's Quick Brick React Native App

35 lines (28 loc) 787 B
import * as R from "ramda"; const requiresAppendingDomNode = R.pathEq( ["module", "requiresAppendingDomNode"], true ); function initPlugin(plugin) { const { module: pluginModule, configuration, name } = plugin; const body = document.body; if (pluginModule.init && typeof pluginModule.init === "function") { return pluginModule.init({ body, configuration }); } if (__DEV__) { // eslint-disable-next-line no-console console.warn( `could not initialize plugin ${name} - it doesn't have an init method`, { plugin } ); } return null; } export function loadDomPlugins(plugins) { return R.compose( (promises) => Promise.all(promises), R.reject(R.isNil), R.map(initPlugin), R.filter(requiresAppendingDomNode) )(plugins); }