UNPKG

pebblebed

Version:

Simplified interactions with Google Datastore for NodeJS

45 lines (44 loc) 2.04 kB
import { DatastoreQueryRegular, IPebblebedModelOptions, SchemaDefinition } from "./types/PebblebedTypes"; import DatastoreSave from "./operations/DatastoreSave"; import { IDatastoreLoadRegular } from "./operations/DatastoreLoad"; import DatastoreDelete from "./operations/DatastoreDelete"; import { PebblebedJoiSchema } from "./validation/PebblebedValidation"; import * as Joi from "joi"; import DatastoreFlush from "./operations/DatastoreFlush"; import { Key } from "@google-cloud/datastore"; export default class PebblebedModel<T = any> { private schema; private joiSchema; private kind; private idProperty; private idType; private hasIdProperty; private defaultCachingSeconds; private neverCache; private defaultNamespace; constructor(entityKind: string, entitySchema: SchemaDefinition<T> | PebblebedJoiSchema<T>, { defaultCachingSeconds, neverCache, defaultNamespace, }?: IPebblebedModelOptions); getJoiSchema: () => Joi.Schema; validate: (data: object | object[]) => { positive: boolean; message: string; }; save(data: T | T[]): DatastoreSave<T>; load(idsOrKeys: string | number | Key | Array<string | number | Key>): IDatastoreLoadRegular<T>; query(namespace?: string | null): DatastoreQueryRegular<T>; key(id: string | number): Key; delete(data?: T | T[]): DatastoreDelete<T>; flush(idsOrKeys: string | number | Key | Array<string | number | Key>): DatastoreFlush<T>; allocateIds({ amount, withAncestors, namespace, }: { amount: number; withAncestors?: any[] | null; namespace?: string | null; }): Promise<Array<Key>>; get entityKind(): string; get entitySchema(): SchemaDefinition<T>; get entityIdProperty(): string | null; get entityIdType(): "string" | "int"; get entityHasIdProperty(): boolean; get entityPebbleSchema(): PebblebedJoiSchema<T>; get entityDefaultNamespace(): string; get modelOptions(): IPebblebedModelOptions; }