Asymmetrik/node-rest-starter

View on GitHub
src/app/common/mongoose/util.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Model } from 'mongoose';

export type ObtainModelGeneric<
    M,
    alias extends
        | 'TRawDocType'
        | 'TQueryHelpers'
        | 'TInstanceMethods'
        | 'TVirtuals'
        | 'THydratedDocumentType'
> = M extends Model<
    infer TRawDocType,
    infer TQueryHelpers,
    infer TInstanceMethods,
    infer TVirtuals,
    infer THydratedDocumentType
>
    ? {
            TRawDocType: TRawDocType;
            TQueryHelpers: TQueryHelpers;
            TInstanceMethods: TInstanceMethods;
            TVirtuals: TVirtuals;
            THydratedDocumentType: THydratedDocumentType;
      }[alias]
    : unknown;