Skip to content

JavaScript Ecosystem

Varlock integrates seamlessly with the JavaScript ecosystem. This guide shows how to use Varlock with popular frameworks and tools.

app/config.ts
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();
app.ts
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
});
app.module.ts
import { Module } from '@nestjs/common';
import { VarlockModule } from 'varlock/nest';
@Module({
imports: [
VarlockModule.forRoot({
spec: {
DATABASE_URL: { type: 'string', required: true }
}
})
]
})
export class AppModule {}
vite.config.ts
import { defineConfig } from 'vite';
import { Varlock } from 'varlock';
const varlock = new Varlock();
await varlock.load();
export default defineConfig({
define: {
'process.env': varlock.env
}
});
webpack.config.js
const { Varlock } = require('varlock');
const varlock = new Varlock();
await varlock.load();
module.exports = {
plugins: [
new webpack.DefinePlugin({
'process.env': JSON.stringify(varlock.env)
})
]
};
jest.config.ts
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
}
};
.github/workflows/deploy.yml
name: Deploy
env:
VARLOCK_SPEC: |
{
"API_KEY": { "type": "string", "secret": true }
}