# merge

```ts
function merge(...members): Source;
```

Combine several sources into one. A later member's `readVars()` value overrides an
earlier member's for the same key. A member may be a `(key) => string | undefined` reader for a
source that reads one key at a time, and it fills a key missing from every snapshot. Bind the result
with `Envapter.useSource`. Throws [EnvaptErrorCodes.InvalidMergedSource](../variables/EnvaptErrorCodes.mdx#property-invalidmergedsource) with no members or with
more than one file-backed member.

## Parameters

| Parameter | Type |
| ------ | ------ |
| ...`members` | ( \| [`Source`](../type-aliases/Source.mdx) \| ((`key`) => `string` \| `undefined`))[] |

## Returns

[`Source`](../type-aliases/Source.mdx)

## See

[https://envapt.materwelon.dev/docs/sources#combining-sources](https://envapt.materwelon.dev/docs/sources#combining-sources)