使用JSON schema, Ajv和dotenv来检查环境变量的工具类
使用JSON schema, Ajv和dotenv来检查环境变量的工具类
Node.js 其它杂项
共31Star
详细介绍
env-schema
Utility to check environment variables using JSON schema, Ajv and dotenv.
Install
npm install --save env-schema
Usage
const envSchema = require('env-schema')
const schema = {
type: 'object',
required: [ 'PORT' ],
properties: {
PORT: {
type: 'string',
default: 3000
}
}
}
const config = envSchema({
schema: schema,
data: data // optional, default: process.env
dotenv: true // load .env if it's there, default: false
})
console.log(config)
// output: { PORT: 3000 }
It is possible to also use fluent-schema:
const envSchema = require('env-schema')
const S = require('fluent-schema')
const config = envSchema({
schema: S.object().prop('port', S.string().default('3000').required()),
data: data // optional, default: process.env
dotenv: true // load .env if it's there, default: false
})
console.log(config)
// output: { PORT: 3000 }
NB: internally this plugin force to not have additional properties, so the additionalProperties
flag is forced to be false
Custom keywords
This library supports the following Ajv custom keywords:
separator
Type: string
Applies to type: string
When present, the value provided will be split based by this value.
Example:
const envSchema = require('env-schema')
const schema = {
type: 'object',
required: [ 'ALLOWED_HOSTS' ],
properties: {
ALLOWED_HOSTS: {
type: 'string',
separator: ','
}
}
}
const data = {
ALLOWED_HOSTS: '127.0.0.1,0.0.0.0'
}
const config = envSchema({
schema: schema,
data: data, // optional, default: process.env
dotenv: true // load .env if it's there, default: false
})
// config.data => ['127.0.0.1', '0.0.0.0']
Acknowledgements
Kindly sponsored by Mia Platform and NearForm.
License
MIT
-
5635 Star
-
0 Star
-
347 Star
-
0 Star
-
0 Star
-
23 Star
-
13 Star
-
101 Star