mo
v1.7.3
Published
A collection of OzJS core modules that form a library called "Mo"
Downloads
2,753
Readme
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.forEach
Array.prototype.map
Array.prototype.filter
Array.prototype.reduce
Array.prototype.reduceRight
Array.prototype.some
Array.prototype.every
Array.prototype.indexOf
Array.prototype.lastIndexOf
Array.isArray
String.prototype.trim
Date.now
Object.keys
Object.create
- partial support:Object.create(obj)
/Object.create(obj, { method: { value: func } })
Object.getPrototypeOf
Function.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.find
Array.prototype.findIndex
Array.prototype.fill
Array.prototype.copyWithin
Array.of
Array.from
String.prototype.startsWith
String.prototype.endsWith
String.prototype.contains
String.prototype.repeat
Number.MAX_SAFE_INTEGER
Number.MIN_SAFE_INTEGER
Number.EPSILON
Number.isFinite
Number.isInteger
Number.isSafeInteger
Number.isNaN
Object.is
Object.assign
mo/lang/es6-collection
require('mo/lang/es6-collection');
Map.prototype.get
Map.prototype.set
Map.prototype.delete
Map.prototype.clear
Map.prototype.size
Map.prototype.forEach
Map.prototype.has
WeakMap.prototype.get
WeakMap.prototype.set
WeakMap.prototype.delete
WeakMap.prototype.clear
WeakMap.prototype.has
Set.prototype.add
Set.prototype.delete
Set.prototype.clear
Set.prototype.size
Set.prototype.forEach
Set.prototype.has
WeakSet.prototype.add
WeakSet.prototype.delete
WeakSet.prototype.clear
WeakSet.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.