UNPKG

@ray-core/runtime

Version:

Ray 是一个全新的基于 React 的小程序开发框架

72 lines (71 loc) 3.48 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.overloadNativeComponentConstructor = void 0; var gStore_1 = require("./gStore"); /** * 重载原生小程序的 `Component` 构造函数 */ function overloadNativeComponentConstructor(name) { return function (cfg) { var config = {}; // 兼容阿里 if (process.env.REMAX_PLATFORM === 'ali') { var didMount_1 = cfg.didMount; var didUnmount_1 = cfg.didUnmount; var onInit_1 = cfg.onInit; var deriveDataFromProps_1 = cfg.deriveDataFromProps; config = __assign(__assign({}, cfg), { didMount: function () { didMount_1 === null || didMount_1 === void 0 ? void 0 : didMount_1.apply(this, arguments); }, didUnmount: function () { didUnmount_1 === null || didUnmount_1 === void 0 ? void 0 : didUnmount_1.apply(this, arguments); }, onInit: function () { this.componentName = name; (0, gStore_1.setPrototypeTo)(this); onInit_1 === null || onInit_1 === void 0 ? void 0 : onInit_1.apply(this, arguments); }, deriveDataFromProps: function (props) { this.setData(__assign({}, props.__p__)); deriveDataFromProps_1 === null || deriveDataFromProps_1 === void 0 ? void 0 : deriveDataFromProps_1(props); } }); } else { // 其他平台小程序 var properties = __assign(__assign({}, cfg.properties), { __instid__: { type: null, value: null } }); if (!properties.__p__) { properties.__p__ = { type: null, value: null }; } var observers = __assign({}, cfg.observers); if (!(observers === null || observers === void 0 ? void 0 : observers.__p__)) { observers.__p__ = function (props) { var k = "$_cb_".concat(this.data.__instid__, "___p__.onInput"); var cb = gStore_1.gStore.getCallback(k); this[k] = cb; Object.keys(props).length > 0 && this.setData(__assign({}, props)); }; } var lifetimes = __assign({}, cfg.lifetimes); var created_1 = cfg.created || lifetimes.created; lifetimes.created = function () { this.componentName = name; (0, gStore_1.setPrototypeTo)(this); created_1 === null || created_1 === void 0 ? void 0 : created_1.apply(this, arguments); }; config = __assign(__assign({}, cfg), { properties: properties, observers: observers, options: __assign(__assign({}, cfg.options), { styleIsolation: 'apply-shared', multipleSlots: true }) }); config.lifetimes = lifetimes; config = __assign(__assign({}, config), lifetimes); } // @ts-ignore Component(config); }; } exports.overloadNativeComponentConstructor = overloadNativeComponentConstructor;