From 44227f2d6717e2152299cfa452fdace2a082958b Mon Sep 17 00:00:00 2001 From: Lars Jung Date: Wed, 20 Aug 2014 01:30:26 +0200 Subject: [PATCH] Update modulejs to 1.0.0. --- .editorconfig | 10 +- CHANGELOG.md | 1 + src/_h5ai/client/js/lib/modulejs-0.4.5.js | 293 ---------------------- src/_h5ai/client/js/lib/modulejs-1.0.0.js | 292 +++++++++++++++++++++ 4 files changed, 301 insertions(+), 295 deletions(-) delete mode 100644 src/_h5ai/client/js/lib/modulejs-0.4.5.js create mode 100644 src/_h5ai/client/js/lib/modulejs-1.0.0.js diff --git a/.editorconfig b/.editorconfig index 6b509418..7daf6193 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -# http://EditorConfig.org +# eitorconfig.org root = true @@ -12,7 +12,13 @@ insert_final_newline = true trim_trailing_whitespace = true -[{package.json,.travis.yml}] +[package.json] +indent_style = space +indent_size = 2 + + +[.travis.yml] +indent_style = space indent_size = 2 diff --git a/CHANGELOG.md b/CHANGELOG.md index c0fbeacf..c347453c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ## develop * adds editorconfig +* updates `modulejs` to 1.0.0 ## v0.26.1 - *2014-08-17* diff --git a/src/_h5ai/client/js/lib/modulejs-0.4.5.js b/src/_h5ai/client/js/lib/modulejs-0.4.5.js deleted file mode 100644 index dbf2a365..00000000 --- a/src/_h5ai/client/js/lib/modulejs-0.4.5.js +++ /dev/null @@ -1,293 +0,0 @@ -/*! modulejs 0.4.5 - //larsjung.de/modulejs/ - MIT License */ - -(function (global, name) { - 'use strict'; - - - // Helpers - // ------- - - // References. - var objProto = Object.prototype, - arrayForEach = Array.prototype.forEach, - - // Returns a function that returns `true` if `arg` is of the correct `type`, otherwise `false`. - createIsTypeFn = function (type) { - - return function (arg) { - - return objProto.toString.call(arg) === '[object ' + type + ']'; - }; - }, - - // ### isString - // Returns `true` if argument is a string, otherwise `false`. - isString = createIsTypeFn('String'), - - // ### isFunction - // Returns `true` if argument is a function, otherwise `false`. - isFunction = createIsTypeFn('Function'), - - // ### isArray - // Returns `true` if argument is an array, otherwise `false`. - isArray = Array.isArray || createIsTypeFn('Array'), - - // ### isObject - // Returns `true` if argument is an object, otherwise `false`. - isObject = function (arg) { - - return arg === new Object(arg); - }, - - // ### has - // Short cut for `hasOwnProperty`. - has = function (arg, id) { - - return objProto.hasOwnProperty.call(arg, id); - }, - - // ### each - // Iterates over all elements af an array or all own keys of an object. - each = function (obj, iterator, context) { - - if (arrayForEach && obj.forEach === arrayForEach) { - obj.forEach(iterator, context); - } else if (obj.length === +obj.length) { - for (var i = 0, l = obj.length; i < l; i += 1) { - iterator.call(context, obj[i], i, obj); - } - } else { - for (var key in obj) { - if (has(obj, key)) { - iterator.call(context, obj[key], key, obj); - } - } - } - }, - - // ### contains - // Returns `true` if array contains element, otherwise `false`. - contains = function (array, element) { - - for (var i = 0, l = array.length; i < l; i += 1) { - if (array[i] === element) { - return true; - } - } - return false; - }, - - // ### uniq - // Returns an new array containing no duplicates. Preserves first occurence and order. - uniq = function (array) { - - var elements = {}, - result = []; - - each(array, function (el) { - - if (!has(elements, el)) { - result.push(el); - elements[el] = 1; - } - }); - - return result; - }, - - // ### err - // Throws an error if `condition` is `true`. - err = function (condition, code, message) { - - if (condition) { - throw { - // machine readable - code: code, - - // human readable - msg: message, - - // let it be helpful in consoles - toString: function () { - - return name + ' error ' + code + ': ' + message; - } - }; - } - }, - - - - // Private - // ------- - - // ### definitions - // Module definitions. - definitions = {}, - - // ### instances - // Module instances. - instances = {}, - - // ### resolve - // Resolves an `id` to an object, or if `onlyDepIds` is `true` only returns dependency-ids. - // `stack` is used internal to check for circular dependencies. - resolve = function (id, onlyDepIds, stack) { - - // check arguments - err(!isString(id), 31, 'id must be a string "' + id + '"'); - - // if a module is required that was already created return that object - if (!onlyDepIds && has(instances, id)) { - return instances[id]; - } - - // check if `id` is defined - var def = definitions[id]; - err(!def, 32, 'id not defined "' + id + '"'); - - // copy resolve stack and add this `id` - stack = (stack || []).slice(0); - stack.push(id); - - // if onlyDepIds this will hold the dependency-ids, otherwise it will hold the dependency-objects - var deps = []; - - each(def.deps, function (depId) { - - // check for circular dependencies - err(contains(stack, depId), 33, 'circular dependencies: ' + stack + ' & ' + depId); - - if (onlyDepIds) { - deps = deps.concat(resolve(depId, onlyDepIds, stack)); - deps.push(depId); - } else { - deps.push(resolve(depId, onlyDepIds, stack)); - } - }); - - // if `onlyDepIds` return only dependency-ids in right order - if (onlyDepIds) { - return uniq(deps); - } - - // create, memorize and return object - var obj = def.fn.apply(global, deps); - instances[id] = obj; - return obj; - }, - - - - // Public - // ------ - - // ### define - // Defines a module for `id: String`, optional `deps: Array[String]`, - // `arg: Object/function`. - define = function (id, deps, arg) { - - // sort arguments - if (arg === undefined) { - arg = deps; - deps = []; - } - // check arguments - err(!isString(id), 11, 'id must be a string "' + id + '"'); - err(definitions[id], 12, 'id already defined "' + id + '"'); - err(!isArray(deps), 13, 'dependencies for "' + id + '" must be an array "' + deps + '"'); - err(!isObject(arg) && !isFunction(arg), 14, 'arg for "' + id + '" must be object or function "' + arg + '"'); - - // accept definition - definitions[id] = { - id: id, - deps: deps, - fn: isFunction(arg) ? arg : function () { return arg; } - }; - }, - - // ### require - // Returns an instance for `id`. - require = function (id) { - - return resolve(id); - }, - - // ### state - // Returns an object that holds infos about the current definitions and dependencies. - state = function () { - - var res = {}; - - each(definitions, function (def, id) { - - res[id] = { - - // direct dependencies - deps: def.deps.slice(0), - - // transitive dependencies - reqs: resolve(id, true), - - // already initiated/required - init: has(instances, id) - }; - }); - - each(definitions, function (def, id) { - - var inv = []; - each(definitions, function (def2, id2) { - - if (contains(res[id2].reqs, id)) { - inv.push(id2); - } - }); - - // all inverse dependencies - res[id].reqd = inv; - }); - - return res; - }, - - // ### log - // Returns a string that displays module dependencies. - log = function (inv) { - - var out = '\n'; - - each(state(), function (st, id) { - - var list = inv ? st.reqd : st.reqs; - out += (st.init ? '* ' : ' ') + id + ' -> [ ' + list.join(', ') + ' ]\n'; - }); - - return out; - }; - - - // Register Public API - // ------------------- - global[name] = { - define: define, - require: require, - state: state, - log: log, - _private: { - isString: isString, - isFunction: isFunction, - isArray: isArray, - isObject: isObject, - has: has, - each: each, - contains: contains, - uniq: uniq, - err: err, - definitions: definitions, - instances: instances, - resolve: resolve - } - }; - -}(this, 'modulejs')); diff --git a/src/_h5ai/client/js/lib/modulejs-1.0.0.js b/src/_h5ai/client/js/lib/modulejs-1.0.0.js new file mode 100644 index 00000000..89a019e7 --- /dev/null +++ b/src/_h5ai/client/js/lib/modulejs-1.0.0.js @@ -0,0 +1,292 @@ +/* modulejs 1.0.0 - http://larsjung.de/modulejs/ */ +(function (global, name) { + 'use strict'; + + + // Helpers + // ------- + + // References. + var objProto = Object.prototype, + arrayForEach = Array.prototype.forEach, + + // Returns a function that returns `true` if `arg` is of the correct `type`, otherwise `false`. + createIsTypeFn = function (type) { + + return function (arg) { + + return objProto.toString.call(arg) === '[object ' + type + ']'; + }; + }, + + // ### isString + // Returns `true` if argument is a string, otherwise `false`. + isString = createIsTypeFn('String'), + + // ### isFunction + // Returns `true` if argument is a function, otherwise `false`. + isFunction = createIsTypeFn('Function'), + + // ### isArray + // Returns `true` if argument is an array, otherwise `false`. + isArray = Array.isArray || createIsTypeFn('Array'), + + // ### isObject + // Returns `true` if argument is an object, otherwise `false`. + isObject = function (arg) { + + return arg === new Object(arg); + }, + + // ### has + // Short cut for `hasOwnProperty`. + has = function (arg, id) { + + return objProto.hasOwnProperty.call(arg, id); + }, + + // ### each + // Iterates over all elements af an array or all own keys of an object. + each = function (obj, iterator, context) { + + if (arrayForEach && obj.forEach === arrayForEach) { + obj.forEach(iterator, context); + } else if (obj.length === +obj.length) { + for (var i = 0, l = obj.length; i < l; i += 1) { + iterator.call(context, obj[i], i, obj); + } + } else { + for (var key in obj) { + if (has(obj, key)) { + iterator.call(context, obj[key], key, obj); + } + } + } + }, + + // ### contains + // Returns `true` if array contains element, otherwise `false`. + contains = function (array, element) { + + for (var i = 0, l = array.length; i < l; i += 1) { + if (array[i] === element) { + return true; + } + } + return false; + }, + + // ### uniq + // Returns an new array containing no duplicates. Preserves first occurence and order. + uniq = function (array) { + + var elements = {}, + result = []; + + each(array, function (el) { + + if (!has(elements, el)) { + result.push(el); + elements[el] = 1; + } + }); + + return result; + }, + + // ### err + // Throws an error if `condition` is `true`. + err = function (condition, code, message) { + + if (condition) { + throw { + // machine readable + code: code, + + // human readable + msg: message, + + // let it be helpful in consoles + toString: function () { + + return name + ' error ' + code + ': ' + message; + } + }; + } + }, + + + + // Private + // ------- + + // ### definitions + // Module definitions. + definitions = {}, + + // ### instances + // Module instances. + instances = {}, + + // ### resolve + // Resolves an `id` to an object, or if `onlyDepIds` is `true` only returns dependency-ids. + // `stack` is used internal to check for circular dependencies. + resolve = function (id, onlyDepIds, stack) { + + // check arguments + err(!isString(id), 31, 'id must be a string "' + id + '"'); + + // if a module is required that was already created return that object + if (!onlyDepIds && has(instances, id)) { + return instances[id]; + } + + // check if `id` is defined + var def = definitions[id]; + err(!def, 32, 'id not defined "' + id + '"'); + + // copy resolve stack and add this `id` + stack = (stack || []).slice(0); + stack.push(id); + + // if onlyDepIds this will hold the dependency-ids, otherwise it will hold the dependency-objects + var deps = []; + + each(def.deps, function (depId) { + + // check for circular dependencies + err(contains(stack, depId), 33, 'circular dependencies: ' + stack + ' & ' + depId); + + if (onlyDepIds) { + deps = deps.concat(resolve(depId, onlyDepIds, stack)); + deps.push(depId); + } else { + deps.push(resolve(depId, onlyDepIds, stack)); + } + }); + + // if `onlyDepIds` return only dependency-ids in right order + if (onlyDepIds) { + return uniq(deps); + } + + // create, memorize and return object + var obj = def.fn.apply(global, deps); + instances[id] = obj; + return obj; + }, + + + + // Public + // ------ + + // ### define + // Defines a module for `id: String`, optional `deps: Array[String]`, + // `arg: Object/function`. + define = function (id, deps, arg) { + + // sort arguments + if (arg === undefined) { + arg = deps; + deps = []; + } + // check arguments + err(!isString(id), 11, 'id must be a string "' + id + '"'); + err(definitions[id], 12, 'id already defined "' + id + '"'); + err(!isArray(deps), 13, 'dependencies for "' + id + '" must be an array "' + deps + '"'); + err(!isObject(arg) && !isFunction(arg), 14, 'arg for "' + id + '" must be object or function "' + arg + '"'); + + // accept definition + definitions[id] = { + id: id, + deps: deps, + fn: isFunction(arg) ? arg : function () { return arg; } + }; + }, + + // ### require + // Returns an instance for `id`. + require = function (id) { + + return resolve(id); + }, + + // ### state + // Returns an object that holds infos about the current definitions and dependencies. + state = function () { + + var res = {}; + + each(definitions, function (def, id) { + + res[id] = { + + // direct dependencies + deps: def.deps.slice(0), + + // transitive dependencies + reqs: resolve(id, true), + + // already initiated/required + init: has(instances, id) + }; + }); + + each(definitions, function (def, id) { + + var inv = []; + each(definitions, function (def2, id2) { + + if (contains(res[id2].reqs, id)) { + inv.push(id2); + } + }); + + // all inverse dependencies + res[id].reqd = inv; + }); + + return res; + }, + + // ### log + // Returns a string that displays module dependencies. + log = function (inv) { + + var out = '\n'; + + each(state(), function (st, id) { + + var list = inv ? st.reqd : st.reqs; + out += (st.init ? '* ' : ' ') + id + ' -> [ ' + list.join(', ') + ' ]\n'; + }); + + return out; + }; + + + // Register Public API + // ------------------- + global[name] = { + define: define, + require: require, + state: state, + log: log, + _private: { + isString: isString, + isFunction: isFunction, + isArray: isArray, + isObject: isObject, + has: has, + each: each, + contains: contains, + uniq: uniq, + err: err, + definitions: definitions, + instances: instances, + resolve: resolve + } + }; + +}(this, 'modulejs'));