Class BaseResourcesGenerator

Generates resources by making use of a template engine. The template folder structure will be kept. Folders will be interpreted as containers and files as documents. A FileIdentifierMapper will be used to generate identifiers that correspond to the relative structure.

Metadata resources will be yielded separately from their subject resource.

A relative templateFolder is resolved relative to cwd, unless it's preceded by @css:, e.g. @css:foo/bar.


  • BaseResourcesGenerator




logger: Logger = ...
metadataStrategy: AuxiliaryStrategy
templateEngine: TemplateEngine<Dict<any>>
templateExtension: string


  • Generates resources with the given options, based on the given template folder. The output Iterable should be sorted so that containers always appear before their contents.


    • templateFolder: string

      Folder where the templates are located.

    • location: ResourceIdentifier

      Base identifier.

    • options: Dict<string>

      Options that can be used when generating resources.

    Returns AsyncIterable<Resource>

    A map where the keys are the identifiers and the values the corresponding representations to store.

  • Generates a Resource object for the given ResourceLink. In the case of documents the corresponding template will be used. If a ResourceLink of metadata is provided the corresponding metadata resource will be yielded as a separate resource.


    • link: TemplateResourceLink
    • options: Dict<string>
    • Optional metaLink: TemplateResourceLink

    Returns AsyncIterable<Resource>

  • Generates TemplateResourceLinks for each entry in the given folder and combines the results so resources and their metadata are grouped together.


    Returns Promise<Record<string, {
        link: TemplateResourceLink;
        meta?: TemplateResourceLink;

  • Creates a TemplateResourceLink for the given filePath, which connects a resource URL to its template file. The identifier will be based on the file path stripped from the template extension, but the filePath parameter will still point to the original file.


    Returns Promise<TemplateResourceLink>