# 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 }};