2.3.0 • Published 4 months ago

envey v2.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

envey

CI status license npm version

Envey is a library designed to simplify the process of managing and validating environment variables in Node.js applications. It provides a fully type-safe solution for defining and parsing configuration schemas, leveraging the power of Zod's excellent type system.

Installation

pnpm i -E zod envey

Usage

import { z } from 'zod'
import { createConfig } from 'envey'

const result = createConfig({
    z,
    {
        databaseUrl: {
            env: 'DATABASE_URL',
            format: z.string(),
        },
        port: {
            env: 'PORT',
            format: z.coerce.number().int().positive().max(65535),
        },
    },
    { validate: true },
})

if (!result.success) {
    console.error(result.error.issues)
    // Handle error
}

const { config } = result
//    ^? {
//           readonly databaseUrl: string;
//           readonly port: number;
//       }

Supports schema type inference, similar to Zod's infer:

const schema = {
    logLevel: {
        env: 'LOG_LEVEL',
        format: z.enum([
            'fatal',
            'error',
            'warn',
            'info',
            'debug',
            'trace',
            'silent',
        ]),
    },
} satisfies EnveySchema

type Config = InferEnveyConfig<typeof schema>
//   ^? {
//          readonly logLevel:  "fatal" | "error" | "warn" | "info" | "debug" | "trace" | "silent"
//      }

License

MIT

2.3.0

4 months ago

2.2.1

7 months ago

2.2.0

8 months ago

2.1.0

8 months ago

1.2.0

9 months ago

2.0.0

9 months ago

1.1.1

12 months ago

1.1.3

11 months ago

1.1.2

12 months ago

1.1.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago