JavaScript Ecosystem
Varlock integrates seamlessly with the JavaScript ecosystem. This guide shows how to use Varlock with popular frameworks and tools.
Framework Integration
Section titled “Framework Integration”Next.js
Section titled “Next.js”import { Varlock } from 'varlock';
const varlock = new Varlock({ spec: { API_URL: { type: 'string', required: true }, API_KEY: { type: 'string', secret: true } }});
export const config = await varlock.load();Express
Section titled “Express”import express from 'express';import { Varlock } from 'varlock';
const app = express();const varlock = new Varlock();
await varlock.load();
app.get('/api', (req, res) => { const { API_KEY } = varlock.env; // Use environment variables});NestJS
Section titled “NestJS”import { Module } from '@nestjs/common';import { VarlockModule } from 'varlock/nest';
@Module({ imports: [ VarlockModule.forRoot({ spec: { DATABASE_URL: { type: 'string', required: true } } }) ]})export class AppModule {}Build Tools
Section titled “Build Tools”import { defineConfig } from 'vite';import { Varlock } from 'varlock';
const varlock = new Varlock();await varlock.load();
export default defineConfig({ define: { 'process.env': varlock.env }});Webpack
Section titled “Webpack”const { Varlock } = require('varlock');
const varlock = new Varlock();await varlock.load();
module.exports = { plugins: [ new webpack.DefinePlugin({ 'process.env': JSON.stringify(varlock.env) }) ]};Testing
Section titled “Testing”import { Varlock } from 'varlock';
const varlock = new Varlock({ spec: { TEST_API_KEY: { type: 'string', required: true } }});
export default { setupFiles: ['<rootDir>/jest.setup.ts'], globals: { 'process.env': varlock.env }};CI/CD Integration
Section titled “CI/CD Integration”GitHub Actions
Section titled “GitHub Actions”name: Deployenv: VARLOCK_SPEC: | { "API_KEY": { "type": "string", "secret": true } }Next Steps
Section titled “Next Steps”- Learn about security best practices
- Explore secrets management
- Check out other language support