Skip to content

Piterden/constructor-decorator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Constructor Decorator

Travis (.com) npm NPM npm

Typized and autoassigned arguments for JS class constructor.

Overview

Are you not tired of constantly writing like:

class TypedEntity {
  constructor (
    foo,
    bar,
    baz,
    bat,
    fie,
    bal,
    fuu,
    faa
  ) {
    this.baz = baz
    this.bal = bal
    this.foo = foo
    this.fuu = fuu
    this.bar = bar
    this.bat = bat
    this.fie = fie
    this.faa = faa
  }
}

module.exports = TypedEntity

Now you can avoid of it with the class extend:

const BaseClass = require('constructor-decorator')

const Foo = require('./Foo')
const Bar = require('./Bar')
const Baz = require('./Baz')


class TypedEntity extends BaseClass {
  get args () {
    return {
      foo: [Foo, Baz],
      bar: [Bar, String],
      baz: String,
      bat: Boolean,
      fie: String,
      bal: [String, Number],
      fuu: Date,
      faa: Number,
    }
  }

  constructor () {
    super(...arguments)
  }
}

module.exports = TypedEntity

The types compare is enabled with an array OR-operator syntax support.

Donate

  • BTC 3F275vPSCvYW19MHZqSjw79fEwwU4MbTgV
  • LTC MGMCQB3QAcrSBjU3eGJviqB2J2f5BNVRGr
  • DOGE D5m69FRDGEn3G3xuakvqTxUpGVt6NegKJp