basic-pragma
Version:
Configurable JSX pragma using a basic vdom
28 lines (27 loc) • 845 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Fragment = exports.createElement = void 0;
const arrays_1 = require("./utils/arrays");
const processChildren = (children) => ((0, arrays_1.getLength)(children) > 1
? children
: (0, arrays_1.getLength)(children) === 1
? children[0]
: (0, arrays_1.getLength)(children) === 0
? undefined
: children);
const createElement = (type, props, ...children
// deno-lint-ignore no-explicit-any
) => {
const normalizedProps = {
...(props ?? {}),
children: processChildren(children),
};
const vnode = {
type,
props: normalizedProps,
};
return vnode;
};
exports.createElement = createElement;
const Fragment = ({ children }) => children ?? null;
exports.Fragment = Fragment;