All files / src/miniprogram syncPropsToData.ts

92.85% Statements 13/14
50% Branches 3/6
100% Functions 4/4
92.85% Lines 13/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  1x 1x   2x 2x 2x 2x 2x 2x 2x         2x   2x 2x  
export function syncPropsToData (computed: object) {
  const sync = (data: object) => {
    return Object.keys(computed).reduce((acc, key) => {
      const userDef = computed[key]
      const getter = typeof userDef === 'function' ? userDef : userDef.get
      if (getter) {
        const value = getter.call(data, data)
        return { ...acc, [key]: value }
      }E
      return acc
    }, {})
  }
  return Behavior({
    definitionFilter(defFields) {
      defFields.data = defFields.data || {}
      defFields.data = Object.assign(defFields.data, sync(defFields.data))
    },
  })
}