У меня есть этот модуль
export default () => ({
environment: process.env.ENVIRONMENT,
port: process.env.PORT
database: {
host: process.env.DATABASE_HOST,
port: process.env.DATABASE_PORT,
username: 'postgres',
password: process.env.DATABASE_PASSWORD,
database: process.env.DATABASE_NAME,
},
awsSqsDefaultQueueUrl: process.env.AWS_SQS_DEFAULT_QUEUE_URL,
sqsEndpoint: process.env.SQS_ENDPOINT,
})
Я хочу прочитать его и создать объект с плоским ключом / значением, который выравнивает свои ключи, только если значение начинается с process.env
, например:
{
ENVIRONMENT: configuration().environment,
PORT: configuration().port,
DATABASE_HOST: configuration().database.host
DATABASE_PORT: configuration().database.port
...
}
database.username
не будет в новом ключе объекта, поскольку его значение не начинается с process.env
.
Единственный способ думать, где я могу прочитать значение ключа без его оценки, - загрузить файл в виде строки и затем проанализировать его с помощью регулярных выражений. Но это неправильно.
Есть ли лучший способ добиться этого?