UNPKG

nornj

Version:

A powerful template engine that can works with React, JSX enhancement or alternative tools.

69 lines (52 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = registerComponent; exports.getComponentConfig = getComponentConfig; exports.copyComponentConfig = copyComponentConfig; var _core = _interopRequireDefault(require("../core")); var tools = _interopRequireWildcard(require("./tools")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var components = _core["default"].components, componentConfig = _core["default"].componentConfig; function registerComponent(name, component, options) { var params = name, ret; if (!tools.isObject(name)) { params = {}; params[name] = { component: component, options: options }; } tools.each(params, function (v, k, i) { var comp; if (v != null) { var _component = v.component, _options = v.options; var _name = k.toLowerCase(); comp = _component ? _component : v; components[_name] = comp; componentConfig.set(comp, _options); } if (i == 0) { ret = comp; } else { if (i == 1) { ret = [ret]; } ret.push(comp); } }, false); return ret; } function getComponentConfig(name) { return componentConfig.get(tools.isString(name) ? components[name] || name : name); } function copyComponentConfig(component, from) { componentConfig.set(component, componentConfig.get(from)); return component; }