UNPKG

@sanpjs/runtime

Version:

San Pro Runtime

61 lines 1.56 kB
"use strict"; /** * @file app.js */ Object.defineProperty(exports, "__esModule", { value: true }); const san_1 = require("san"); /** * * @param {SanComponent} Component san的 component * @param {String|DOM} selector attach 的节点 */ /** * * 一个简单的demo * import {createApp, BaseComponent} from '@sanpjs/runtime'; * import {BaseComponent} from '@sanpjs/runtime'; * * class MyComps extends BaseComponent { * static template = ` * <div>{{text}}</div> * `; * } * * createApp(MyComps, '#app'); * */ // eslint-disable-next-line max-len function createApp(Component, selector) { const doc = document; // eslint-disable-next-line @typescript-eslint/init-declarations let app; if (Component instanceof san_1.Component) { app = Component; } else { const AppComponent = (0, san_1.defineComponent)(Component); app = new AppComponent(); } // eslint-disable-next-line @typescript-eslint/init-declarations let $node; switch (typeof selector) { case 'string': $node = doc.querySelector(selector); break; case 'undefined': $node = doc.body; break; default: if (selector.nodeType && selector.nodeName) { $node = selector; } else { throw new Error(selector + ' must be an DOM or DOM-selector!'); } } app.attach($node); return app; } exports.default = createApp; ; //# sourceMappingURL=createApp.js.map