transactions-mongoose
Version:
Transactions for mongoose
315 lines (261 loc) • 9.98 kB
TypeScript
/// <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