@msom/http
Version:
@msom/http
44 lines • 2.02 kB
TypeScript
import { CollectionOptions, CreateCollectionOptions, DbOptions, Document, WithId, Collection as _Collection, Db as _Db, MongoClient as _MongoClient } from "mongodb";
export declare class MongoClient extends _MongoClient {
db(dbName: string, options?: DbOptions | undefined): Db;
}
interface CollectionMeta {
collectionName: string;
relates: {
relateName: string;
collectionName: string;
relate: "1" | "n";
description: {
desc: string;
};
}[];
extends: {
collectionName: string;
}[];
props: {
prop: {
name: string;
type: string;
};
description: {
alise: string;
desc: string;
};
}[];
}
type NotFilledCollectionMeta = Omit<Partial<CollectionMeta>, "collectionName"> & Pick<CollectionMeta, "collectionName">;
export declare class Db extends _Db {
private get metaCollection();
collection<TSchema extends Document = Document>(name: string, options?: CollectionOptions | undefined, meta?: NotFilledCollectionMeta): _Collection<TSchema>;
createCollection<TSchema extends Document = Document>(name: string, options?: CreateCollectionOptions | undefined, meta?: NotFilledCollectionMeta): Promise<_Collection<TSchema>>;
getCollectionMetaData<CName extends string | undefined, R = CName extends string ? WithId<CollectionMeta> | null : WithId<CollectionMeta>[]>(collectionName?: CName): Promise<R>;
setCollectionMetaData(meta: NotFilledCollectionMeta): Promise<boolean>;
private __update;
updateRelates(sourceCollectionName: string, ...relates: CollectionMeta["relates"]): Promise<boolean>;
updateProps(sourceCollectionName: string, ...props: CollectionMeta["props"]): Promise<boolean>;
updateExtends(sourceCollectionName: string, ..._extends: CollectionMeta["extends"]): Promise<boolean>;
fillMate(meta: NotFilledCollectionMeta): CollectionMeta;
private check;
}
export {};
//# sourceMappingURL=index.d.ts.map