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 39 40 | 6x 6x 6x 24x 4x 6x 6x | import { getOwnProperty } from "./get";
import type { ReadonlyRecord } from "./types";
type Environment<
K extends string = string,
X extends string | undefined = string | undefined
> = ReadonlyRecord<K, X>;
/**
* Создаёт копию `process.env` ограниченную по ключам
*
* @template T
* @param {ReadonlyRecord<string, string | string>} baseEnvironment
* @param {...T} keys
* @return {Object} (ReadonlyRecord<T[number], string | undefined>)
*/
function loadEnvironment<T extends string[]>(
baseEnvironment: Environment,
...keys: T
): Environment<T[number], string> {
const environment = Object.create(null) as Environment<string, string>;
for (const key of keys) {
Object.defineProperty(environment, key, {
get: () => getOwnProperty(baseEnvironment, key)
});
}
return environment;
}
export const environment = loadEnvironment(
/* istanbul ignore next */
typeof process === "object" && process?.env ? process.env : {},
"QIWI_TOKEN",
"QIWI_WALLET",
"QIWI_SECRET_KEY",
"QIWI_PUBLIC_KEY"
);
|