isg-types

Free typification built on isg-events module.

npm install isg-types
8 downloads in the last month

isg-types@0.0.2

Free typification built on isg-events module.

Install

  • NPM npm install isg-types
  • GIT git clone https://github.com/isglazunov/isg-types.git
  • download from releases

Require

Depends on the modules:

Indirect dependency

The module can be connected using all supported module isg-connector@0.0.2 methods.

window (Browser)

<script src="isg-types.js"></script>

define (AMD/Requirejs)

define(['isg-types.js'], function(isgTypes){});

require (Node.js)

var isgTypes = require('isg-types');

Usage

Server typing

Container type described and methods for their descriptions.

var server = new isgTypes.Server;

or

var MyServer = function(){};
MyServer.prototype = new isgTypes.Server;
var server = new MyServer;

server.describe(name, description[, options]);

Description of the types of events are stored as isg-events variable in server._isgTypesEvents. The options are passed to the method as events.on.

server.describe('user', function(next, client, exports){
    exports.isAdmin = function(){
        return _.indexOf(client.groups, 'admin') !== -1
    };
});

Client typing

The object client will have a functional initialized types.

var client = new isgTypes.Client;

or

var MyClient = function(){};
MyClient.prototype = new isgTypes.Client;
var client = new MyClient;

client.initialize([callback]);

Starts the initialization of all types that are contained in the array client._isgTypes. In other words, starts each by name as the event type in the object server._isgTypesEvents. The argument callback will be executed after the initialization of all types.

client.initialize(function(types, client, exports){
    console.log('trigger');
});

client.as(name);

Gets exports specified type. Allows the use of a functional type of an object of client.

client.groups = ['admin']
client.as('user').isAdming() // => true;

Versions

0.0.2

To connect the module used isg-connector@0.0.2.

0.0.1

The basic functionality.

npm loves you