templates-mo
Version:
Templates is a scaffolding framework that makes code generation simple, dynamic, and reusable. Generate files, parts of your app, or whole project structures—without the repetitive copy-pasting
97 lines (96 loc) • 2.6 kB
TypeScript
import DirectoryNode, { DirNode } from "../fileSystemTree";
import type { SettingsFile } from "../types/settings";
import File, { type FileOptions } from "./File";
export declare class Template {
/**
* Name of template
*/
name: any;
/**
* The Directory were the template code lives
*/
location: any;
/**
* Settings file of the template
*/
settingsFile: SettingsFile;
/**
* Template's packages. By default all packages arent loaded into memory and only
* packages that are requests are loaded
*/
packages: Record<string, DirNode>;
/**
* Packages used
*/
packagesUsed: string[];
/**
* Compiled Files
*/
compiledFiles: File[];
/**
* Def files
*/
defs: Record<string, string>;
/**
* Get a template
*/
static get(templateName: string): Promise<Template>;
private static fetchSettingsFile;
static fetchTemplateLocation(templateName: string): Promise<string | null>;
/**
* Extra Relative directories to create in instances
*
* TODO: This is not the best way to do this but at the moment
*/
extraDirectories: string[];
constructor(
/**
* Name of template
*/
name: any,
/**
* The Directory were the template code lives
*/
location: any,
/**
* Settings file of the template
*/
settingsFile: SettingsFile,
/**
* Template's packages. By default all packages arent loaded into memory and only
* packages that are requests are loaded
*/
packages?: Record<string, DirNode>,
/**
* Packages used
*/
packagesUsed?: string[],
/**
* Compiled Files
*/
compiledFiles?: File[],
/**
* Def files
*/
defs?: Record<string, string>);
/**
* Fetch packages contents so they can be included in rendered instance.
*/
fetchPackages(newPackages: string | string[]): Promise<void>;
/**
* Fetch a package contents so they can be included in rendered instance.
*
* @param newPackage - package from the template you would like to use
*/
fetchPackage(newPackageName: string): Promise<void>;
/**
* packages that will be used in the render process
*/
usedPackages(): DirectoryNode[];
createFile(file: string, content: string, options?: Partial<FileOptions>): void;
/**
* Create a directory in the template. When instances are created these directories
* will be created in the instance
*/
createDirectory(dir: string): void;
}