UNPKG

fireorm

Version:
48 lines (47 loc) 1.88 kB
import { Firestore } from '@google-cloud/firestore'; import type { IEntityConstructor, IEntityRepositoryConstructor, ValidatorOptions } from './types'; export interface CollectionMetadata { name: string; entityConstructor: IEntityConstructor; parentEntityConstructor?: IEntityConstructor; propertyKey?: string; } export interface SubCollectionMetadata extends CollectionMetadata { parentEntityConstructor: IEntityConstructor; propertyKey: string; } export interface CollectionMetadataWithSegments extends CollectionMetadata { segments: string[]; } export interface SubCollectionMetadataWithSegments extends SubCollectionMetadata { segments: string[]; } export interface FullCollectionMetadata extends CollectionMetadataWithSegments { subCollections: SubCollectionMetadataWithSegments[]; } export interface RepositoryMetadata { target: IEntityRepositoryConstructor; entity: IEntityConstructor; } export interface MetadataStorageConfig { validateModels: boolean; validatorOptions?: ValidatorOptions; } export declare class MetadataStorage { readonly collections: Array<CollectionMetadataWithSegments>; protected readonly repositories: Map<IEntityConstructor, RepositoryMetadata>; config: MetadataStorageConfig; getCollection: (pathOrConstructor: string | IEntityConstructor) => { subCollections: SubCollectionMetadataWithSegments[]; segments: string[]; name: string; entityConstructor: IEntityConstructor; parentEntityConstructor?: IEntityConstructor; propertyKey?: string; }; setCollection: (col: CollectionMetadata) => void; getRepository: (param: IEntityConstructor) => RepositoryMetadata; setRepository: (repo: RepositoryMetadata) => void; getRepositories: () => Map<IEntityConstructor, RepositoryMetadata>; firestoreRef: Firestore; }