UNPKG

1.66 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.PassportStrategy = void 0;
4const passport = require("passport");
5function PassportStrategy(Strategy, name, callbackArity) {
6 class MixinStrategy extends Strategy {
7 constructor(...args) {
8 const callback = async (...params) => {
9 const done = params[params.length - 1];
10 try {
11 const validateResult = await this.validate(...params);
12 if (Array.isArray(validateResult)) {
13 done(null, ...validateResult);
14 }
15 else {
16 done(null, validateResult);
17 }
18 }
19 catch (err) {
20 done(err, null);
21 }
22 };
23 if (callbackArity !== undefined) {
24 const validate = new.target?.prototype?.validate;
25 const arity = callbackArity === true ? validate.length + 1 : callbackArity;
26 if (validate) {
27 Object.defineProperty(callback, 'length', {
28 value: arity
29 });
30 }
31 }
32 super(...args, callback);
33 const passportInstance = this.getPassportInstance();
34 if (name) {
35 passportInstance.use(name, this);
36 }
37 else {
38 passportInstance.use(this);
39 }
40 }
41 getPassportInstance() {
42 return passport;
43 }
44 }
45 return MixinStrategy;
46}
47exports.PassportStrategy = PassportStrategy;