From d70a5da262a8e433d2800d75c297f5212eae2561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Wed, 20 Apr 2022 15:59:49 +0200 Subject: [PATCH] :sparkles: Create scopes fetcher --- packages/cli/src/CredentialsHelper.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/cli/src/CredentialsHelper.ts b/packages/cli/src/CredentialsHelper.ts index 6477504b87..9b02a61871 100644 --- a/packages/cli/src/CredentialsHelper.ts +++ b/packages/cli/src/CredentialsHelper.ts @@ -285,6 +285,33 @@ export class CredentialsHelper extends ICredentialsHelper { return combineProperties; } + /** + * Returns the scope of a credential type + * + * @param {string} type + * @returns {string[]} + * @memberof CredentialsHelper + */ + getScopes(type: string): string[] { + const scopeProperty = this.getCredentialsProperties(type).find(({ name }) => name === 'scope'); + + if (!scopeProperty?.default || typeof scopeProperty.default !== 'string') { + const errorMessage = `No \`scope\` property found for credential type: ${type}`; + + Logger.error(errorMessage); + + throw new Error(errorMessage); + } + + const { default: scopeDefault } = scopeProperty; + + if (/ /.test(scopeDefault)) return scopeDefault.split(' '); + + if (/,/.test(scopeDefault)) return scopeDefault.split(','); + + return [scopeDefault]; + } + /** * Returns the decrypted credential data with applied overwrites *