react-with-hoc
Version:
Work with React and HOCs (Higher-Order Components)
123 lines (121 loc) • 15.3 kB
JavaScript
;
var _react = require("react");
var _newHoc = require("../utils/newHoc");
const isReactNode = value => (0, _react.isValidElement)(value) || typeof value !== "object" || value === null;
/**
* Like Array.map but for React components.
* Concatenates components for each item in array, range or object
*
* @experimental It needs to discuss its name
*
* @example
* const Component = withForEach(3)(Example)
* <Component {...props} />
* // is equivalent to
* <>
* <Example key={0} {...props} i={0} />
* <Example key={1} {...props} i={1} />
* <Example key={2} {...props} i={2} />
* </>
*
* @example
* const Component = withForEach(["a", "b"])(Example)
* <Component {...props} />
* // is equivalent to
* <>
* <Example key={0} {...props} i={0}>a</Example>
* <Example key={1} {...props} i={1}>b</Example>
* </>
*
* @example
* const Component = withForEach({
* a: 100,
* b: 200,
* })(Example)
* <Component {...props} />
* // is equivalent to
* <>
* <Example key="a" {...props} i="a">100</Example>
* <Example key="b" {...props} i="b">200</Example>
* </>
*/
const withForEach = exports.withForEach = (0, _newHoc.newHoc)(function withForEach(Component, target, {
indexName = "i",
key = props => props[indexName],
valueName = "children"
} = {}) {
function componentWithKey(newProps) {
if (valueName === "children") {
const {
children,
...rest
} = newProps;
return /*#__PURE__*/_react.default.createElement(Component, {
key: key(newProps),
...rest
}, children);
}
return /*#__PURE__*/_react.default.createElement(Component, {
key: key(newProps),
...newProps
});
}
return function WithForEach(props) {
const children = (() => {
if (typeof target === "number") {
return Array.from({
length: target
}).map((_v, i) => componentWithKey({
...props,
[indexName]: i
}));
}
if (Array.isArray(target)) {
if (target.length === 0) {
return [];
}
if (isReactNode(target[0])) {
return target.map((v, i) => componentWithKey({
...props,
[indexName]: i,
[valueName]: v
}));
}
return target.map((v, i) => componentWithKey({
...v,
...props,
[indexName]: i
}));
}
if (typeof target === "object" && target !== null) {
if (Object.keys(target).length === 0) {
return [];
}
if (isReactNode(Object.values(target)[0])) {
return Object.entries(target).map(([index, value]) => {
return componentWithKey({
...props,
[indexName]: index,
[valueName]: value
});
});
}
return Object.entries(target).map(([index, value]) => {
return componentWithKey({
...value,
...props,
[indexName]: index
});
});
}
if (process.env.NODE_ENV !== "production") {
const never = target;
never;
}
throw new Error("withForEach: should be used with number, Array or object");
})();
return (0, _react.createElement)(_react.Fragment, null, ...children);
};
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX25ld0hvYyIsImlzUmVhY3ROb2RlIiwidmFsdWUiLCJpc1ZhbGlkRWxlbWVudCIsIndpdGhGb3JFYWNoIiwiZXhwb3J0cyIsIm5ld0hvYyIsIkNvbXBvbmVudCIsInRhcmdldCIsImluZGV4TmFtZSIsImtleSIsInByb3BzIiwidmFsdWVOYW1lIiwiY29tcG9uZW50V2l0aEtleSIsIm5ld1Byb3BzIiwiY2hpbGRyZW4iLCJyZXN0IiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJXaXRoRm9yRWFjaCIsIkFycmF5IiwiZnJvbSIsImxlbmd0aCIsIm1hcCIsIl92IiwiaSIsImlzQXJyYXkiLCJ2IiwiT2JqZWN0Iiwia2V5cyIsInZhbHVlcyIsImVudHJpZXMiLCJpbmRleCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm5ldmVyIiwiRXJyb3IiLCJGcmFnbWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob2NzL3dpdGhGb3JFYWNoLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgQ29tcG9uZW50VHlwZSxcbiAgRnJhZ21lbnQsXG4gIEZ1bmN0aW9uQ29tcG9uZW50LFxuICBLZXksXG4gIFJlYWN0Tm9kZSxcbiAgY3JlYXRlRWxlbWVudCxcbiAgaXNWYWxpZEVsZW1lbnQsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgU2V0T3B0aW9uYWxGbiB9IGZyb20gXCIuLi90eXBlcy9GblwiO1xuaW1wb3J0IHsgSG9jIH0gZnJvbSBcIi4uL3R5cGVzL0hvY1wiO1xuaW1wb3J0IHsgbmV3SG9jIH0gZnJvbSBcIi4uL3V0aWxzL25ld0hvY1wiO1xuXG5pbnRlcmZhY2UgT3B0aW9uczxJbmRleE5hbWUgZXh0ZW5kcyBzdHJpbmcsIFZhbHVlTmFtZSBleHRlbmRzIHN0cmluZz4ge1xuICAvKipcbiAgICogQGRlZmF1bHQgXCJpXCJcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkyBcInNvbWVOYW1lXCIgaGVyZSBhcyB3ZWxsXG4gICAqIGNvbnN0IENvbXBvbmVudCA9IHdpdGhGb3JFYWNoKDMsIHtpbmRleE5hbWU6IFwic29tZU5hbWVcIn0pKEV4YW1wbGUpXG4gICAqIDxDb21wb25lbnQgey4uLnByb3BzfSAvPlxuICAgKiAvLyBpcyBlcXVpdmFsZW50IHRvXG4gICAqIDw+XG4gICAqICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgIOKGkyBcInNvbWVOYW1lXCIgaGVyZSBhcyB3ZWxsXG4gICAqICAgPEV4YW1wbGUga2V5PXswfSB7Li4ucHJvcHN9IHNvbWVOYW1lPXswfSAvPlxuICAgKiAgIDxFeGFtcGxlIGtleT17MX0gey4uLnByb3BzfSBzb21lTmFtZT17MX0gLz5cbiAgICogICA8RXhhbXBsZSBrZXk9ezJ9IHsuLi5wcm9wc30gc29tZU5hbWU9ezJ9IC8+XG4gICAqIDwvPlxuICAgKi9cbiAgaW5kZXhOYW1lPzogSW5kZXhOYW1lO1xuICAvKipcbiAgICogQGRlZmF1bHQgXCJjaGlsZHJlblwiXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IENvbXBvbmVudCA9IHdpdGhGb3JFYWNoKFxuICAgKiAgIFtcImFcIiwgXCJiXCJdLFxuICAgKiAgIC8vICAgICAgICAgICDihpMgXCJzb21lTmFtZVwiIGhlcmUgYXMgd2VsbFxuICAgKiAgIHt2YWx1ZU5hbWU6IFwic29tZU5hbWVcIn1cbiAgICogKShFeGFtcGxlKVxuICAgKiA8Q29tcG9uZW50IHsuLi5wcm9wc30gLz5cbiAgICogLy8gaXMgZXF1aXZhbGVudCB0b1xuICAgKiA8PlxuICAgKiAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpMgXCJzb21lTmFtZVwiIGhlcmUgYXMgd2VsbFxuICAgKiAgIDxFeGFtcGxlIGtleT17MH0gey4uLnByb3BzfSBpPXswfSBzb21lTmFtZT1cImFcIiAvPlxuICAgKiAgIDxFeGFtcGxlIGtleT17MX0gey4uLnByb3BzfSBpPXsxfSBzb21lTmFtZT1cImJcIiAvPlxuICAgKiA8Lz5cbiAgICovXG4gIHZhbHVlTmFtZT86IFZhbHVlTmFtZTtcbiAgLyoqXG4gICAqIEBkZWZhdWx0IChwcm9wcykgPT4gcHJvcHNbaW5kZXhOYW1lXSAvLyB3aGljaCBpcyBwcm9wcy5pXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIG1ha2VzIGtleSA9IDJeeFxuICAgKiBjb25zdCBDb21wb25lbnQgPSB3aXRoRm9yRWFjaCg0LCB7a2V5OiAoe2l9KSA9PiAyICoqIGl9KShFeGFtcGxlKVxuICAgKiA8Q29tcG9uZW50IHsuLi5wcm9wc30gLz5cbiAgICogLy8gaXMgZXF1aXZhbGVudCB0b1xuICAgKiA8PlxuICAgKiAgIC8vICAgICAgICAgICAg4oaTIG5vdGUga2V5IHZhbHVlc1xuICAgKiAgIDxFeGFtcGxlIGtleT17MX0gey4uLnByb3BzfSBzb21lTmFtZT17MH0gLz5cbiAgICogICA8RXhhbXBsZSBrZXk9ezJ9IHsuLi5wcm9wc30gc29tZU5hbWU9ezF9IC8+XG4gICAqICAgPEV4YW1wbGUga2V5PXs0fSB7Li4ucHJvcHN9IHNvbWVOYW1lPXsyfSAvPlxuICAgKiAgIDxFeGFtcGxlIGtleT17OH0gey4uLnByb3BzfSBzb21lTmFtZT17Mn0gLz5cbiAgICogPC8+XG4gICAqL1xuICBrZXk/OiAocHJvcHM6IG9iamVjdCkgPT4gS2V5O1xufVxuXG5pbnRlcmZhY2UgV2l0aEZvckVhY2hIb2Mge1xuICA8SW5kZXhOYW1lIGV4dGVuZHMgc3RyaW5nLCBWYWx1ZU5hbWUgZXh0ZW5kcyBzdHJpbmc+KFxuICAgIHRhcmdldDogbnVtYmVyIHwgQXJyYXk8dW5rbm93bj4gfCBvYmplY3QsXG4gICAgb3B0aW9ucz86IE9wdGlvbnM8SW5kZXhOYW1lLCBWYWx1ZU5hbWU+LFxuICApOiBIb2M8XG4gICAgW1xuICAgICAgU2V0T3B0aW9uYWxGbjxcbiAgICAgICAgfCAoW0luZGV4TmFtZSAmIFwiXCJdIGV4dGVuZHMgW25ldmVyXSA/IEluZGV4TmFtZSA6IFwiaVwiKVxuICAgICAgICB8IChbVmFsdWVOYW1lICYgXCJcIl0gZXh0ZW5kcyBbbmV2ZXJdID8gVmFsdWVOYW1lIDogXCJjaGlsZHJlblwiKVxuICAgICAgPixcbiAgICBdXG4gID47XG59XG5cbmNvbnN0IGlzUmVhY3ROb2RlID0gKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiA9PlxuICBpc1ZhbGlkRWxlbWVudCh2YWx1ZSkgfHwgdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiIHx8IHZhbHVlID09PSBudWxsO1xuXG4vKipcbiAqIExpa2UgQXJyYXkubWFwIGJ1dCBmb3IgUmVhY3QgY29tcG9uZW50cy5cbiAqIENvbmNhdGVuYXRlcyBjb21wb25lbnRzIGZvciBlYWNoIGl0ZW0gaW4gYXJyYXksIHJhbmdlIG9yIG9iamVjdFxuICpcbiAqIEBleHBlcmltZW50YWwgSXQgbmVlZHMgdG8gZGlzY3VzcyBpdHMgbmFtZVxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBDb21wb25lbnQgPSB3aXRoRm9yRWFjaCgzKShFeGFtcGxlKVxuICogPENvbXBvbmVudCB7Li4ucHJvcHN9IC8+XG4gKiAvLyBpcyBlcXVpdmFsZW50IHRvXG4gKiA8PlxuICogICA8RXhhbXBsZSBrZXk9ezB9IHsuLi5wcm9wc30gaT17MH0gLz5cbiAqICAgPEV4YW1wbGUga2V5PXsxfSB7Li4ucHJvcHN9IGk9ezF9IC8+XG4gKiAgIDxFeGFtcGxlIGtleT17Mn0gey4uLnByb3BzfSBpPXsyfSAvPlxuICogPC8+XG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IENvbXBvbmVudCA9IHdpdGhGb3JFYWNoKFtcImFcIiwgXCJiXCJdKShFeGFtcGxlKVxuICogPENvbXBvbmVudCB7Li4ucHJvcHN9IC8+XG4gKiAvLyBpcyBlcXVpdmFsZW50IHRvXG4gKiA8PlxuICogICA8RXhhbXBsZSBrZXk9ezB9IHsuLi5wcm9wc30gaT17MH0+YTwvRXhhbXBsZT5cbiAqICAgPEV4YW1wbGUga2V5PXsxfSB7Li4ucHJvcHN9IGk9ezF9PmI8L0V4YW1wbGU+XG4gKiA8Lz5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgQ29tcG9uZW50ID0gd2l0aEZvckVhY2goe1xuICogICBhOiAxMDAsXG4gKiAgIGI6IDIwMCxcbiAqIH0pKEV4YW1wbGUpXG4gKiA8Q29tcG9uZW50IHsuLi5wcm9wc30gLz5cbiAqIC8vIGlzIGVxdWl2YWxlbnQgdG9cbiAqIDw+XG4gKiAgIDxFeGFtcGxlIGtleT1cImFcIiB7Li4ucHJvcHN9IGk9XCJhXCI+MTAwPC9FeGFtcGxlPlxuICogICA8RXhhbXBsZSBrZXk9XCJiXCIgey4uLnByb3BzfSBpPVwiYlwiPjIwMDwvRXhhbXBsZT5cbiAqIDwvPlxuICovXG5leHBvcnQgY29uc3Qgd2l0aEZvckVhY2ggPSBuZXdIb2M8V2l0aEZvckVhY2hIb2M+KGZ1bmN0aW9uIHdpdGhGb3JFYWNoKFxuICBDb21wb25lbnQ6IENvbXBvbmVudFR5cGUsXG4gIHRhcmdldDogbnVtYmVyIHwgQXJyYXk8dW5rbm93bj4gfCBvYmplY3QsXG4gIHtcbiAgICBpbmRleE5hbWUgPSBcImlcIixcbiAgICBrZXkgPSAocHJvcHM6IGFueSk6IEtleSA9PiBwcm9wc1tpbmRleE5hbWVdLFxuICAgIHZhbHVlTmFtZSA9IFwiY2hpbGRyZW5cIixcbiAgfSA9IHt9LFxuKTogRnVuY3Rpb25Db21wb25lbnQge1xuICBmdW5jdGlvbiBjb21wb25lbnRXaXRoS2V5KG5ld1Byb3BzOiBhbnkpOiBSZWFjdE5vZGUge1xuICAgIGlmICh2YWx1ZU5hbWUgPT09IFwiY2hpbGRyZW5cIikge1xuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgLi4ucmVzdCB9ID0gbmV3UHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Q29tcG9uZW50IGtleT17a2V5KG5ld1Byb3BzKX0gey4uLnJlc3R9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Db21wb25lbnQ+XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gPENvbXBvbmVudCBrZXk9e2tleShuZXdQcm9wcyl9IHsuLi5uZXdQcm9wc30gLz47XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gV2l0aEZvckVhY2gocHJvcHM6IGFueSk6IFJlYWN0Tm9kZSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSAoKCk6IFJlYWN0Tm9kZVtdID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0YXJnZXQgfSkubWFwKChfdiwgaSkgPT5cbiAgICAgICAgICBjb21wb25lbnRXaXRoS2V5KHsgLi4ucHJvcHMsIFtpbmRleE5hbWVdOiBpIH0pLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXQpKSB7XG4gICAgICAgIGlmICh0YXJnZXQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzUmVhY3ROb2RlKHRhcmdldFswXSkpIHtcbiAgICAgICAgICByZXR1cm4gdGFyZ2V0Lm1hcCgodiwgaSkgPT5cbiAgICAgICAgICAgIGNvbXBvbmVudFdpdGhLZXkoeyAuLi5wcm9wcywgW2luZGV4TmFtZV06IGksIFt2YWx1ZU5hbWVdOiB2IH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFyZ2V0Lm1hcCgodiwgaSkgPT5cbiAgICAgICAgICBjb21wb25lbnRXaXRoS2V5KHsgLi4udiwgLi4ucHJvcHMsIFtpbmRleE5hbWVdOiBpIH0pLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRhcmdldCA9PT0gXCJvYmplY3RcIiAmJiB0YXJnZXQgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRhcmdldCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzUmVhY3ROb2RlKE9iamVjdC52YWx1ZXModGFyZ2V0KVswXSkpIHtcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGFyZ2V0KS5tYXAoKFtpbmRleCwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50V2l0aEtleSh7XG4gICAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAgICBbaW5kZXhOYW1lXTogaW5kZXgsXG4gICAgICAgICAgICAgIFt2YWx1ZU5hbWVdOiB2YWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRhcmdldCkubWFwKChbaW5kZXgsIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIHJldHVybiBjb21wb25lbnRXaXRoS2V5KHsgLi4udmFsdWUsIC4uLnByb3BzLCBbaW5kZXhOYW1lXTogaW5kZXggfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IG5ldmVyOiBuZXZlciA9IHRhcmdldDtcbiAgICAgICAgbmV2ZXI7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwid2l0aEZvckVhY2g6IHNob3VsZCBiZSB1c2VkIHdpdGggbnVtYmVyLCBBcnJheSBvciBvYmplY3RcIixcbiAgICAgICk7XG4gICAgfSkoKTtcblxuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KEZyYWdtZW50LCBudWxsLCAuLi5jaGlsZHJlbik7XG4gIH07XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFXQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFzRUEsTUFBTUUsV0FBVyxHQUFJQyxLQUFjLElBQ2pDLElBQUFDLHFC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
//# sourceMappingURL=withForEach.js.map