in modules/material-parser/src/parse/transform.ts [253:306]
export function transformItem(name: string, item: any) {
const {
description,
flowType,
tsType,
type = tsType || flowType,
optional,
required = optional,
defaultValue,
...others
} = item;
const result: any = {
name,
};
if (type) {
result.propType = transformType({
...type,
...omit(others, ['name']),
required: !!required,
});
}
if (description) {
if (description.includes('\n')) {
result.description = description.split('\n')[0];
} else {
result.description = description;
}
}
if (!isNil(defaultValue) && typeof defaultValue === 'object' && isEvaluable(defaultValue)) {
if (defaultValue === null) {
result.defaultValue = defaultValue;
} else if ('computed' in defaultValue) {
// parsed data from react-docgen
try {
if (isEvaluable(defaultValue.value)) {
result.defaultValue = safeEval(defaultValue.value);
} else {
result.defaultValue = defaultValue.value;
}
} catch (e) {
log(e);
}
} else {
// parsed data from react-docgen-typescript
result.defaultValue = defaultValue.value;
}
}
if (result.propType === undefined) {
delete result.propType;
}
return result;
}