rename exported component name (e.g. ComponentXY - not just replace string but find exported function)
rename row variable to lowercase entity name (using AST - not using string replace)
replace all occurences of row like this (try to match row field):
replace row.title with a proper entity field (check first if entity contains name, title and if so use it - if not fallback to a first string)
replace row.subheader with a proper entity field (check first if entity contains name, title and if so use it - if not fallback to a first date/time/dateTime/timestamp and format it)
replace row.description (check description if not fallback to a first string)
Goal: generate list of https://material-ui.com/components/cards/ (something like https://material-ui.com/components/grid-list/#grid-list-with-titlebars) using template. Current implementation is able to generate data grid https://example-material-ui.onrender.com/app/generated-customers for e Entity. In certain situation is better to generate list of cards.
Motivation: we use code templates help us to customize codegen without writing a code.
How it works?
What to do?
Template
Inspire by: https://material-ui.com/components/cards/#complex-interaction
Refactoring rules:
row.title
with a proper entity field (check first if entity contains name, title and if so use it - if not fallback to a first string)row.subheader
with a proper entity field (check first if entity contains name, title and if so use it - if not fallback to a first date/time/dateTime/timestamp and format it)row.description
(check description if not fallback to a first string)export ComponentXY = ({data}) => data.map((row) => (
))