discord-bot-cdk-construct
Version:
A quick CDK Construct for creating a serverless Discord bot in AWS!
34 lines • 3.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDiscordSecrets = void 0;
const aws_sdk_1 = require("aws-sdk");
const EnvironmentProps_1 = require("../constants/EnvironmentProps");
const secretsManager = new aws_sdk_1.SecretsManager();
/**
* Cached Discord secrets so we can reduce warm start times.
*/
let __discordSecrets = undefined;
/**
* Gets the Discord secrets (public key, client ID, etc.) for use in our lambdas.
*
* @return {Promise<IDiscordSecrets | undefined>} The Discord secrets to be used.
*/
async function getDiscordSecrets() {
if (!__discordSecrets) {
try {
const discordApiKeys = await secretsManager.getSecretValue({
SecretId: EnvironmentProps_1.discordBotAPIKeyName,
}).promise();
if (discordApiKeys.SecretString) {
__discordSecrets = JSON.parse(discordApiKeys.SecretString);
}
}
catch (exception) {
console.log(`Unable to get Discord secrets: ${exception}`);
}
}
return __discordSecrets;
}
exports.getDiscordSecrets = getDiscordSecrets;
;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzY29yZFNlY3JldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZnVuY3Rpb25zL3V0aWxzL0Rpc2NvcmRTZWNyZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUF1QztBQUV2QyxvRUFBbUU7QUFFbkUsTUFBTSxjQUFjLEdBQUcsSUFBSSx3QkFBYyxFQUFFLENBQUM7QUFFNUM7O0dBRUc7QUFDSCxJQUFJLGdCQUFnQixHQUFnQyxTQUFTLENBQUM7QUFFOUQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxpQkFBaUI7SUFDckMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1FBQ3JCLElBQUk7WUFDRixNQUFNLGNBQWMsR0FBRyxNQUFNLGNBQWMsQ0FBQyxjQUFjLENBQUM7Z0JBQ3pELFFBQVEsRUFBRSx1Q0FBb0I7YUFDL0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsSUFBSSxjQUFjLENBQUMsWUFBWSxFQUFFO2dCQUMvQixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUM1RDtTQUNGO1FBQUMsT0FBTyxTQUFTLEVBQUU7WUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUM1RDtLQUNGO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDO0FBZEQsOENBY0M7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZWNyZXRzTWFuYWdlcn0gZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQge0lEaXNjb3JkU2VjcmV0c30gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtkaXNjb3JkQm90QVBJS2V5TmFtZX0gZnJvbSAnLi4vY29uc3RhbnRzL0Vudmlyb25tZW50UHJvcHMnO1xuXG5jb25zdCBzZWNyZXRzTWFuYWdlciA9IG5ldyBTZWNyZXRzTWFuYWdlcigpO1xuXG4vKipcbiAqIENhY2hlZCBEaXNjb3JkIHNlY3JldHMgc28gd2UgY2FuIHJlZHVjZSB3YXJtIHN0YXJ0IHRpbWVzLlxuICovXG5sZXQgX19kaXNjb3JkU2VjcmV0czogSURpc2NvcmRTZWNyZXRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4vKipcbiAqIEdldHMgdGhlIERpc2NvcmQgc2VjcmV0cyAocHVibGljIGtleSwgY2xpZW50IElELCBldGMuKSBmb3IgdXNlIGluIG91ciBsYW1iZGFzLlxuICpcbiAqIEByZXR1cm4ge1Byb21pc2U8SURpc2NvcmRTZWNyZXRzIHwgdW5kZWZpbmVkPn0gVGhlIERpc2NvcmQgc2VjcmV0cyB0byBiZSB1c2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGlzY29yZFNlY3JldHMoKTogUHJvbWlzZTxJRGlzY29yZFNlY3JldHMgfCB1bmRlZmluZWQ+IHtcbiAgaWYgKCFfX2Rpc2NvcmRTZWNyZXRzKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRpc2NvcmRBcGlLZXlzID0gYXdhaXQgc2VjcmV0c01hbmFnZXIuZ2V0U2VjcmV0VmFsdWUoe1xuICAgICAgICBTZWNyZXRJZDogZGlzY29yZEJvdEFQSUtleU5hbWUsXG4gICAgICB9KS5wcm9taXNlKCk7XG4gICAgICBpZiAoZGlzY29yZEFwaUtleXMuU2VjcmV0U3RyaW5nKSB7XG4gICAgICAgIF9fZGlzY29yZFNlY3JldHMgPSBKU09OLnBhcnNlKGRpc2NvcmRBcGlLZXlzLlNlY3JldFN0cmluZyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICBjb25zb2xlLmxvZyhgVW5hYmxlIHRvIGdldCBEaXNjb3JkIHNlY3JldHM6ICR7ZXhjZXB0aW9ufWApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gX19kaXNjb3JkU2VjcmV0cztcbn07XG4iXX0=