mo
mo copied to clipboard
A collection of OzJS core modules that form a library called "Mo"
Mo
- A collection of OzJS core modules that form a library called "Mo"
In NodeJS
npm install mo
In browser
bower install mo
Or download directly from Github
AMD and OzJS
- Mo is wrapped as a number of mutually independent AMD (Asynchronous Module Definition) modules. You should use them with oz.js (or require.js or similar for handling dependencies).
- See http://ozjs.org for details.
Modules Overview
- mo/lang:
- ES5/6 shim and minimum utilities for language enhancement
- mo/lang/es5
- Array + String + Object + Function + Date API shims
- mo/lang/es6
- mo/lang/es6-utils
- Array + String + Number + Object API shims
- mo/lang/es6-collection
- Map + Set + WeakMap + WeakSet shims
- mo/lang/es6-promise
- Promise shim
- mo/lang/es6-utils
- mo/lang/type
- mo/lang/mix
- mo/lang/oop
- mo/lang/struct
- 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:
- A lightweight and enhanced micro-template implementation, and minimum utilities
- mo/template/string:
- mo/template/micro:
- 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');
- same as below
mo/lang/es5
require('mo/lang/es5');
Array.prototype.forEachArray.prototype.mapArray.prototype.filterArray.prototype.reduceArray.prototype.reduceRightArray.prototype.someArray.prototype.everyArray.prototype.indexOfArray.prototype.lastIndexOfArray.isArrayString.prototype.trimDate.nowObject.keysObject.create- partial support:Object.create(obj)/Object.create(obj, { method: { value: func } })Object.getPrototypeOfFunction.prototype.bind
mo/lang/es6
require('mo/lang/es6');
- same as
mo/lang/es6-utils+mo/lang/es6-collection+mo/lang/es6-promise
mo/lang/es6-utils
require('mo/lang/es6-utils');
Array.prototype.findArray.prototype.findIndexArray.prototype.fillArray.prototype.copyWithinArray.ofArray.fromString.prototype.startsWithString.prototype.endsWithString.prototype.containsString.prototype.repeatNumber.MAX_SAFE_INTEGERNumber.MIN_SAFE_INTEGERNumber.EPSILONNumber.isFiniteNumber.isIntegerNumber.isSafeIntegerNumber.isNaNObject.isObject.assign
mo/lang/es6-collection
require('mo/lang/es6-collection');
Map.prototype.getMap.prototype.setMap.prototype.deleteMap.prototype.clearMap.prototype.sizeMap.prototype.forEachMap.prototype.hasWeakMap.prototype.getWeakMap.prototype.setWeakMap.prototype.deleteWeakMap.prototype.clearWeakMap.prototype.hasSet.prototype.addSet.prototype.deleteSet.prototype.clearSet.prototype.sizeSet.prototype.forEachSet.prototype.hasWeakSet.prototype.addWeakSet.prototype.deleteWeakSet.prototype.clearWeakSet.prototype.has
mo/lang/es6-promise
require('mo/lang/es6-promise');
new Promise(function(resolve, reject){})Promise.prototype.then(onFulfilled, onRejected)Promise.prototype.catch(onRejected)Promise.resolve(result|thenable)Promise.reject(reason)Promise.all(promises)Promise.race(promises)
mo/lang/type
var _ = require('mo/lang/type');
_.type(sth)--_.isFunction(sth)--_.isWindow(sth)--_.isEmptyObject(sth)--_.isArraylike(sth)--_.ns(string, value)--
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)--_.each(obj, mapfn, context)--
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'|...]--
mo/cookie
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
Release History
License
Copyright (c) 2010 - 2013 dexteryy
Licensed under the MIT license.