@saber2pr/react
Version:
react in Typescript.
46 lines (45 loc) • 1.76 kB
JavaScript
;
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 });
/*
* @Author: saber2pr
* @Date: 2019-12-07 22:30:12
* @Last Modified by: saber2pr
* @Last Modified time: 2019-12-08 11:18:18
*/
var ReactTypes_1 = require("../shared/ReactTypes");
var ReactChildren_1 = require("./ReactChildren");
var createTextElement = function (nodeValue) { return ({
tag: "#text",
$$typeof: ReactTypes_1.NodeType.Text,
props: { nodeValue: nodeValue }
}); };
exports.createTextElement = createTextElement;
var createElement = function (tag, props) {
var children = [];
for (var _i = 2; _i < arguments.length; _i++) {
children[_i - 2] = arguments[_i];
}
props = __assign(__assign({}, props), { children: ReactChildren_1.Children.toArray.apply(ReactChildren_1.Children, children) });
if (typeof tag === "string") {
return { $$typeof: ReactTypes_1.NodeType.Host, tag: tag, props: props };
}
if (typeof tag === "function") {
return { $$typeof: ReactTypes_1.NodeType.Hook, tag: tag, props: props };
}
if (tag === ReactTypes_1.NodeType.Fragment) {
return { $$typeof: ReactTypes_1.NodeType.Fragment, tag: "#fragment", props: props };
}
return { $$typeof: ReactTypes_1.NodeType.Unknown, tag: tag, props: props };
};
exports.createElement = createElement;