@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
34 lines • 1.2 kB
JavaScript
import "core-js/modules/web.dom-collections.iterator.js";
export function filterProps(props) {
let remove = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
let allowed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
if (Array.isArray(remove)) {
remove = remove.reduce((acc, key) => {
acc[key] = true;
return acc;
}, {});
}
if (Array.isArray(allowed)) {
allowed = allowed.reduce((acc, key) => {
acc[key] = true;
return acc;
}, {});
}
const isArray = Array.isArray(props);
return Object.entries(props).reduce((acc, _ref) => {
var _remove, _allowed;
let [k, v] = _ref;
if (isArray) {
k = v;
}
if ((typeof remove === 'function' ? !remove(k) : typeof ((_remove = remove) === null || _remove === void 0 ? void 0 : _remove[k]) === 'undefined') || (typeof allowed === 'function' ? allowed(k) : typeof ((_allowed = allowed) === null || _allowed === void 0 ? void 0 : _allowed[k]) !== 'undefined')) {
if (isArray) {
acc.push(v);
} else {
acc[k] = v;
}
}
return acc;
}, isArray ? [] : {});
}
//# sourceMappingURL=filterProps.js.map