updates passport-local-mongoose to use mongoose intefaces instead of type intersections

This commit is contained in:
Simon
2016-08-21 15:54:13 -04:00
parent 3f9a9295bf
commit f00d294bf6
2 changed files with 7 additions and 9 deletions
@@ -77,10 +77,9 @@ options.errorMessages = errorMessages;
UserSchema.plugin(passportLocalMongoose, options);
type UserModel<T extends PassportLocalDocument> = _UserModel<T> & PassportLocalModel<T>;
interface _UserModel<T extends PassportLocalDocument> {}
interface UserModel<T extends PassportLocalDocument> extends PassportLocalModel<T> {}
let UserModel: UserModel<User> = model<User>('User', UserSchema) as UserModel<User>;
let UserModel: UserModel<User> = model<User>('User', UserSchema);
//#endregion
@@ -96,7 +95,7 @@ passport.use('login', new LocalStrategy({
process.nextTick(() => {
UserModel
.findOne({ 'username': username })
.exec((err: any, user: model<User>) => {
.exec((err: any, user: User) => {
if (err) {
console.log(err);
return done(err, null);
+4 -5
View File
@@ -10,14 +10,13 @@ declare module 'mongoose' {
import passportLocal = require('passport-local');
// methods
export interface PassportLocalDocument {
export interface PassportLocalDocument extends Document {
setPassword(password: string, cb: (err: any, res: any) => void): void;
authenticate(password: string, cb: (err: any, res: any, error: any) => void): void;
}
// statics
export type PassportLocalModel<T extends PassportLocalDocument> = _PassportLocalModel<T> & Model<T>;
interface _PassportLocalModel<T extends PassportLocalDocument> {
interface PassportLocalModel<T extends PassportLocalDocument> extends Model<T> {
authenticate(): (username: string, password: string, cb: (err: any, res: T, error: any) => void) => void;
serializeUser(): (user: PassportLocalModel<T>, cb: (err: any) => void) => void;
deserializeUser(): (username: string, cb: (err: any) => void) => void;
@@ -77,11 +76,11 @@ declare module 'mongoose' {
): this;
}
export function model<T extends PassportLocalDocument, Statics>(
export function model<T extends PassportLocalDocument>(
name: string,
schema?: PassportLocalSchema,
collection?: string,
skipInit?: boolean): Statics & PassportLocalModel<T>;
skipInit?: boolean): PassportLocalModel<T>;
}
declare module 'passport-local-mongoose' {