Security News
The Unpaid Backbone of Open Source: Solo Maintainers Face Increasing Security Demands
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
@haventech/supertype
Advanced tools
A type system for classical inheritence, mix-ins and composition.
SuperType is a type system for JavaScript that supports:
Classical inheritence
Mixins
Composition including collections
Include lib/index.js
for use in the browser. Install on node via npm:
npm install supertype
It is automatically installed as a dependency for Amorphic
Classes are defined as "templates".
ObjectTemplate = require('supertype');
Animal = ObjectTemplate.create("Animal",
{
name: {type: String},
isMammal: {type: Boolean, value: true},
legs: {type: Number, value: 2}
});
Lion = Animal.extend("Lion",
{
init: function () {
Animal.call(this);
this.name = "Lion";
this.legs = 4;
},
canRoar: function () {return true}
});
Bear = Animal.extend("Bear",
{
init: function () {
Animal.call(this);
this.name = "Bear";
},
canHug: function () {return true}
});
Ark = ObjectTemplate.create("Ark",
{
animals: {type: Array, of: Animal, value: []},
board: function (animal) {
animal.ark = this;
this.animals.push(animal)
}
});
Animal.mixin(
{
ark: {type: Ark}
});
You create objects using new
:
var ark1 = new Ark();
ark1.board(new Lion());
ark1.board(new Bear());
var ark2 = new Ark();
ark2.board(new Lion());
ark2.board(new Bear());
Because SuperType knows about the interrelationships between your objects you can serialize and de-serialize even though you have circular references:
var serialArk1 = ark1.toJSONString();
var serialArk2 = ark2.toJSONString();
ark1 = Ark.fromJSON(serialArk1);
ark2 = Ark.fromJSON(serialArk2);
SuperType is licensed under the MIT license
FAQs
A type system for classical inheritence, mix-ins and composition.
The npm package @haventech/supertype receives a total of 80 weekly downloads. As such, @haventech/supertype popularity was classified as not popular.
We found that @haventech/supertype demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
Security News
License exceptions modify the terms of open source licenses, impacting how software can be used, modified, and distributed. Developers should be aware of the legal implications of these exceptions.
Security News
A developer is accusing Tencent of violating the GPL by modifying a Python utility and changing its license to BSD, highlighting the importance of copyleft compliance.