72 lines
3.0 KiB
TypeScript
72 lines
3.0 KiB
TypeScript
import { type EntityProperty, type IsolationLevel } from '@mikro-orm/core';
|
|
import { AbstractSqlPlatform } from '../../AbstractSqlPlatform.js';
|
|
import { SqliteNativeQueryBuilder } from './SqliteNativeQueryBuilder.js';
|
|
import { SqliteSchemaHelper } from './SqliteSchemaHelper.js';
|
|
import { SqliteExceptionConverter } from './SqliteExceptionConverter.js';
|
|
export declare class SqlitePlatform extends AbstractSqlPlatform {
|
|
protected readonly schemaHelper: SqliteSchemaHelper;
|
|
protected readonly exceptionConverter: SqliteExceptionConverter;
|
|
/** @internal */
|
|
createNativeQueryBuilder(): SqliteNativeQueryBuilder;
|
|
usesDefaultKeyword(): boolean;
|
|
usesReturningStatement(): boolean;
|
|
usesEnumCheckConstraints(): boolean;
|
|
getCurrentTimestampSQL(length: number): string;
|
|
getDateTimeTypeDeclarationSQL(column: { length: number }): string;
|
|
getBeginTransactionSQL(options?: { isolationLevel?: IsolationLevel; readOnly?: boolean }): string[];
|
|
getEnumTypeDeclarationSQL(column: {
|
|
items?: unknown[];
|
|
fieldNames: string[];
|
|
length?: number;
|
|
unsigned?: boolean;
|
|
autoincrement?: boolean;
|
|
}): string;
|
|
getTinyIntTypeDeclarationSQL(column: { length?: number; unsigned?: boolean; autoincrement?: boolean }): string;
|
|
getSmallIntTypeDeclarationSQL(column: { length?: number; unsigned?: boolean; autoincrement?: boolean }): string;
|
|
getIntegerTypeDeclarationSQL(column: { length?: number; unsigned?: boolean; autoincrement?: boolean }): string;
|
|
getFloatDeclarationSQL(): string;
|
|
getBooleanTypeDeclarationSQL(): string;
|
|
getCharTypeDeclarationSQL(column: { length?: number }): string;
|
|
getVarcharTypeDeclarationSQL(column: { length?: number }): string;
|
|
normalizeColumnType(
|
|
type: string,
|
|
options: {
|
|
length?: number;
|
|
precision?: number;
|
|
scale?: number;
|
|
},
|
|
): string;
|
|
convertsJsonAutomatically(): boolean;
|
|
/**
|
|
* This is used to narrow the value of Date properties as they will be stored as timestamps in sqlite.
|
|
* We use this method to convert Dates to timestamps when computing the changeset, so we have the right
|
|
* data type in the payload as well as in original entity data. Without that, we would end up with diffs
|
|
* including all Date properties, as we would be comparing Date object with timestamp.
|
|
*/
|
|
processDateProperty(value: unknown): string | number | Date;
|
|
getIndexName(
|
|
tableName: string,
|
|
columns: string[],
|
|
type: 'index' | 'unique' | 'foreign' | 'primary' | 'sequence',
|
|
): string;
|
|
supportsDeferredUniqueConstraints(): boolean;
|
|
/**
|
|
* SQLite supports schemas via ATTACH DATABASE. Returns true when there are
|
|
* attached databases configured.
|
|
*/
|
|
supportsSchemas(): boolean;
|
|
getDefaultSchemaName(): string | undefined;
|
|
getFullTextWhereClause(): string;
|
|
escape(value: any): string;
|
|
convertVersionValue(
|
|
value: Date | number,
|
|
prop: EntityProperty,
|
|
):
|
|
| number
|
|
| {
|
|
$in: (string | number)[];
|
|
};
|
|
getJsonArrayElementPropertySQL(alias: string, property: string, _type: string): string;
|
|
quoteValue(value: any): string;
|
|
}
|