in lib/index.js [26:72]
function createDefaultResolvers(libraryOptions) {
// The core environment resolver is used to make sure that the
// right variables are used for KeyVault or other boostrapping
const environmentProvider = libraryOptions.environmentProvider || painlessConfigAsCode(libraryOptions);
try {
environmentProvider.get(); // for init
} catch (ignoreError) {
console.warn(ignoreError);
}
const environmentOptions = {
provider: environmentProvider,
};
const volumeResolver = volumeConfigurationResolver(environmentOptions);
const keyVaultOptions = {
getClientCredentials: async () => {
unshiftOptionalVariable(keyVaultClientIdFallbacks, environmentProvider, 'KEYVAULT_CLIENT_ID_KEY');
unshiftOptionalVariable(keyVaultClientSecretFallbacks, environmentProvider, 'KEYVAULT_CLIENT_SECRET_KEY');
async function getEnvironmentOrVolumeValue(fallbacks) {
let value = getEnvironmentValue(environmentProvider, fallbacks);
const asVolumeFile = volumeResolver.isVolumeFile(value);
if (asVolumeFile) {
value = await volumeResolver.resolveVolumeFile(environmentProvider, asVolumeFile);
}
return value;
}
const clientId = await getEnvironmentOrVolumeValue(keyVaultClientIdFallbacks);
const clientSecret = await getEnvironmentOrVolumeValue(keyVaultClientSecretFallbacks);
if (clientId && clientSecret) {
return {
clientId: clientId,
clientSecret: clientSecret,
};
}
},
};
const resolvers = [
environmentConfigurationResolver(environmentOptions).resolveObjectVariables,
volumeResolver.resolveVolumeFiles,
keyVaultConfigurationResolver(keyVaultOptions).getObjectSecrets,
];
resolvers.environment = environmentProvider;
return resolvers;
}