JSPM

inherit-prototypes

0.1.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 14
  • Score
    100M100P100Q56045F
  • License ISC

inherit prototypes of ES6 / ES5 classes in a simple compact function

Package Exports

  • inherit-prototypes

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (inherit-prototypes) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

What Does It Do?

This package allows you extend / inherit a class with the prototypes of an array of classes. ES6/ES5 compatible.

How to Use

npm install inherit-prototypes --save
var inherit = require('inherit-prototypes');
//Includes is a class you want to extend Prototypes
class Includes {
someCoolPrototype (){... }
}
//IWantCoolPrototypes is a class that wants the Includes Prototypes.
class IWantCoolPrototypes extends Array {}

//Create an array of dependencies and call the inherit function as below.
var dependencies = [includes, String, Object];
inherit(IWantCoolPrototypes, dependencies);

TESTS

var chai = require('chai');
var expect = chai.expect;
var inherit = require('../src/inherit-prototypes');


describe('ES6 class extends some class prorotypes', function () {
  it('should extend some ES6 style classes', function(){
    class base extends Array {}

    var dependencies = [String, Object];
    inherit(base, dependencies);

    var arr = new base();
    arr.push('lets extend stuff in es6');
    expect(arr[0]).equals('lets extend stuff in es6');
    expect(arr[0].toUpperCase()).equals('LETS EXTEND STUFF IN ES6')

  });
});

describe('ES5 class extends some class prototypes', function(){
    it('should extend some E5 style classes', function(){
        var dependencies = [String, Object, Array];
        var base = {};
        inherit(base, dependencies);
        base.push('lets extend stuff in es5');

        expect(base[0]).equals('lets extend stuff in es5');
        expect(base[0].toUpperCase()).equals('LETS EXTEND STUFF IN ES5');

    });
});