UNPKG

lakutata

Version:

An IoC-based universal application framework.

108 lines (104 loc) 3.47 kB
import { k as OrderByCondition } from './TypeDef.4.js'; /** * Describes all index options. */ interface IndexOptions { /** * Indicates if this composite index must be unique or not. */ unique?: boolean; /** * The SPATIAL modifier indexes the entire column and does not allow indexed columns to contain NULL values. * Works only in MySQL and PostgreSQL. */ spatial?: boolean; /** * The FULLTEXT modifier indexes the entire column and does not allow prefixing. * Works only in MySQL. */ fulltext?: boolean; /** * NULL_FILTERED indexes are particularly useful for indexing sparse columns, where most rows contain a NULL value. * In these cases, the NULL_FILTERED index can be considerably smaller and more efficient to maintain than * a normal index that includes NULL values. * * Works only in Spanner. */ nullFiltered?: boolean; /** * Fulltext parser. * Works only in MySQL. */ parser?: string; /** * Index filter condition. */ where?: string; /** * If true, the index only references documents with the specified field. * These indexes use less space but behave differently in some situations (particularly sorts). * This option is only supported for mongodb database. */ sparse?: boolean; /** * Builds the index in the background so that building an index an does not block other database activities. * This option is only supported for mongodb database. */ background?: boolean; /** * Create the index using the CONCURRENTLY modifier * Works only in postgres. */ concurrent?: boolean; /** * Specifies a time to live, in seconds. * This option is only supported for mongodb database. */ expireAfterSeconds?: number; } /** * Describes all entity's options. */ interface EntityOptions { /** * Table name. * If not specified then naming strategy will generate table name from entity name. */ name?: string; /** * Specifies a default order by used for queries from this table when no explicit order by is specified. */ orderBy?: OrderByCondition | ((object: any) => OrderByCondition | any); /** * Table's database engine type (like "InnoDB", "MyISAM", etc). * It is used only during table creation. * If you update this value and table is already created, it will not change table's engine type. * Note that not all databases support this option. */ engine?: string; /** * Database name. Used in Mysql and Sql Server. */ database?: string; /** * Schema name. Used in Postgres and Sql Server. */ schema?: string; /** * Indicates if schema synchronization is enabled or disabled for this entity. * If it will be set to false then schema sync will and migrations ignore this entity. * By default schema synchronization is enabled for all entities. */ synchronize?: boolean; /** * If set to 'true' this option disables Sqlite's default behaviour of secretly creating * an integer primary key column named 'rowid' on table creation. * @see https://www.sqlite.org/withoutrowid.html. */ withoutRowid?: boolean; /** * Table comment. Not supported by all database types. */ comment?: string; } export type { EntityOptions as E, IndexOptions as I };