UNPKG

oc-template-solid-compiler

Version:
45 lines (35 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = solidOCProviderTemplate; const removeExtension = (path) => path.replace(/\.(t|j)sx?$/, ''); function solidOCProviderTemplate({ viewPath, providerFunctions }) { return ` import { render } from 'solid-js/web'; import View from '${removeExtension(viewPath)}'; import { DataProvider } from 'oc-template-solid-compiler/dist/utils/useData' function OCProvider(props) { const { _staticPath, _baseUrl, _componentName, _componentVersion, ...rest } = props; ${providerFunctions} window.oc.events.fire('oc:componentDidMount', rest); rest.getData = getData; rest.getSetting = getSetting; return ( <DataProvider value={{...rest}}> <View { ...rest } /> </DataProvider> ); } let dispose = null; function renderer(props, element, ssr) { dispose = render(() => <OCProvider {...props} />, element); } element.parentElement.unmount = () => { if (dispose) { dispose(); dispose = null; } } renderer.component = OCProvider; export default renderer; `; }