UNPKG

serverless-spy

Version:

CDK-based library for writing elegant integration tests on AWS serverless architecture and an additional web console to monitor events in real time.

40 lines (39 loc) 1.48 kB
import { join } from "path"; import { getConfigData } from "./getConfigData"; import { getConfigFilepath } from "./getConfigFilepath"; import { getCredentialsFilepath } from "./getCredentialsFilepath"; import { getHomeDir } from "./getHomeDir"; import { parseIni } from "./parseIni"; import { slurpFile } from "./slurpFile"; const swallowError = () => ({}); export const CONFIG_PREFIX_SEPARATOR = "."; export const loadSharedConfigFiles = async (init = {}) => { const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init; const homeDir = getHomeDir(); const relativeHomeDirPrefix = "~/"; let resolvedFilepath = filepath; if (filepath.startsWith(relativeHomeDirPrefix)) { resolvedFilepath = join(homeDir, filepath.slice(2)); } let resolvedConfigFilepath = configFilepath; if (configFilepath.startsWith(relativeHomeDirPrefix)) { resolvedConfigFilepath = join(homeDir, configFilepath.slice(2)); } const parsedFiles = await Promise.all([ slurpFile(resolvedConfigFilepath, { ignoreCache: init.ignoreCache, }) .then(parseIni) .then(getConfigData) .catch(swallowError), slurpFile(resolvedFilepath, { ignoreCache: init.ignoreCache, }) .then(parseIni) .catch(swallowError), ]); return { configFile: parsedFiles[0], credentialsFile: parsedFiles[1], }; };