A client that lets you read Edge Config.
npm install @vercel/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');