1.7.3 • Published 9 years ago
mo v1.7.3
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.
1.7.3
9 years ago
1.7.2
10 years ago
1.7.1
10 years ago
1.7.0
10 years ago
1.6.7
10 years ago
1.6.6
10 years ago
1.6.1
11 years ago
1.6.0
11 years ago
1.5.6
11 years ago
1.5.5
11 years ago
1.5.4
11 years ago
1.5.3
11 years ago
1.5.2
11 years ago
1.5.1
11 years ago
1.5.0
11 years ago
1.4.0
11 years ago
1.3.0
11 years ago
1.2.0
11 years ago
1.1.2
11 years ago