Module jls.lang.loader
This module contains helper functions to load Lua modules.
The loader module is fully compatible with the Lua require function.
Functions
tryRequire (name) | Requires the specified Lua module. |
requireList (names[, try]) | Requires the specified Lua modules. |
getRequired (name) | Returns the specified Lua module if already loaded. |
singleRequirer (name) | Returns a funtion that will try to require the specified Lua module only once. |
lazyFunction (providerFn) | Builds a function by requiring its dependencies on first call. |
requireOne (...) | Requires one of the specified Lua modules. |
requireByPath (path[, try]) | Requires the Lua object specified by its path. |
unload (name) | Unloads the specified Lua module. |
unloadAll (pattern) | Unloads all the specified Lua modules. |
load (name[, path[, try[, asRequire]]]) | Loads a module using a specific path. |
Functions
- tryRequire (name)
-
Requires the specified Lua module.
Parameters:
- name string the name of the module to load
Returns:
-
the loaded module or nil if an error occured
- requireList (names[, try])
-
Requires the specified Lua modules.
Parameters:
- names table the list of the modules to load
- try boolean true to return nil in place of raising an error (optional)
Returns:
-
the loaded modules or nil values
- getRequired (name)
-
Returns the specified Lua module if already loaded.
Parameters:
- name string the name of the module to load
Returns:
-
the already loaded module or nil if none
- singleRequirer (name)
-
Returns a funtion that will try to require the specified Lua module only once.
Parameters:
- name string the name of the module to load
Returns:
-
funtion
a function that will return the specified module or nil if an error occured
- lazyFunction (providerFn)
-
Builds a function by requiring its dependencies on first call.
Parameters:
- providerFn function A function which will be called only once with the loaded modules or nil values when modules are not found.
Returns:
-
funtion
the function returned by the providerFn parameter.
- requireOne (...)
-
Requires one of the specified Lua modules.
The order is: the first already loaded module then
the first module whose name ends by an already loaded module.
If no module could be loaded then an error is raised.
Parameters:
- ... the ordered names of the module eligible to load
Returns:
-
the loaded module
Usage:
return require('jls.lang.loader').requireOne('jls.io.fs-luv', 'jls.io.fs-lfs')
- requireByPath (path[, try])
-
Requires the Lua object specified by its path.
Parameters:
- path string the pathname of the module to load
- try boolean true to return nil in place of raising an error (optional)
Returns:
-
the loaded module
- unload (name)
-
Unloads the specified Lua module.
The module is removed from the loaded modules and will be loaded again on a require.
This is not the opposite of the require and bad things could happen.
Parameters:
- name string the name of the module to unload
- unloadAll (pattern)
-
Unloads all the specified Lua modules.
Parameters:
- pattern string the pattern of the module names to unload
Usage:
require('jls.lang.loader').unloadAll('^jls%.')
- load (name[, path[, try[, asRequire]]])
-
Loads a module using a specific path.
Parameters:
- name string the name of the module to load
- path string the path of the module to load (optional)
- try boolean true to return nil in place of raising an error (optional)
- asRequire boolean true to be compatible with require by using package.loaded (optional)
Returns:
-
the loaded module or nil if an error occured