pg-generator / PgGenerator
# Class: PgGenerator<O>
Base abstract class for for pg-generator classes.
# Type parameters
Name | Type | Default |
---|---|---|
O | GeneratorOptions | GeneratorOptions |
# Constructors
# constructor
+ new PgGenerator<O>(options
: O, internalOptions
: InternalOptions): PgGenerator<O>
Creates an instance of PgGenerator.
# Type parameters:
Name | Type | Default |
---|---|---|
O | GeneratorOptions | GeneratorOptions |
# Parameters:
Name | Type | Description |
---|---|---|
options | O | are parameters for several options. |
internalOptions | InternalOptions | are added by pg-generator functions and not for user. |
Returns: PgGenerator<O>
Defined in: pg-generator.ts:23
# Properties
# options
• Protected
options: O & { context
: Record<string, any> ; envPrefix
: string }
Defined in: pg-generator.ts:23
# Methods
# clear
▸ Protected
clear(): Promise<any>
If clear option is true, this method is called. It deletes destination path. User may override this method to tailor clear operation according to generator's purposes.
Returns: Promise<any>
Defined in: pg-generator.ts:85
# composeWith
▸ Protected
composeWith(generator
: string, options?
: GeneratorOptions): Promise<void>
Executes the default sub-generator app
from a generator. If options are provided, they are combined with current options.
# Example
this.composeWith("generator-from-npm");
this.composeWith("generator-from-npm", options);
this.composeWith(require.resolve("./local-generator"), options);
throws
error if generator can not be found.
# Parameters:
Name | Type | Description |
---|---|---|
generator | string | is the name or path of the generator. If it is a local path, use require.resolve or provide an absolute path. |
options? | GeneratorOptions | are the new options added on top of curent options. |
Returns: Promise<void>
Defined in: pg-generator.ts:232
▸ Protected
composeWith(generator
: string, subGeneratorName?
: string, options?
: GeneratorOptions): Promise<void>
Executes a sub-generator from a generator. If options are provided, they are merged with current options. Also some of the options
are changed to sensible default values for sub-generators (e.g. clear
is changed to false
), but they can be overridden by
newly provided options.
# Example
this.composeWith("generator-from-npm", "sub-generator");
this.composeWith(require.resolve("./local-generator"), "sub-generator", options);
throws
error if generator or sub-generator can not be found.
# Parameters:
Name | Type | Description |
---|---|---|
generator | string | is the name or path of the generator. If it is a local path, use require.resolve or provide an absolute path. |
subGeneratorName? | string | is the name of the sub-generator to be executed. |
options? | GeneratorOptions | are the new options added on top of curent options. |
Returns: Promise<void>
Defined in: pg-generator.ts:248
# context
▸ Protected
context(): Record<string, any> | Promise<Record<string, any>>
Provides generator specific extra context to templates. This data is deeply merged with context provided by user.
# Example
export default class App extends PgGenerator {
protected context(): Record<string, any> {
return { global: { addSchemaName: true } };
}
}
Returns: Record<string, any> | Promise<Record<string, any>>
generator spesific extra context data.
Defined in: pg-generator.ts:109
# destinationPath
▸ Protected
destinationPath(path?
: string): string
Returns abosulte path for the given path relative to output directory.
# Parameters:
Name | Type | Default value | Description |
---|---|---|---|
path | string | "" | is the path relative to output directory. |
Returns: string
the absolute path.
Defined in: pg-generator.ts:197
# format
▸ Protected
format(destination
: string, content?
: string): undefined | string | Promise<undefined | string>
Formats given content. By default prettier
is used. Plase note that at this stage file is not written to disk yet.
# Parameters:
Name | Type | Description |
---|---|---|
destination | string | is the path of the destination file to be created. |
content? | string | is the content to format. |
Returns: undefined | string | Promise<undefined | string>
formatted code.
Defined in: pg-generator.ts:142
# generate
▸ generate(): Promise<void>
Renders all templates in [rootDir]/templates
directory with the render function using related context data,
and writes generated contents to the files in output directory. If render function returns undefined
for a template/database object pair no file is not written for that pair.
Template file names may contain variables and basic filter functions to change names of generated files.
Additionally copies all files in [rootDir]/files
to the output directory.
Returns: Promise<void>
Defined in: pg-generator.ts:49
# init
▸ Protected
init(): any
Executed after clear operation.
Returns: any
Defined in: pg-generator.ts:92
# process
▸ Protected
process(destination
: string, content
: string): any
Writes generated content from render to the destination file.
# Parameters:
Name | Type | Description |
---|---|---|
destination | string | is the destionation path of the file to be cerated.. |
content | string | is the content to process. |
Returns: any
Defined in: pg-generator.ts:153
# render
▸ Protected
render(templatePath
: string, context
: Context): undefined | string | Promise<undefined | string>
Generates content from the template with provided path using the context.
# Example
import engine from "my-favorite-template-engine";
export default class Md extends PgGenerator {
protected async render(templatePath: string, context: Context): Promise<string> {
return engine.render(templatePath, context);
}
}
# Parameters:
Name | Type | Description |
---|---|---|
templatePath | string | is the path of the template file to generate content. |
context | Context | is the data to be used for generating content. |
Returns: undefined | string | Promise<undefined | string>
generated content.
Defined in: pg-generator.ts:129
# templatePath
▸ Protected
templatePath(path?
: string): string
Returns abosulte path for the given path relative to template root.
# Parameters:
Name | Type | Default value | Description |
---|---|---|---|
path | string | "" | is the path relative to template root. |
Returns: string
the absolute path.
Defined in: pg-generator.ts:207