redom-jsx
Version:
Tiny turboboosted JavaScript library for creating user interfaces. 100 % test coverage!
37 lines (28 loc) • 863 B
JavaScript
import { createElement } from './create-element.js';
import { parseArgumentsInternal, getEl } from './util.js';
import { setChildren } from './setchildren.js';
export function Fragment (attr, ...children) {
const fragment = document.createDocumentFragment();
setChildren(fragment, children);
this.el = fragment;
return this.el;
}
export function html (query, ...args) {
let element;
const type = typeof query;
if (type === 'string') {
element = createElement(query);
} else if (type === 'function') {
const Query = query;
element = new Query(...args);
} else {
throw new Error('At least one argument required');
}
parseArgumentsInternal(getEl(element), args, true);
return element;
}
export const el = html;
export const h = html;
html.extend = function extendHtml (...args) {
return html.bind(this, ...args);
};