Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 1x 1x 1x 4x 1x 1x | import { getOwnProperty } from "./get";
type Environment<
K extends string = string,
X extends string | undefined = string | undefined
> = Readonly<Record<K, X>>;
/**
* Создаёт копию `process.env` ограниченную по ключам
*
* @template T
* @param {Record<string, string | string>} baseEnvironment
* @param {...T} keys
* @return {Object} {(Record<T[number], string | undefined>)}
*/
function loadEnvironment<T extends string[]>(
baseEnvironment: Environment,
...keys: T
): Environment<T[number], string> {
const environment = {} as Environment<string, string>;
for (const key of keys) {
Object.defineProperty(environment, key, {
get: () => getOwnProperty(baseEnvironment, key)
});
}
return environment;
}
export const environment = loadEnvironment(
process.env,
"QIWI_TOKEN",
"QIWI_WALLET",
"QIWI_SECRET_KEY",
"QIWI_PUBLIC_KEY"
);
|