Spaces:
Sleeping
Sleeping
| function iterateProps(obj, iterator) { | |
| Object.keys(obj).forEach(key => iterator({ ...obj[key], name: key })); | |
| } | |
| function mapProps(obj) { | |
| return Object.keys(obj).map(key => ({ ...obj[key], name: key })); | |
| } | |
| function filterProps(obj, filter) { | |
| const ret = {}; | |
| Object.keys(obj).forEach(key => { | |
| if (filter(obj[key])) { | |
| ret[key] = obj[key]; | |
| } | |
| }); | |
| return ret; | |
| } | |
| function typeSignature(meta) { | |
| const type = meta.array ? `Array<${meta.type}>` : meta.type; | |
| if (meta.optional) { | |
| return `${meta.name}?: ${type}`; | |
| } else if (meta.maybe) { | |
| return `${meta.name}: ?${type}`; | |
| } else { | |
| return `${meta.name}: ${type}`; | |
| } | |
| } | |
| const unique = items => Array.from(new Set(items)); | |
| module.exports = { | |
| iterateProps, | |
| mapProps, | |
| filterProps, | |
| typeSignature, | |
| unique | |
| }; | |