preact
Version:
Fast 4kb React-compatible Virtual DOM library.
22 lines (19 loc) • 576 B
JavaScript
import { toChildArray } from 'preact';
const mapFn = (children, fn, context) => {
if (children == null) return null;
return toChildArray(toChildArray(children).map(fn.bind(context)));
};
// This API is completely unnecessary for Preact, so it's basically passthrough.
export const Children = {
map: mapFn,
forEach: mapFn,
count(children) {
return children ? toChildArray(children).length : 0;
},
only(children) {
const normalized = toChildArray(children);
if (normalized.length != 1) throw 'Children.only';
return normalized[0];
},
toArray: toChildArray
};