/** * @module server */ /** End Typedoc Module Declaration */ import { Injector } from '@angular/core'; import { AbstractModel, ModelStatic, identifier } from '../../common/models/model'; import { Database } from '../services/database.service'; import { Logger } from '../../common/services/logger.service'; import { AbstractStore, Query } from '../../common/stores/store'; import { Collection } from '../../common/models/collection'; import { Repository } from 'typeorm'; /** * Database store should be extended with a specific implementation for a model. Interacts with * TypeORM's repository to handle CRUD with the database */ export declare abstract class DatabaseStore extends AbstractStore { protected database: Database; protected loggerBase: Logger; /** * The TypeORM repository instance */ protected repositoryPromise: Promise>; /** * Logger for the class, initialized with source */ protected logger: Logger; constructor(modelStatic: ModelStatic, injector: Injector, database: Database, loggerBase: Logger); /** * Retrieve the TypeORM repository for this store's modelStatic. * This promise is cached so the same repository instance is always returned * @returns {Promise>} */ getRepository(): Promise>; /** * @inheritdoc */ initialized(): Promise; /** * @inheritdoc */ findOne(id: identifier): Promise; /** * @inheritdoc */ findMany(query?: Query): Promise>; /** * @inheritdoc */ saveOne(model: T): Promise; /** * @inheritdoc */ deleteOne(model: T): Promise; /** * @inheritdoc */ hasOne(model: T): Promise; }