UNPKG

transactions-mongoose

Version:
315 lines (261 loc) 9.98 kB
/// <reference types="mongoose/types/aggregate" /> /// <reference types="mongoose/types/callback" /> /// <reference types="mongoose/types/collection" /> /// <reference types="mongoose/types/connection" /> /// <reference types="mongoose/types/cursor" /> /// <reference types="mongoose/types/document" /> /// <reference types="mongoose/types/error" /> /// <reference types="mongoose/types/expressions" /> /// <reference types="mongoose/types/helpers" /> /// <reference types="mongoose/types/middlewares" /> /// <reference types="mongoose/types/indexes" /> /// <reference types="mongoose/types/models" /> /// <reference types="mongoose/types/mongooseoptions" /> /// <reference types="mongoose/types/pipelinestage" /> /// <reference types="mongoose/types/populate" /> /// <reference types="mongoose/types/query" /> /// <reference types="mongoose/types/schemaoptions" /> /// <reference types="mongoose/types/schematypes" /> /// <reference types="mongoose/types/session" /> /// <reference types="mongoose/types/types" /> /// <reference types="mongoose/types/utility" /> /// <reference types="mongoose/types/validation" /> /// <reference types="mongoose/types/virtuals" /> /// <reference types="mongoose/types/inferschematype" /> import {Error, HydratedDocument, Model} from "mongoose"; export class Transaction extends NamespaceParser { get useStrict(): boolean; get transactions(): TransactionData[]; get commits(): TransactionData[]; get isVerified(): boolean; /** * options: MongoOptions: node_modules/mongodb/src/connection_string.ts:259 * @return {{connectionString:string,options:{userSpecifiedReplicaSet:boolean,replicaSet:string,hosts:[]}}} */ get client(): { connectionString: string; options: { userSpecifiedReplicaSet: boolean; replicaSet: string; hosts: []; }; }; /** * @return {boolean} */ get isReplicaSet(): boolean; /** * @param {string} name * @return {Model<InferSchemaType<any>, ObtainSchemaGeneric<any, "TQueryHelpers">, ObtainSchemaGeneric<any, "TInstanceMethods">, ObtainSchemaGeneric<any, "TVirtuals">, HydratedDocument<InferSchemaType<any>, ObtainSchemaGeneric<any, "TVirtuals"> & ObtainSchemaGeneric<any, "TInstanceMethods">, ObtainSchemaGeneric<any, "TQueryHelpers">>, any> & ObtainSchemaGeneric<any, "TStaticMethods">} * @constructor */ static Model(name: string): Model<any>; setSendbox(v: any): this; /** * @param {function} fn * @return {TransactionData} */ execute(fn: Function): TransactionData; /** * @param {function(session: Namespace.ClientSession)} fn * @return {TransactionData} */ session(fn: any): TransactionData; setStrict(v: any): this; /** * @param {TransactionData} transaction * @param {...string} args * @return {function} * @constructor */ AsyncFunctionConstructor(transaction: TransactionData, ...args: string[]): Function; /** * @param {object: Namespace.Model|Namespace.Document|null} model * @param {object|Namespace.Document|function|null} object * @return {TransactionData} */ add(model: any, object?: object | Namespace.Document | Function | null): TransactionData; /** * Executes registered validation rules with asynchronous validators for this document. * @param {TransactionData} transaction * @return {Promise<void>} */ validateAsyncValidators(transaction: TransactionData): Promise<void>; /** * @param {TransactionData} transaction * @param {object:{message: string}|Error} error */ validationError(transaction: TransactionData, error: any): void; /** * Executes registered validation rules (skipping asynchronous validators) for this document. * @param {TransactionData} transaction * @return {Promise<void>} */ validateSchema(transaction: TransactionData): Promise<void>; clear(): this; validate(): Promise<void>; /** * Search unique keys if exists * @param {TransactionData} transaction * @return {Promise<void>} */ validateUnique(transaction: TransactionData): Promise<void>; commit(): Promise<void>; documentNotExists(transaction: any): void; } export class TransactionData { MODEL: string; OBJECT: string; FUNCTION: string; DOCUMENT: string; id: string; model: any; data: any; document: Document; checkAsyncValidators: boolean; checkValidateSchema: boolean; checkValidateUniques: boolean; result: any; function: any; debugger: { frame: string; line: string; }; /** * @param {object: Namespace.Model} model * @param {Namespace.Model|object|function} data * @param {Transaction} transaction */ constructor(model: any, data: Namespace.Model<any, any, any, any, any, any> | object | Function, transaction: Transaction); static get rid(): string; get isModel(): boolean; get isExecutor(): boolean; get type(): string; get transaction(): Transaction; get uniqueFields(): string[]; /** * @return {boolean} */ get isVerified(): boolean; /** * @return {Namespace.Schema} */ get schema(): object; get schemaFields(): string[]; /** * @return {object} */ get modifiedData(): object; /** * @param {object} data */ update(data: object): this; /** * @param {string} field * @return {object} */ schemaConstructor(field: string): any; } export class TransactionError extends Error { time: number; transaction: { model: any; checkAsyncValidators: boolean; checkValidateSchema: boolean; checkValidateUniques: boolean; modifiedData: string | { any: any; }; document: string; id: string; }; info: string; /** * @param {TransactionData} _T * @param {string} message * @param {stack?: string|null} stack */ constructor(_T: TransactionData, message: string, stack?: any); static debugger(): { frame: string; line: string; }; } export class NamespaceParser { /** * @param {object|HydratedDocument} v * @return {boolean} */ isModel: (v: object | HydratedDocument<Model<any>>) => boolean; /** * @param {object|HydratedDocument} v * @return {boolean} */ isDocument: (v: object | HydratedDocument<Model<any>>) => boolean; /** * @param {object|HydratedDocument} v * @return {HydratedDocument|null} */ documentModel: (v: object | HydratedDocument<Model<any>>) => HydratedDocument<Model<any>> | null; /** * @param {object} v * @return {boolean} */ isCleanDocument: (v: object) => boolean; /** * @param {object: {Model,any}|HydratedDocument} v * @return {*|(function(string): Model<InferSchemaType<any>, ObtainSchemaGeneric<any, "TQueryHelpers">, ObtainSchemaGeneric<any, "TInstanceMethods">, ObtainSchemaGeneric<any, "TVirtuals">, HydratedDocument<InferSchemaType<any>, ObtainSchemaGeneric<any, "TVirtuals"> & ObtainSchemaGeneric<any, "TInstanceMethods">, ObtainSchemaGeneric<any, "TQueryHelpers">>, any>)|string|Model<any>|null|(Model<InferSchemaType<any>, ObtainSchemaGeneric<any, "TQueryHelpers">, ObtainSchemaGeneric<any, "TInstanceMethods">, ObtainSchemaGeneric<any, "TVirtuals">, HydratedDocument<InferSchemaType<any>, ObtainSchemaGeneric<any, "TVirtuals"> & ObtainSchemaGeneric<any, "TInstanceMethods">, ObtainSchemaGeneric<any, "TQueryHelpers">>, any> & ObtainSchemaGeneric<any, "TStaticMethods">)} */ getCleanDocModel: (v: any) => any | ((arg0: string) => Model<any>); /** * @param {object} v * @return {boolean} */ isExecutor: (v: object) => boolean; /** * @param {object: {Model,any}|HydratedDocument} v * @return {(function(string): Model<InferSchemaType<any>, ObtainSchemaGeneric<any, "TQueryHelpers">, ObtainSchemaGeneric<any, "TInstanceMethods">, ObtainSchemaGeneric<any, "TVirtuals">, HydratedDocument<InferSchemaType<any>, ObtainSchemaGeneric<any, "TVirtuals"> & ObtainSchemaGeneric<any, "TInstanceMethods">, ObtainSchemaGeneric<any, "TQueryHelpers">>, any>)|string|Model<any>|*|Model<InferSchemaType<any>, ObtainSchemaGeneric<any, "TQueryHelpers">, ObtainSchemaGeneric<any, "TInstanceMethods">, ObtainSchemaGeneric<any, "TVirtuals">, HydratedDocument<InferSchemaType<any>, ObtainSchemaGeneric<any, "TVirtuals"> & ObtainSchemaGeneric<any, "TInstanceMethods">, ObtainSchemaGeneric<any, "TQueryHelpers">>, any>|null} */ parseModel(v: any): ((arg0: string) => Model<any> | null); /** * @param {object: Namespace.Model|Namespace.Document|null} model * @param {object|function|null} object * @return {boolean} */ isValidArguments(model: any, object: object | Function | null): boolean; } import Namespace = require("mongoose"); export class Document { _ABSTRACT: string; _doc: object; isNew: boolean; model: any; _modelName: string; /** * @param {object: Namespace.Model} model * @param {object} object */ constructor(model: any, object: object); get schema(): any; init(): void; markModified(path: any, v?: boolean): void; /** * @param {string|null} path * @return {boolean} */ isModified(path?: string | null): boolean; /** * @param {object|Array<string>|null} v * @return {Error.ValidationError} */ validateSync(v?: object | Array<string> | null): Error.ValidationError; /** * @param {string[]} paths * @return {Promise<undefined|*>} */ validate(paths: string[]): Promise<undefined | any>; AbstractModel(): any; save(): Promise<void>; clear(): Promise<void>; } //# sourceMappingURL=Transaction.d.ts.map