Перехватывать вызовы конструктора класса - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть мастер-приложение, которое принимает модули плагинов, за исключением некоторых функций (аутентификации), где по какой-то причине кажется, что адски плагины мешают плагинам добавлять методы аутентификации. Несмотря на это, мне все еще нужно сделать именно это - добавить новый метод аутентификации, но через плагин.

В главном приложении есть модуль машинописного текста, который экспортирует класс Authenticator,

export class Authenticator {
   constructor(arg) { dostuff(arg); }
}

Мне нужно каким-то образом перехватить аргумент конструктора и сохранить его в моем плагине. Класс Authenticator создается в частном коде, но, к счастью, после инициализации моего плагина - у меня есть шанс запустить некоторый код; Есть ли способ динамически изменить объект класса Authenticator (то есть сам класс), чтобы я мог захватить аргумент, когда он фактически создается? Обратите внимание, что я не могу использовать декоратор (мне нужно изменить основное приложение), и я не могу создать экземпляр прокси вместо Authenticator (опять же, мне нужно изменить основное приложение, чтобы сделать это) , Я пытался изменить Authenticator.constructor или Authenticator.prototype.constructor, но, очевидно, ни один из них не работает. Есть ли другой способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...