UNPKG

mmir-lib

Version:

MMIR (Mobile Multimodal Interaction and Relay) library

63 lines (58 loc) 1.67 kB
define(['mmirf/util/isArray'], /** * Maps requirejs module IDs from mmir-lib v3 (and earlier) to module IDs used in mmir-lib version >= 4. * * * * @class * @name mmir.compat.ModuleIdCompatFunc * @static * @hideconstructor * * @example * mmir.require(['mmirf/moduleIdCompatibilityFunc', 'mmirf/core'], function(moduleIdCompatibilityFunc, mmir){ * function moduleMapFunc(id){ * return if(isOldId(id)) return 'mmirf/'+id; * return id; * } * var req = moduleIdCompatibilityFunc(mmir.require, moduleMapFunc); * mmir.require = req; * }); * * @public */ function(isArray){ /** * HELPER for creating require() function that maps old module IDs to new ones. * * @param {Function} requirejs * the require function, e.g. <code>mmir.require</code> * * @param {Function} getIdFunc * function for mapping module IDs: * takes a string (module ID) as input, and returns a string (the new/valid module ID) * <code>getIdFunc(id: string): string</code> * * @memberOf mmir.compat.ModuleIdCompatFunc# */ var createModuleMapRequire = function(requirejs, getIdFunc) { var _id = getIdFunc; //helper function that maps module IDs to v3 module names, if necessary return function(){ var len = arguments.length; if(len > 0){ var dep = arguments[0]; if(isArray(dep)){ for(var i=dep.length - 1; i >= 0; --i){ dep[i] = _id(dep[i]); } } else if(typeof dep === 'string') { dep = _id(dep); } arguments[0] = dep; } return requirejs.apply(this, arguments); }; }; return createModuleMapRequire; });