(name: string, item: any)
| 251 | } |
| 252 | |
| 253 | export function transformItem(name: string, item: any) { |
| 254 | const { |
| 255 | description, |
| 256 | flowType, |
| 257 | tsType, |
| 258 | type = tsType || flowType, |
| 259 | optional, |
| 260 | required = optional, |
| 261 | defaultValue, |
| 262 | ...others |
| 263 | } = item; |
| 264 | const result: any = { |
| 265 | name, |
| 266 | }; |
| 267 | |
| 268 | if (type) { |
| 269 | result.propType = transformType({ |
| 270 | ...type, |
| 271 | ...omit(others, ['name']), |
| 272 | required: !!required, |
| 273 | }); |
| 274 | } |
| 275 | if (description) { |
| 276 | if (description.includes('\n')) { |
| 277 | result.description = description.split('\n')[0]; |
| 278 | } else { |
| 279 | result.description = description; |
| 280 | } |
| 281 | } |
| 282 | if (!isNil(defaultValue) && typeof defaultValue === 'object' && isEvaluable(defaultValue)) { |
| 283 | if (defaultValue === null) { |
| 284 | result.defaultValue = defaultValue; |
| 285 | } else if ('computed' in defaultValue) { |
| 286 | // parsed data from react-docgen |
| 287 | try { |
| 288 | if (isEvaluable(defaultValue.value)) { |
| 289 | result.defaultValue = safeEval(defaultValue.value); |
| 290 | } else { |
| 291 | result.defaultValue = defaultValue.value; |
| 292 | } |
| 293 | } catch (e) { |
| 294 | log(e); |
| 295 | } |
| 296 | } else { |
| 297 | // parsed data from react-docgen-typescript |
| 298 | result.defaultValue = defaultValue.value; |
| 299 | } |
| 300 | } |
| 301 | if (result.propType === undefined) { |
| 302 | delete result.propType; |
| 303 | } |
| 304 | |
| 305 | return result; |
| 306 | } |
no test coverage detected
searching dependent graphs…