fastify-mongoose-rest
Version:
Rest API generator tools for fastify and mongoose
73 lines (72 loc) • 2.99 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 { Model } from 'mongoose';
import { FindOptions } from './types';
/**
* If input is string, try to parse it to an object and if not possible, return the string with commas replaced by spaces.
* If input is object, return it as is.
* @param input Input to parse
* @returns Parsed input
*/
export declare function parseInput(input: string | object): any;
/**
* Add slash to path if it does not have one.
* @param path Path to add slash to
* @returns Path with slash at the start
*/
export declare function addSlashToPath(path: string): string;
/**
* Create response schema for a operation.
* @param schema Schema to use for response
* @param type Type of response. Either 'object' or 'array'
* @returns Response schema
*/
export declare function createResponseSchema(schema: object, type: 'object' | 'array'): Record<number, unknown>;
/**
* Update properties of object recursively.
*/
export declare function updatePropertiesRecursive(obj: any, changes: any): any;
/**
* Calculate skip and limit options from given page and
* pageSize. If value is not given, use default values:
* 0 for page and 100 for pageSize
*/
export declare function calculateSkipAndLimit(p?: number, pageSize?: number): {
skip: number;
limit: number;
};
/**
* Create a find operation for mongoose model.
* @param model Mongoose model to use
* @param options Options for find operation
* @returns Resources and totalCount if requested
*/
export declare function findOperation<T>(model: Model<T>, options: FindOptions): Promise<{
resources: import("mongoose").Require_id<import("mongoose").FlattenMaps<T>>[];
totalCount: number;
} | {
resources: import("mongoose").Require_id<import("mongoose").FlattenMaps<T>>[];
totalCount?: undefined;
}>;