Page Contents

Home > @loopback/boot > BaseArtifactBooter

BaseArtifactBooter class

This class serves as a base class for Booters which follow a pattern of configure, discover files in a folder(s) using explicit folder / extensions or a glob pattern and lastly identifying exported classes from such files and performing an action on such files such as binding them.

Any Booter extending this base class is expected to

  1. Set the ‘options’ property to a object of ArtifactOptions type. (Each extending class should provide defaults for the ArtifactOptions and use Object.assign to merge the properties with user provided Options). 2. Provide it’s own logic for ‘load’ after calling ‘await super.load()’ to actually boot the Artifact classes.

Currently supports the following boot phases: configure, discover, load.

Signature:

export declare class BaseArtifactBooter implements Booter 

Constructors

Constructor Modifiers Description
(constructor)(projectRoot, options)   Constructs a new instance of the BaseArtifactBooter class

Properties

Property Modifiers Type Description
classes   Constructor<{}>[] List of exported classes discovered in the files
dirs   string[] Relative paths of directories to be searched
discovered   string[] List of files discovered by the Booter that matched artifact requirements
extensions   string[] File extensions to be searched
glob   string glob pattern to match artifact paths
options   ArtifactOptions Options being used by the Booter.
projectRoot   string Project root relative to which all other paths are resolved

Methods

Method Modifiers Description
configure()   Configure the Booter by initializing the ‘dirs’, ‘extensions’ and ‘glob’ properties.NOTE: All properties are configured even if all aren’t used.
discover()   Discover files based on the ‘glob’ property relative to the ‘projectRoot’. Discovered artifact files matching the pattern are saved to the ‘discovered’ property.
load()   Filters the exports of ‘discovered’ files to only be Classes (in case function / types are exported) as an artifact is a Class. The filtered artifact Classes are saved in the ‘classes’ property.NOTE: Booters extending this class should call this method (await super.load()) and then process the artifact classes as appropriate.