# Utility Funtions
pg-generator
provides some utility functions.
# Schema Generating Utilities
Schema generating utilites generates schemas for common basic needs. If you need custom functionality, you should do it in template manuanlly.
Signature of functions are as below:
schemaFunction(table, options)
Name | Type | Default | Description |
---|---|---|---|
table | Object | pg-structure table object | |
[options] | Object | Options | |
[options.exclude] | string[] | Array of column names to exclude | |
[options.jsonAsString] | boolean | false | Whether json and jsonb types are expected as a string |
[options.defaultValueOptional] | boolean | false | Whether to make columns with default values optional |
# pgen.tableJsDocSchema
Generates JSDoc documentation for given table.
Example usage in template:
/**
* {{ table.schema.name }}.{{ table.name }}
{{ table.description | makeJsDoc }}
{{ pgen.tableJsDocSchema(table) -}}
*/
# pgen.tableTypeScriptSchema
Generates TypeScript types for given table.
Example usage in template:
class {{ table.name | classCase }} extends Model {
{{ pgen.tableTypeScriptSchema(table) }}
}
# pgen.tableJoiSchema
Generates Joi
schema for given table.
Joi.object({
{{ pgen.tableJoiSchema(table) | stringifyIfObject(raw = true) }}
});
# pgen.tableJsonSchema
Generates JSON Schema for given table.
{{ pgen.tableJsonSchema(table) | stringifyIfObject }};