UNPKG

create-ima-app

Version:

Create a IMA.js App easily.

54 lines (47 loc) 1.26 kB
import { ComponentUtils, InitBindFunction, PageRenderer, Window, } from '@ima/core'; import { defaultCssClasses as cssClassNameProcessor, PageRendererFactory, ServerPageRenderer, } from '@ima/react-page-renderer'; import { ClientPageRenderer } from '@ima/react-page-renderer/renderer/ClientPageRenderer'; declare module '@ima/core' { interface OCAliasMap { $CssClasses: () => typeof cssClassNameProcessor; $PageRendererFactory: PageRendererFactory; } } export const initBindApp: InitBindFunction = (ns, oc) => { // UI components oc.bind('$CssClasses', function () { return cssClassNameProcessor; }); // You can set own Component utils here oc.get(ComponentUtils).register({ $CssClasses: '$CssClasses', }); oc.inject(PageRendererFactory, [ComponentUtils]); oc.bind('$PageRendererFactory', PageRendererFactory); if (oc.get(Window).isClient()) { oc.provide(PageRenderer, ClientPageRenderer, [ PageRendererFactory, '$Helper', '$Dispatcher', '$Settings', Window, ]); } else { oc.provide(PageRenderer, ServerPageRenderer, [ PageRendererFactory, '$Helper', '$Dispatcher', '$Settings', ]); } oc.bind('$PageRenderer', PageRenderer); };