export default props => {
  const propNames = Array.isArray(props) ? props : Object.keys(props)

  const mixin = {
    props,
    watch: {},
    compiled () {
      propNames.forEach(propName => {
        const propValue = this[propName]
        if (propValue != null) {
          const wrapper = props[propName] && props[propName]._troisTransformer
          this.$trois[propName] = wrapper ? wrapper(propValue) : propValue
        }
      })
    }
  }

  propNames.forEach(propName => {
    const wrapper = props[propName] && props[propName]._troisTransformer
    mixin.watch[propName] = wrapper
      ? function (propValue) {
        this.$trois[propName] = wrapper(propValue)
        this.$dispatch('update')
      }
      : function (propValue) {
        this.$trois[propName] = propValue
        this.$dispatch('update')
      }
  })

  return mixin
}

@@ -272,37 +272,41 @@
           const 
-wrapp
+transform
 er = props%5BpropN
@@ -385,23 +385,31 @@
 %5D = 
-wrapp
+transform
 er ? 
-wrapp
+transform
 er(p
@@ -504,21 +504,25 @@
   const 
-wrapp
+transform
 er = pro
@@ -599,21 +599,25 @@
 Name%5D = 
-wrapp
+transform
 er%0A     
@@ -678,13 +678,17 @@
 %5D = 
-wrapp
+transform
 er(p

rename wrapper to transformer