instance-factory

0.0.5 • Public • Published

NPM version Build Status Coverage Status

Instance factory

Create classes for nodejs the easy way

Getting started

Instance factory provides a 'createClass' method that builds an object instance based on the given description.

Use cases

Simple class :

var instanceFactory = require('instance-factory')
  , Clazz, o;
 
Clazz = instanceFactory.createClass('Clazz', {
  static: {
    config: {
      z: 'z'
    }
  },
  constructor: function () {
    this.a = 3;
    this.b = 4;
  },
  methods: {
    getA: function () {
      return this.a;
    }
  }
});
= new Clazz();
console.log(instanceof Clazz);
console.log(Clazz.config);
console.log(o.getA());
console.log(o.a);

Subclass :

var instanceFactory = require('instance-factory')
  , Clazz, Subclazz, o;
 
Clazz = instanceFactory.createClass('Clazz', {
  constructor: function () {
    this.a = 3;
    this.b = 4;
  },
  methods: {
    getA: function () {
      return this.a;
    }
  }
});
Subclazz = instanceFactory.createClass('Subclazz', {
  parent: Clazz,
  defaults: {b: 5},
  methods: {
    getB: function () {
      return this.b;
    }
  }
});
= new Subclazz();
console.log(instanceof Subclazz);
console.log(instanceof Clazz);
console.log(o.getA());
console.log(o.getB());

Subclass of a subclass :

var instanceFactory = require('instance-factory')
  , Clazz, Subclazz, Child, o;
 
Clazz = instanceFactory.createClass('Clazz', {
  constructor: function () {
    this.a = 3;
    this.b = 4;
  },
  methods: {
    getA: function () {
      return this.a;
    }
  }
});
Subclazz = instanceFactory.createClass('Subclazz', {
  parent: Clazz,
  defaults: {b: 5},
  methods: {
    getB: function () {
      return this.b;
    }
  }
});
Child = instanceFactory.createClass('Child', function () { // class desc can also be specified with a function
  return {
    parent: Subclazz,
    defaults: {c: 6},
    methods: {
      getA: function () {
        return this.parent.getA.apply(this) * 2;
      },
      getC: function () {
        return this.c;
      },
      getSum: function () {
        return this.a + this.b + this.c;
      }
    }
  };
});
= new Child();
console.log(instanceof Child);
console.log(instanceof Subclazz);
console.log(instanceof Clazz);
console.log(o.getA());
console.log(o.getB());
console.log(o.getC());
console.log(o.getSum());

Enjoy !

Readme

Keywords

none

Package Sidebar

Install

npm i instance-factory

Weekly Downloads

1

Version

0.0.5

License

MIT

Last publish

Collaborators

  • openhoat