diff --git a/src/main/ts/envapi.ts b/src/main/ts/envapi.ts index e2010b6..5d1d099 100644 --- a/src/main/ts/envapi.ts +++ b/src/main/ts/envapi.ts @@ -91,6 +91,8 @@ export const loadSafe = (...files: string[]): NodeJS.ProcessEnv => ...files ) -export const config = (def = DOTENV, ...files: string[]): NodeJS.ProcessEnv => - Object.assign(process.env, loadSafe(def, ...files)) +export const populate = (env: NodeJS.ProcessEnv, extra?: NodeJS.ProcessEnv): NodeJS.ProcessEnv => + Object.assign(env, extra) +export const config = (def = DOTENV, ...files: string[]): NodeJS.ProcessEnv => + populate(process.env, loadSafe(def, ...files)) diff --git a/src/test/ts/index.test.ts b/src/test/ts/index.test.ts index 380ff01..8c4f4ff 100644 --- a/src/test/ts/index.test.ts +++ b/src/test/ts/index.test.ts @@ -3,7 +3,7 @@ import fs from 'node:fs' import os from 'node:os' import path from 'node:path' import { describe, test, afterAll } from 'vitest' -import { parse, stringify, load, loadSafe, config } from '../../main/ts/index.js' +import { parse, stringify, load, loadSafe, populate, config } from '../../main/ts/index.js' const randomId= () => Math.random().toString(36).slice(2) const tempdir = (prefix: string = `temp-${randomId()}`): string => { @@ -126,4 +126,10 @@ JSONSTR='{"foo": "b a r"}'` delete process.env.ENV1 }) }) + + describe('populate()', () => { + test('populates env', () => { + assert.deepEqual(populate({FOO: 'BAR'}, { FOO: 'BAZ' }), { FOO: 'BAZ' }) + }) + }) })