mo

A collection of OzJS core modules that form a library called "Mo"

npm install mo
1 downloads in the last week
39 downloads in the last month

Mo

  • A collection of OzJS core modules that form a library called "Mo"

In NodeJS

npm install mo

In browser

AMD and OzJS

Get the Code

Add to your project as new dependency

Or download directly from Github

Modules Overview

  • mo/lang:
  • mo/domready:
    • Non-plugin implementation of cross-browser DOM ready event
    • Based on OzJS's built-in module -- 'finish'
  • mo/browsers:
    • Standalone jQuery.browsers supports skin browsers popular in China
  • mo/cookie:
    • Simple wrapping for managing cookie
  • mo/template:
  • mo/network:
    • Standalone jQuery.ajax API and enhanced getJSON, and so on
  • mo/easing:
    • An easing library supports jquery.js, standalone module and CSS timing functions
  • mo/mainloop:
    • Implement and manage single loop for WebApp life cycle
    • Provide tweening API for both property animation and frame animation(canvas or css)
  • mo/key:
    • Wrapping API for keyboard events
    • Support key sequence, multiple key press, ...
  • mo/console:
    • Forwarding output of console API

Examples

API and usage

mo/lang

var _ = require('mo/lang');
  • _.ns(string, value) --
  • same as below

mo/lang/es5

require('mo/lang/es5'); // Add ES5 methods in browsers that don't natively support them
  • Array.prototype.forEach
  • Array.prototype.map
  • Array.prototype.filter
  • Array.prototype.reduce
  • Array.prototype.some
  • Array.prototype.every
  • Array.prototype.indexOf
  • Array.prototype.lastIndexOf
  • Array.isArray
  • String.prototype.trim
  • Object.keys
  • Object.create
  • Object.getPrototypeOf
  • Function.prototype.bind

mo/lang/type

var _ = require('mo/lang/type');
  • _.type(sth) --
  • _.isFunction(sth) --
  • _.isWindow(sth) --
  • _.isEmptyObject(sth) --

mo/lang/mix

var _ = require('mo/lang/mix');
  • _.mix(origin, obj1, obj2, ..., depth) --
  • _.merge(origin, obj1, obj2, ..., depth) --
  • _.interset(origin, obj1, obj2, ..., depth) --
  • _.copy(origin, depth) --
  • _.occupy(origin, obj, depth) --
  • _.defaults(origin, obj1, obj2, ..., depth) --
  • _.config(cfg, opt, DEFAULT_CFG) --
  • _.unique(list) --

mo/lang/oop

var _ = require('mo/lang/oop');

var List = _.construct(Array, /*mixes, */function(){
    this.superConstructor.apply(this, arguments);
    this.a = 1;
});

List.prototype.forEach = function(){
    return this.superMethod('forEach', arguments);
};

mo/lang/struct

var _ = require('mo/lang/struct');
  • _.index(array, key) --
  • _.fnQueue() --

mo/domready

require(['mo/domready'], function(none){
    // won't execute until the page's entire DOM has loaded
});

mo/browsers

var browsers = require('mo/browsers');
  • browsers.browser --
  • browsers.version --
  • browsers.engine --
  • browsers.engineversion --
  • browsers.os --
  • browsers.osversion --
  • browsers.isMobile --
  • browsers.skin --
  • browsers.rank --
  • browsers.ua --
  • browsers['msie'|'safari'|'mobilesafari'|'chrome'|'aosp'|'mozilla'|...] --
var cookie = require('mo/cookie');

cookie(name, value, {
    domain: 'ozjs.org', // '' as default
    path: '/', // '' as default
    expires: 365 // day,
    secure: ''
});

mo/template

var tpl = require('mo/template');
  • tpl.str2html(string) --
  • same as below

mo/template/string

var tpl = require('mo/template/string');
  • tpl.format(string, dict|list) --
  • tpl.escapeHTML(string) --
  • tpl.substr(string, limit, callback) --
  • tpl.strsize(string) --

mo/template/micro

var tpl = require('mo/template/micro');
  • tpl.convertTpl(tplName|tplString, dictData, namespace) --
  • tpl.reloadTpl(tplName) --

mo/network

var net = require('mo/network');
  • net.getScript(url, callback) --
  • net.getStyle(url) --
  • net.getJSON(url, params, callback, options) --
  • net.getRequest(url, params) --
  • net.parseJSON(data) --
  • same as below

mo/network/ajax

var net = require('mo/network/ajax');
  • net.ajax(options) --
  • net.params(data) --

mo/easing

var easingLib = require('mo/easing');
  • easingLib.def --
  • easingLib.values --
  • easingLib.functions --
// use it as extension of other library

var $ = require('jquery');
$.easing['jswing'] = $.easing['swing'];
$.extend($.easing, easingLib.functions);

require('mo/mainloop').config({
    easing: easingLib.functions
});

require('choreo').config({
    easing: easingLib
});

mo/mainloop

var loop = require('mo/mainloop');
  • loop.config(options) --
  • loop.run(optional_stageName) --
  • loop.pause(stageName) --
  • loop.complete(stageName) --
  • loop.remove(stageName) --
  • loop.info(stageName) --
  • loop.isRunning(stageName) --
  • loop.addStage(stageName, optional_canvas) --
  • loop.addRender(stageName, render, optional_canvas) --
  • loop.getRender(renderId) --
  • loop.addTween(stageName, current, end, duration, options) --

mo/key

var Key = require('mo/key');
  • Key.KEYS_CODE --
var key = Key(config);
  • key.addHandler(event, keyName, handler) --
  • key.down([keyName, ...], handler) --
  • key.up([keyName, ...], handler) --
  • key.press([keyName, ...], handler) --
  • key.reset() --
  • key.addRule(fn) --
  • key.enable() --
  • key.disable() --
  • key.check() --

mo/console

var console = require('mo/console');
  • console.config({ output: elm }) --
  • console.enable() --
  • console.disable() --
  • console.run(func) --
  • console.log(sth, sth, ...) --
  • console.info(sth, sth, ...) --
  • console.warn(sth, sth, ...) --
  • console.error(sth, sth, ...) --

Under construction...

More References

See OzJS Project Homepage

Release History

See OzJS Release History

License

Copyright (c) 2010 - 2013 dexteryy
Licensed under the MIT license.

npm loves you