Skip to content

Commit

Permalink
chore(util-credentials): refactor the functions to own files (#3357)
Browse files Browse the repository at this point in the history
  • Loading branch information
AllanZhengYP committed Feb 24, 2022
1 parent 8e93b32 commit ea88f96
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 46 deletions.
5 changes: 5 additions & 0 deletions packages/util-credentials/src/get-master-profile-name.ts
@@ -0,0 +1,5 @@
export const ENV_PROFILE = "AWS_PROFILE";
export const DEFAULT_PROFILE = "default";

export const getMasterProfileName = (init: { profile?: string }): string =>
init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE;
48 changes: 2 additions & 46 deletions packages/util-credentials/src/index.ts
@@ -1,46 +1,2 @@
import {
loadSharedConfigFiles,
ParsedIniData,
SharedConfigFiles,
SharedConfigInit,
} from "@aws-sdk/shared-ini-file-loader";

export const ENV_PROFILE = "AWS_PROFILE";
export const DEFAULT_PROFILE = "default";

export interface SourceProfileInit extends SharedConfigInit {
/**
* The configuration profile to use.
*/
profile?: string;

/**
* A promise that will be resolved with loaded and parsed credentials files.
* Used to avoid loading shared config files multiple times.
*
* @internal
*/
loadedConfig?: Promise<SharedConfigFiles>;
}

/**
* Load profiles from credentials and config INI files and normalize them into a
* single profile list.
*
* @internal
*/
export const parseKnownFiles = async (init: SourceProfileInit): Promise<ParsedIniData> => {
const { loadedConfig = loadSharedConfigFiles(init) } = init;

const parsedFiles = await loadedConfig;
return {
...parsedFiles.configFile,
...parsedFiles.credentialsFile,
};
};

/**
* @internal
*/
export const getMasterProfileName = (init: { profile?: string }): string =>
init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE;
export * from "./get-master-profile-name";
export * from "./parse-known-profiles";
37 changes: 37 additions & 0 deletions packages/util-credentials/src/parse-known-profiles.ts
@@ -0,0 +1,37 @@
import {
loadSharedConfigFiles,
ParsedIniData,
SharedConfigFiles,
SharedConfigInit,
} from "@aws-sdk/shared-ini-file-loader";

export interface SourceProfileInit extends SharedConfigInit {
/**
* The configuration profile to use.
*/
profile?: string;

/**
* A promise that will be resolved with loaded and parsed credentials files.
* Used to avoid loading shared config files multiple times.
*
* @internal
*/
loadedConfig?: Promise<SharedConfigFiles>;
}

/**
* Load profiles from credentials and config INI files and normalize them into a
* single profile list.
*
* @internal
*/
export const parseKnownFiles = async (init: SourceProfileInit): Promise<ParsedIniData> => {
const { loadedConfig = loadSharedConfigFiles(init) } = init;

const parsedFiles = await loadedConfig;
return {
...parsedFiles.configFile,
...parsedFiles.credentialsFile,
};
};

0 comments on commit ea88f96

Please sign in to comment.