Esbuild plugin to validate environment variables against a Valibot schema.
It's generally a good idea to check that you're all set up early in the development process. Validating that your environment variables have been defined and are of the expected type is a part of that – for yourself and your colleagues. While there are many libraries to validate against a schema, Valibot stands out for its versatility and modularity. The small footprint makes it an ideal candidate for validation in the frontend. So why not use it in your development process as well?
npm install -D esbuild-plugin-valibot-env valibot
Let's start with a very basic example
import { build } from 'esbuild';
import * as v from 'valibot';
import valibot from 'esbuild-plugin-valibot-env';
const envSchema = v.object({
ESBUILD_API_ENDPOINT: v.pipe(v.string(), v.url()),
ESBUILD_LOCALE: v.literal('en_US'),
});
await build({
entryPoints: ['demo.ts'],
plugins: [
valibot(schema),
],
});
valibot(schema, options?)
Type: String
Default: ".env"
Specify a path to an .env
file. It will be passed to the dotenv
package.
Type: Boolean
Default: false
Setting this to true
will try and transform string values to their respective types. Supports booleans, integers, floats, and null
.
This work is licensed under The MIT License.