fix(core): Fix issue that some predefined credentials do not show up on HTTP Request Node (#3556)

* 🐛 Fix issue with credentials that define authenticate method

*  Small improvement

*  Fix typo

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
This commit is contained in:
Ricardo Espinoza 2022-06-18 17:37:37 -04:00 committed by GitHub
parent c4b63fa999
commit d417ea7ffa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -150,6 +150,19 @@ class LoadNodesAndCredentialsClass {
let tempCredential: ICredentialType; let tempCredential: ICredentialType;
try { try {
// Add serializer method "toJSON" to the class so that authenticate method (if defined)
// gets mapped to the authenticate attribute before it is sent to the client.
// The authenticate property is used by the client to decide whether or not to
// include the credential type in the predifined credentials (HTTP node)
// eslint-disable-next-line func-names
tempModule[credentialName].prototype.toJSON = function () {
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return {
...this,
authenticate: typeof this.authenticate === 'function' ? {} : this.authenticate,
};
};
tempCredential = new tempModule[credentialName]() as ICredentialType; tempCredential = new tempModule[credentialName]() as ICredentialType;
if (tempCredential.icon && tempCredential.icon.startsWith('file:')) { if (tempCredential.icon && tempCredential.icon.startsWith('file:')) {