decorator-mixin

0.1.1 • Public • Published

Decorator Mixin

npm pipeline status npm

An implementation of mixins using the new Babel class decorators.

Usage

Pass mixin objects into the mixin function as a decorator on the class. Mixins later in the argument list take priority and will override any methods defined by earlier mixins or the class.

Example

const mixinA = {
  methodA () {
    console.log('mixinA')
  },

  methodB () {
    console.log('mixinA')
  },
}

const mixinB = {
  methodB () {
    console.log('mixinB')
  },

  methodC () {
    console.log('mixinB')
  },
}

@mixin(mixinA, mixinB)
class Klass {
  methodA () {
    console.log('class')
  },

  methodB () {
    console.log('class')
  },

  methodD () {
    console.log('class')
  },
}

const obj = new Klass()

obj.methodA() // 'mixinA'
obj.methodB() // 'mixinB'
obj.methodC() // 'mixinB'
obj.methodD() // 'class'

Contributing

Feedback and merge requests are welcome!

/decorator-mixin/

    Package Sidebar

    Install

    npm i decorator-mixin

    Weekly Downloads

    2

    Version

    0.1.1

    License

    MIT

    Unpacked Size

    19.6 kB

    Total Files

    5

    Last publish

    Collaborators

    • griest