Janet 1.38.0-73334f3 Documentation
(Other Versions: 1.37.1 1.36.0 1.35.0 1.34.0 1.31.0 1.29.1 1.28.0 1.27.0 1.26.0 1.25.1 1.24.0 1.23.0 1.22.0 1.21.0 1.20.0 1.19.0 1.18.1 1.17.1 1.16.1 1.15.0 1.13.1 1.12.2 1.11.1 1.10.1 1.9.1 1.8.1 1.7.0 1.6.0 1.5.1 1.5.0 1.4.0 1.3.1 )

Module Module

Index

module/add-paths module/cache module/expand-path module/find module/loaders module/loading module/paths module/value


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 in module/loaders. Returns the modified module/paths.

Community Examples

module/cache table source

A table, mapping loaded module identifiers to their environments.

Community Examples

module/expand-path cfunction source

(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, 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.

  • :@all: -- Same as :all:, but if path starts with the @ character, the first path segment is replaced with a dynamic binding (dyn <first path segment as keyword>).

  • :cur: -- the directory portion, if any, of (dyn :current-file)

  • :dir: -- the directory portion, if any, of the path argument

  • :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)

Community Examples

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.

Community Examples

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 modules.

Community Examples

module/loading table source

A table, mapping currently loading modules to true. Used to prevent circular dependencies.

Community Examples

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.

Community Examples

module/value function source

(module/value module sym &opt private)

Given a module table, get the value bound to a symbol sym. If private is truthy, will also resolve private module symbols. If no binding is found, will return nil.

Community Examples