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.