mongoose.d.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import ModelCreatedEvent from "@/modules/DataModule/ModelCreatedEvent";
  2. import ModelDeletedEvent from "@/modules/DataModule/ModelDeletedEvent";
  3. import ModelUpdatedEvent from "@/modules/DataModule/ModelUpdatedEvent";
  4. declare module "mongoose" {
  5. // Add some additional possible config options to Mongoose's schema options
  6. interface SchemaOptions<
  7. DocType = unknown,
  8. /* eslint-disable */
  9. TInstanceMethods = {},
  10. QueryHelpers = {},
  11. TStaticMethods = {},
  12. TVirtuals = {},
  13. THydratedDocumentType = HydratedDocument<
  14. DocType,
  15. TInstanceMethods,
  16. QueryHelpers
  17. >
  18. /* eslint-enable */
  19. > {
  20. patchHistory?: {
  21. enabled: boolean;
  22. patchHistoryDisabled?: boolean;
  23. eventCreated?: string;
  24. eventUpdated?: string;
  25. eventDeleted?: string;
  26. };
  27. getData?: {
  28. enabled: boolean;
  29. blacklistedProperties?: string[];
  30. specialProperties?: Record<string, PipelineStage[]>;
  31. specialQueries?: Record<
  32. string,
  33. (query: Record<string, any>) => Record<string, any>
  34. >;
  35. specialFilters?: Record<
  36. string,
  37. (...args: any[]) => PipelineStage[]
  38. >;
  39. };
  40. documentVersion?: number;
  41. eventListeners?: {
  42. [key: `${string}.created`]: (
  43. event: ModelCreatedEvent
  44. ) => Promise<void>;
  45. [key: `${string}.updated`]: (
  46. event: ModelUpdatedEvent
  47. ) => Promise<void>;
  48. [key: `${string}.deleted`]: (
  49. event: ModelDeletedEvent
  50. ) => Promise<void>;
  51. };
  52. }
  53. }