extract-props.js 544 B

12345678910111213141516
  1. module.exports = function extractProps (content) {
  2. const DETECT_PROP_DEFINITIONS = /(props\..*?)(}| |\.|\[)/g
  3. const CHARS_TO_REMOVE = /(\.|}| |props|\(|\[)/g
  4. const propDefinitions = content.match(DETECT_PROP_DEFINITIONS)
  5. if (!propDefinitions) return '{}'
  6. let props = propDefinitions.map((match) => {
  7. const propName = match.trim().replace(CHARS_TO_REMOVE, '')
  8. return `'${propName}'`
  9. })
  10. props = removeDuplicates(props)
  11. return `[ ${props.join(', ')} ]`
  12. }
  13. function removeDuplicates (props) {
  14. return [...new Set(props)]
  15. }