JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 95
  • Score
    100M100P100Q85701F
  • License MIT

uclass is a 'before ES6' class syntax that mimics mootools/base.js & Class.Mutator.Bind syntax. There is no runtime overload as this is just a syntax wrapper around javascript native Prototype. Feel free to switch to a ES6 classes / Typescript anytime after.

Package Exports

  • uclass
  • uclass/events
  • uclass/options
  • uclass/static

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 (uclass) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Motivation

uclass is a micro class that mimic mootools' base Class.js & Class.Mutator.Bind syntax, with prime's inheritance stack (as in, explicit parent binding). There is no runtime overload as this is just a syntax wrapper around javascript native Prototype.

  • As in prime, uclass use mout for javascript utilities.
  • As in primish, uclass keep the old "Extends" & "Implements" design/syntax.

Example

var Class  = require('uclass');
var statik = require('uclass/static');

var Ball = new Class({
 Binds:['step'], //force 
  
 color :'red',
 direction:[0,0],
 radius:0,
 position:[0,0],
 
 initialize: function(radius, direction){
   this.radius = radius || 10;
   this.direction = direction || [Math.random()*10, Math.random()*10];
 },
 
 step:function(){
  this.position[0] += this.direction[0];
  this.position[1] += this.direction[1];
 },


 generate : statik( function(radius, position){
    return new Ball(radius, position);
 } ),

});

var ball = new Ball(12);

Api/mixin

Using Implements : [list of traits] you can add method to your class prototype using any native object

Implements : [
  require('events').EventEmitter, //for node
  require('uclass/events'),       //for the browser
  require('uclass/options'),      //add setOptions (merge(this.options))
  require('uclass/static'),       //declare a static member
}

#License MIT License style, please distribute & credit me somewhere.