common.js 1.02 KB
Newer Older
1 2
const _ = require('lodash')

3 4 5 6
module.exports = {
  /**
   * Get default value of type
   *
7
   * @param {any} type primitive type name
8 9
   * @returns Default value
   */
10 11 12 13 14 15 16 17
  getTypeDefaultValue (type) {
    switch (type.toLowerCase()) {
      case 'string':
        return ''
      case 'number':
        return 0
      case 'boolean':
        return false
18
    }
19 20 21 22 23 24 25 26 27 28 29 30 31 32
  },
  parseModuleProps (props) {
    return _.transform(props, (result, value, key) => {
      let defaultValue = ''
      if (_.isPlainObject(value)) {
        defaultValue = !_.isNil(value.default) ? value.default : this.getTypeDefaultValue(value.type)
      } else {
        defaultValue = this.getTypeDefaultValue(value)
      }
      _.set(result, key, {
        default: defaultValue,
        type: (value.type || value).toLowerCase(),
        title: value.title || _.startCase(key),
        hint: value.hint || false,
33
        enum: value.enum || false,
34
        multiline: value.multiline || false,
35
        order: value.order || 100
36 37 38
      })
      return result
    }, {})
39 40
  }
}