react-scanner-orbit
Version:
Extract React components and props usage from code.
37 lines (27 loc) • 941 B
JavaScript
export default function countComponentsAndPropsProcessor(options) {
return ({ forEachComponent, sortObjectKeysByValue, output }) => {
let result = {};
forEachComponent(({ componentName, component }) => {
const { instances } = component;
if (!instances) {
return;
}
result[componentName] = {
instances: instances.length,
props: {},
};
instances.forEach((instance) => {
for (const prop in instance.props) {
if (result[componentName].props[prop] === undefined) {
result[componentName].props[prop] = 0;
}
result[componentName].props[prop] += 1;
}
});
result[componentName].props = sortObjectKeysByValue(result[componentName].props);
});
result = sortObjectKeysByValue(result, (component) => component.instances);
output(result, options && options.outputTo);
return result;
};
}