pg-structure / Entity
# Class: Entity
Class which represent an entity (table, view etc.). Provides attributes and methods for details of the entity.
# Hierarchy
# Properties
# columns
• Readonly
columns: default<Column, name, attributeNumber, true>
All columns of the entity as an {@link IndexableArray indexable array} ordered by same order they are defined in database entity.
# Example
const isAvailable = table.columns.has('id');
const columnNames = table.columns.map(column => column.name);
const column = table.columns.get('user_id');
const name = column.name;
table.columns.forEach(column => console.log(column.name));
name
Entity#columns
Defined in: pg-structure/base/entity.ts:53
# comment
• Optional
Readonly
comment: undefined | string
Comment of the database object defined in database including {@link DbObject#commentData comment data}.
Inherited from: DbObject.comment
Defined in: pg-structure/base/db-object.ts:75
# name
• Readonly
name: string
Name of the database object.
Defined in: pg-structure/base/db-object.ts:42
# oid
• Readonly
oid: number
Object identifier for the Entity
Defined in: pg-structure/base/entity.ts:25
# schema
• Readonly
schema: Schema
Schema of the object.
Defined in: pg-structure/base/entity.ts:38
# Accessors
# commentData
• get commentData(): undefined | null | string | number | boolean | JSONObject | JSONArray
Data which is extracted from database object's comment. Data is extracted from text between special case-insensitive tag
(default: [pg-structure][/pg-structure]
) and converted to JavaScript object using JSON5 (opens new window).
Token name can be specified by using commentDataToken
arguments.
For details of JSON5 (opens new window), see it's web site: https://json5.org (opens new window).
# Example
// "Account details. [pg-structure]{ extraData: 2 }[/pg-structure] Also used for logging."
table.comment; // "Account details. [pg-structure]{ extraData: 2 }[/pg-structure] Also used for logging."
table.commentWithoutData; // "Account details. Also used for logging."
table.commentData; // { extraData: 2 }
table.commentData.extraData; // 2
Returns: undefined | null | string | number | boolean | JSONObject | JSONArray
Defined in: pg-structure/base/db-object.ts:102
# commentWithoutData
• get commentWithoutData(): undefined | string
Description or comment of the database object defined in database. If comment contains {@link DbObject#commentData comment data}, it is removed.
# Example
// "Account details. [pg-structure]{ extraData: 2 }[/pg-structure] Also used for logging."
table.commentWithoutData; // "Account details. Also used for logging."
Returns: undefined | string
Defined in: pg-structure/base/db-object.ts:85
# db
• get db(): Db
Database of the database object.
Returns: Db
Defined in: pg-structure/base/db-object.ts:68
# fullCatalogName
• get fullCatalogName(): string
Full name of the database object including database name.
Returns: string
Defined in: pg-structure/base/db-object.ts:35
# fullName
• get fullName(): string
Full name of the object with '.' notation including Schema name.
# Example
const fullName = entity.fullName; // public.member
Returns: string
Defined in: pg-structure/base/entity.ts:33
# nameCaseType
• get nameCaseType(): CaseType
Letter casing (i.e snakeCase
or camelCase
) of the database object name.
# Example
const name = entity.name; // ProductDetail
const caseType = entity.nameCaseType; // camelCase
const otherEntity = otherEntity.name; // member_protocol
const otherCaseType = otherEntity.nameCaseType; // snakeCase
Returns: CaseType
Defined in: pg-structure/base/db-object.ts:54
# separator
• get separator(): string
Separator used in database object name. Empty string for came case and underscore for (_) snake case.
Returns: string
Defined in: pg-structure/base/db-object.ts:61
# Methods
# get
▸ get(column
: string): Column
Returns column with given name from entity.
# Example
const column = entity.get('contact'), // Returns contact column from entity.
# Parameters:
Name | Type |
---|---|
column | string |
Returns: Column
requested columns.
Defined in: pg-structure/base/entity.ts:67