attrs.js 496 Bytes
import { makePropCacheMixin } from '../utils/cache'
import { extend, isVue3 } from '../vue'

const attrsMixinVue2 = makePropCacheMixin('$attrs', 'bvAttrs')
const attrsMixinVue3 = extend({
  computed: {
    bvAttrs() {
      const bvAttrs = { ...this.$attrs }
      Object.keys(bvAttrs).forEach(key => {
        if (bvAttrs[key] === undefined) {
          delete bvAttrs[key]
        }
      })
      return bvAttrs
    }
  }
})

export const attrsMixin = isVue3 ? attrsMixinVue3 : attrsMixinVue2