UNPKG

@nestjs/passport

Version:

Nest - modern, fast, powerful node.js web framework (@passport)

48 lines (47 loc) 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PassportStrategy = void 0; const passport = require("passport"); function PassportStrategy(Strategy, name, callbackArity) { class MixinStrategy extends Strategy { constructor(...args) { const callback = async (...params) => { const done = params[params.length - 1]; try { const validateResult = await this.validate(...params); if (Array.isArray(validateResult)) { done(null, ...validateResult); } else { done(null, validateResult); } } catch (err) { done(err, null); } }; if (callbackArity !== undefined) { const validate = new.target?.prototype?.validate; const arity = callbackArity === true ? validate.length + 1 : callbackArity; if (validate) { Object.defineProperty(callback, 'length', { value: arity }); } } super(...args, callback); const passportInstance = this.getPassportInstance(); if (name) { passportInstance.use(name, this); } else { passportInstance.use(this); } } getPassportInstance() { return passport; } } return MixinStrategy; } exports.PassportStrategy = PassportStrategy;