Browse Source

fix ShareLink model

Yuki Takei 2 years ago
parent
commit
87801cfe76

+ 3 - 3
apps/app/src/server/models/share-link.ts

@@ -10,12 +10,12 @@ import type { IShareLink } from '~/interfaces/share-link';
 import { getOrCreateModel } from '../util/mongoose-utils';
 
 
-export interface ShareLinkDocument extends IShareLink, Document {}
-
-export interface ShareLinkModel extends Model<ShareLinkDocument>{
+export interface ShareLinkDocument extends IShareLink, Document {
   isExpired: () => boolean,
 }
 
+export type ShareLinkModel = Model<ShareLinkDocument>;
+
 
 /*
  * define schema

+ 2 - 2
apps/app/src/server/util/mongoose-utils.ts

@@ -18,9 +18,9 @@ export const getMongoUri = (): string => {
     || ((env.NODE_ENV === 'test') ? 'mongodb://mongo/growi_test' : 'mongodb://mongo/growi');
 };
 
-export const getModelSafely = <T>(modelName: string): Model<T & Document> | null => {
+export const getModelSafely = <Interface, Method = Interface>(modelName: string): Method & Model<Interface & Document> | null => {
   if (mongoose.modelNames().includes(modelName)) {
-    return mongoose.model<T & Document>(modelName);
+    return mongoose.model<Interface & Document, Method & Model<Interface & Document>>(modelName);
   }
   return null;
 };