module/add-paths function source
(module/add-paths ext loader) Add paths to module/paths for a given loader such that the generated paths behave like other module types, including relative imports and syspath imports. ext is the file extension to associate with this module type, including the dot. loader is the keyword name of a loader that is module/loaders. Returns the modified module/paths.
module/cache table source
Table mapping loaded module identifiers to their environments.
(module/expand-path path template) Expands a path template as found in module/paths for module/find. This takes in a path (the argument to require) and a template string, template, to expand the path to a path that can be used for importing files. The replacements are as follows: :all: the value of path verbatim :cur: the current file, or (dyn :current-file) :dir: the directory containing the current file :name: the name component of path, with extension if given :native: the extension used to load natives, .so or .dll :sys: the system path, or (dyn :syspath)
module/find function source
(module/find path) Try to match a module or path name from the patterns in module/paths. Returns a tuple (fullpath kind) where the kind is one of :source, :native, or image if the module is found, otherwise a tuple with nil followed by an error message.
module/loaders table source
A table of loading method names to loading functions. This table lets require and import load many different kinds of files as module.
module/loading table source
Table mapping currently loading modules to true. Used to prevent circular dependencies.
module/paths array source
The list of paths to look for modules, templated for module/expand-path. Each element is a two element tuple, containing the path template and a keyword :source, :native, or :image indicating how require should load files found at these paths. A tuple can also contain a third element, specifying a filter that prevents module/find from searching that path template if the filter doesn't match the input path. The filter can be a string or a predicate function, and is often a file extension, including the period.