Skip to content

Commit

Permalink
feat: new function: isLoaded to check if a module has been loaded
Browse files Browse the repository at this point in the history
This function lets you check if a module (or a list of modules) has been loaded into Angular or not.

Closes #79
  • Loading branch information
ocombe committed Nov 9, 2014
1 parent 07e3689 commit 364c9e9
Show file tree
Hide file tree
Showing 6 changed files with 249 additions and 37 deletions.
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,18 @@ $stateProvider.state('index', {
```


##Other functions
`$ocLazyLoad` provides a few other functions that might help you in a few specific cases:

- `setModuleConfig(moduleConfig)`: Let you define a module config object

- `getModuleConfig(moduleName)`: Let you get a module config object

- `getModules()`: Returns the list of loaded modules

- `isLoaded(modulesNames)`: Let you check if a module (or a list of modules) has been loaded into Angular or not


##Contribute
If you want to get started and the docs are not enough, see the examples in the 'example' folder !

Expand Down
68 changes: 59 additions & 9 deletions dist/ocLazyLoad.js
Original file line number Diff line number Diff line change
Expand Up @@ -315,27 +315,77 @@
}

return {
getModuleConfig: function(name) {
if(!modules[name]) {
/**
* Let you get a module config object
* @param moduleName String the name of the module
* @returns {*}
*/
getModuleConfig: function(moduleName) {
if(!angular.isString(moduleName)) {
throw new Error('You need to give the name of the module to get');
}
if(!modules[moduleName]) {
return null;
}
return modules[name];
return modules[moduleName];
},

setModuleConfig: function(module) {
modules[module.name] = module;
return module;
/**
* Let you define a module config object
* @param moduleConfig Object the module config object
* @returns {*}
*/
setModuleConfig: function(moduleConfig) {
if(!angular.isObject(moduleConfig)) {
throw new Error('You need to give the module config object to set');
}
modules[moduleConfig.name] = moduleConfig;
return moduleConfig;
},

/**
* Returns the list of loaded modules
* @returns {string[]}
*/
getModules: function() {
return regModules;
},

// deprecated
loadTemplateFile: function(paths, params) {
return filesLoader({files: paths}, params);
/**
* Let you check if a module has been loaded into Angular or not
* @param modulesNames String/Object a module name, or a list of module names
* @returns {boolean}
*/
isLoaded: function(modulesNames) {
var moduleLoaded = function(module) {
var isLoaded = regModules.indexOf(module) > -1;
if(!isLoaded) {
isLoaded = !!moduleExists(module);
}
return isLoaded;
}
if(angular.isString(modulesNames)) {
modulesNames = [modulesNames];
}
if(angular.isArray(modulesNames)) {
var i, len;
for(i = 0, len = modulesNames.length; i < len; i++) {
if(!moduleLoaded(modulesNames[i])) {
return false;
}
}
return true;
} else {
throw new Error('You need to define the module(s) name(s)');
}
},

/**
* Load a module or a list of modules into Angular
* @param module Mixed the name of a predefined module config object, or a module config object, or an array of either
* @param params Object optional parameters
* @returns promise
*/
load: function(module, params) {
var self = this,
config = null,
Expand Down
2 changes: 1 addition & 1 deletion dist/ocLazyLoad.min.js

Large diffs are not rendered by default.

68 changes: 59 additions & 9 deletions examples/example1/js/ocLazyLoad.js
Original file line number Diff line number Diff line change
Expand Up @@ -315,27 +315,77 @@
}

return {
getModuleConfig: function(name) {
if(!modules[name]) {
/**
* Let you get a module config object
* @param moduleName String the name of the module
* @returns {*}
*/
getModuleConfig: function(moduleName) {
if(!angular.isString(moduleName)) {
throw new Error('You need to give the name of the module to get');
}
if(!modules[moduleName]) {
return null;
}
return modules[name];
return modules[moduleName];
},

setModuleConfig: function(module) {
modules[module.name] = module;
return module;
/**
* Let you define a module config object
* @param moduleConfig Object the module config object
* @returns {*}
*/
setModuleConfig: function(moduleConfig) {
if(!angular.isObject(moduleConfig)) {
throw new Error('You need to give the module config object to set');
}
modules[moduleConfig.name] = moduleConfig;
return moduleConfig;
},

/**
* Returns the list of loaded modules
* @returns {string[]}
*/
getModules: function() {
return regModules;
},

// deprecated
loadTemplateFile: function(paths, params) {
return filesLoader({files: paths}, params);
/**
* Let you check if a module has been loaded into Angular or not
* @param modulesNames String/Object a module name, or a list of module names
* @returns {boolean}
*/
isLoaded: function(modulesNames) {
var moduleLoaded = function(module) {
var isLoaded = regModules.indexOf(module) > -1;
if(!isLoaded) {
isLoaded = !!moduleExists(module);
}
return isLoaded;
}
if(angular.isString(modulesNames)) {
modulesNames = [modulesNames];
}
if(angular.isArray(modulesNames)) {
var i, len;
for(i = 0, len = modulesNames.length; i < len; i++) {
if(!moduleLoaded(modulesNames[i])) {
return false;
}
}
return true;
} else {
throw new Error('You need to define the module(s) name(s)');
}
},

/**
* Load a module or a list of modules into Angular
* @param module Mixed the name of a predefined module config object, or a module config object, or an array of either
* @param params Object optional parameters
* @returns promise
*/
load: function(module, params) {
var self = this,
config = null,
Expand Down
68 changes: 59 additions & 9 deletions examples/example2/js/ocLazyLoad.js
Original file line number Diff line number Diff line change
Expand Up @@ -315,27 +315,77 @@
}

return {
getModuleConfig: function(name) {
if(!modules[name]) {
/**
* Let you get a module config object
* @param moduleName String the name of the module
* @returns {*}
*/
getModuleConfig: function(moduleName) {
if(!angular.isString(moduleName)) {
throw new Error('You need to give the name of the module to get');
}
if(!modules[moduleName]) {
return null;
}
return modules[name];
return modules[moduleName];
},

setModuleConfig: function(module) {
modules[module.name] = module;
return module;
/**
* Let you define a module config object
* @param moduleConfig Object the module config object
* @returns {*}
*/
setModuleConfig: function(moduleConfig) {
if(!angular.isObject(moduleConfig)) {
throw new Error('You need to give the module config object to set');
}
modules[moduleConfig.name] = moduleConfig;
return moduleConfig;
},

/**
* Returns the list of loaded modules
* @returns {string[]}
*/
getModules: function() {
return regModules;
},

// deprecated
loadTemplateFile: function(paths, params) {
return filesLoader({files: paths}, params);
/**
* Let you check if a module has been loaded into Angular or not
* @param modulesNames String/Object a module name, or a list of module names
* @returns {boolean}
*/
isLoaded: function(modulesNames) {
var moduleLoaded = function(module) {
var isLoaded = regModules.indexOf(module) > -1;
if(!isLoaded) {
isLoaded = !!moduleExists(module);
}
return isLoaded;
}
if(angular.isString(modulesNames)) {
modulesNames = [modulesNames];
}
if(angular.isArray(modulesNames)) {
var i, len;
for(i = 0, len = modulesNames.length; i < len; i++) {
if(!moduleLoaded(modulesNames[i])) {
return false;
}
}
return true;
} else {
throw new Error('You need to define the module(s) name(s)');
}
},

/**
* Load a module or a list of modules into Angular
* @param module Mixed the name of a predefined module config object, or a module config object, or an array of either
* @param params Object optional parameters
* @returns promise
*/
load: function(module, params) {
var self = this,
config = null,
Expand Down
68 changes: 59 additions & 9 deletions src/ocLazyLoad.js
Original file line number Diff line number Diff line change
Expand Up @@ -308,27 +308,77 @@
}

return {
getModuleConfig: function(name) {
if(!modules[name]) {
/**
* Let you get a module config object
* @param moduleName String the name of the module
* @returns {*}
*/
getModuleConfig: function(moduleName) {
if(!angular.isString(moduleName)) {
throw new Error('You need to give the name of the module to get');
}
if(!modules[moduleName]) {
return null;
}
return modules[name];
return modules[moduleName];
},

setModuleConfig: function(module) {
modules[module.name] = module;
return module;
/**
* Let you define a module config object
* @param moduleConfig Object the module config object
* @returns {*}
*/
setModuleConfig: function(moduleConfig) {
if(!angular.isObject(moduleConfig)) {
throw new Error('You need to give the module config object to set');
}
modules[moduleConfig.name] = moduleConfig;
return moduleConfig;
},

/**
* Returns the list of loaded modules
* @returns {string[]}
*/
getModules: function() {
return regModules;
},

// deprecated
loadTemplateFile: function(paths, params) {
return filesLoader({files: paths}, params);
/**
* Let you check if a module has been loaded into Angular or not
* @param modulesNames String/Object a module name, or a list of module names
* @returns {boolean}
*/
isLoaded: function(modulesNames) {
var moduleLoaded = function(module) {
var isLoaded = regModules.indexOf(module) > -1;
if(!isLoaded) {
isLoaded = !!moduleExists(module);
}
return isLoaded;
}
if(angular.isString(modulesNames)) {
modulesNames = [modulesNames];
}
if(angular.isArray(modulesNames)) {
var i, len;
for(i = 0, len = modulesNames.length; i < len; i++) {
if(!moduleLoaded(modulesNames[i])) {
return false;
}
}
return true;
} else {
throw new Error('You need to define the module(s) name(s)');
}
},

/**
* Load a module or a list of modules into Angular
* @param module Mixed the name of a predefined module config object, or a module config object, or an array of either
* @param params Object optional parameters
* @returns promise
*/
load: function(module, params) {
var self = this,
config = null,
Expand Down

0 comments on commit 364c9e9

Please sign in to comment.