A client that lets you read Edge Config.
You can use the methods below to read your Edge Config given you have its Connection String stored in an Environment Variable called process.env.EDGE_CONFIG
.
import { get } from '@vercel/edge-config';
await get('someKey');
Returns the value if the key exists.
Returns undefined
if the key does not exist.
Throws on invalid tokens, deleted edge configs or network errors.
import { has } from '@vercel/edge-config';
await has('someKey');
Returns true
if the key exists.
Returns false
if the key does not exist.
Throws on invalid tokens, deleted edge configs or network errors.
import { getAll } from '@vercel/edge-config';
await getAll();
Returns all Edge Config items. Throws on invalid tokens, deleted edge configs or network errors.
import { getAll } from '@vercel/edge-config';
await getAll(['keyA', 'keyB']);
Returns selected Edge Config items. Throws on invalid tokens, deleted edge configs or network errors.
By default @vercel/edge-config
will read from the Edge Config stored in process.env.EDGE_CONFIG
.
The exported get
, getAll
, has
and digest
functions are bound to this default Edge Config Client.
You can use createClient(connectionString)
to read values from Edge Configs other than the default one.
import { createClient } from '@vercel/edge-config';
const edgeConfig = createClient(process.env.ANOTHER_EDGE_CONFIG);
await edgeConfig.get('someKey');
The createClient
function connects to a any Edge Config based on the provided Connection String.
It returns the same get
, getAll
, has
and digest
functions as the default Edge Config Client exports.
Edge Config Items can be managed in two ways:
Keep in mind that Edge Config is built for very high read volume, but for infrequent writes.
- Works in Edge Runtime, Node.js and in the browser
- An error is thrown in case of a network error
- An error is thrown in case of an unexpected response
@vercel/edge-config
is compatible with the Edge Runtime. It can be used inside environments like Vercel Edge Functions as follows:
// Next.js (pages/api/edge.js) (npm i next@canary)
// Other frameworks (api/edge.js) (npm i -g vercel@canary)
import { get } from '@vercel/edge-config';
export default (req) => {
const value = await get("someKey")
return new Response(`someKey contains value "${value})"`);
};
export const config = { runtime: 'edge' };
- Fork this repository to your own GitHub account and then clone it to your local device
- Link the package to the global module directory:
npm link
- Within the module you want to test your local development instance of
@vercel/edge-config
, just link it to the dependencies:npm link @vercel/edge-config
. Instead of the default one from npm, Node.js will now use your clone of@vercel/edge-config
!
As always, you can run the tests using: npm test
@vercel/edge-config
reads database credentials from the environment variables on process.env
. In general, process.env
is automatically populated from your .env
file during development, which is created when you run vc env pull
. However, Vite does not expose the .env
variables on process.env.
You can fix this in one of following two ways:
- You can populate
process.env
yourself using something likedotenv-expand
:
pnpm install --save-dev dotenv dotenv-expand
// vite.config.js
import dotenvExpand from 'dotenv-expand';
import { loadEnv, defineConfig } from 'vite';
export default defineConfig(({ mode }) => {
// This check is important!
if (mode === 'development') {
const env = loadEnv(mode, process.cwd(), '');
dotenvExpand.expand({ parsed: env });
}
return {
...
};
});
- You can provide the credentials explicitly, instead of relying on a zero-config setup. For example, this is how you could create a client in SvelteKit, which makes private environment variables available via
$env/static/private
:
import { createClient } from '@vercel/edge-config';
+ import { EDGE_CONFIG } from '$env/static/private';
- const edgeConfig = createClient(process.env.ANOTHER_EDGE_CONFIG);
+ const edgeConfig = createClient(EDGE_CONFIG);
await edgeConfig.get('someKey');