@kwikpik/server-libs
Version:
Kwikpik-Server-Libs ===================================================================================================================================================================================================
133 lines (132 loc) • 3.75 kB
TypeScript
import {
DataSource,
type MixedList,
type EntityTarget,
type FindOptionsWhere,
type FindOptionsOrder,
type FindOptionsRelations,
type EntitySchema,
} from "typeorm";
import { ExcludeFuctionsMapper, OptionalKeysMapper } from "../utils/mappers";
export interface LocalDataSourceOpts {
/**
* Port number. Defaults to 5432.
*/
port?: number;
/**
* Host name for the DB.
*/
host?: string;
/**
* Username to connect with.
*/
username?: string;
/**
* Password to connect with.
*/
password?: string;
/**
* Full database connection url.
*/
databaseUrl?: string;
/**
* Migrations to run.
*/
migrations?: MixedList<string | Function>;
/**
* Whether to log SQL queries.
*/
log?: boolean;
/**
* Database name.
*/
databaseName?: string;
/**
* Typeorm subscribers
*/
subscribers?: MixedList<string | Function>;
/**
* Typeorm entities
*/
entities?: MixedList<string | Function | EntitySchema<any>>;
/**
* Whether to use localhost instead of Docker environment
*/
shouldUseLocalhost?: boolean;
/**
* Docker service name if localhost is disabled
*/
serviceName?: string;
/**
* Use ssl
*/
ssl?: any;
/**
* SSL mode
*/
sslmode?: string;
}
declare class LocalDataSource {
DS: DataSource;
constructor(opts?: LocalDataSourceOpts);
static constructDataSource(): LocalDataSource;
/**
*
* @param silenceInfoLogs Don't log connection info.
*/
connect(silenceInfoLogs?: boolean): void;
/**
*
* @param silenceInfoLogs Don't log connection info.
*/
disconnect(silenceInfoLogs?: boolean): void;
isConnected(): boolean;
insertEntity<T>(target: EntityTarget<T>, values: T): Promise<T>;
insertManyEntities<T>(target: EntityTarget<T>, values: T[]): Promise<T[]>;
querySingleEntity<T>(
target: EntityTarget<T>,
where: FindOptionsWhere<T> | FindOptionsWhere<T>[],
relations?: FindOptionsRelations<T>
): Promise<T>;
queryManyEntities<T>(
target: EntityTarget<T>,
where?: FindOptionsWhere<T> | FindOptionsWhere<T>[],
order?: FindOptionsOrder<T>,
relations?: FindOptionsRelations<T>,
skip?: number,
take?: number
): Promise<T[]>;
updateEntity<T>(
target: EntityTarget<T>,
values: ExcludeFuctionsMapper<OptionalKeysMapper<T>>
): Promise<ExcludeFuctionsMapper<OptionalKeysMapper<T>> & T>;
deleteEntity<T>(target: EntityTarget<T>, where: FindOptionsWhere<T>): Promise<import("typeorm").DeleteResult>;
entityExists<T>(target: EntityTarget<T>, where: FindOptionsWhere<T>): Promise<boolean>;
countEntities<T>(target: EntityTarget<T>, where?: FindOptionsWhere<T>): Promise<number>;
}
/**
* Construct datasource object with default options.
*
*/
export declare const initializeDSWithDefaultOptions: () => LocalDataSource;
/**
* Construct datasource object.
* @param opts Initialization options. {@link LocalDataSourceOpts | See implementation}
*/
export declare const initializeDS: (opts?: LocalDataSourceOpts) => LocalDataSource;
/**
* Construct datasource object with default options, and connect immediately.
* @param silenceInfoLogs Don't log connection info.
* @returns
*/
export declare const initializeConnectedDSWithDefaultOptions: (silenceInfoLogs?: boolean) => LocalDataSource;
/**
* Construct datasource object, and connect immediately.
* @param opts Initialization options. {@link LocalDataSourceOpts | See implementation}.
* @param silenceInfoLogs Don't log connection info.
* @returns
*/
export declare const initializeConnectedDS: (opts?: LocalDataSourceOpts, silenceInfoLogs?: boolean) => LocalDataSource;
export type LocalDataSourceType = LocalDataSource;
export {};
//# sourceMappingURL=database.d.ts.map