Skip to content

Latest commit

 

History

History
53 lines (46 loc) · 1.55 KB

README.md

File metadata and controls

53 lines (46 loc) · 1.55 KB

Fastify Config Loader

JavaScript Style Guide

Install:

$ npm install fastify-config-loader --save

How to use?

const fastify = require('fastify')()
const configs = require('fastify-config-loader')
fastify.register(configs, { path: '[CONFIGS_DIRECTORY_PATH]' })

fastify.get('/', async (request, reply) => {
	console.log('Configs:', fastify.Configs) // => returns configs object
    return { hello: 'world' }
})

How it works?

You have to put config files into CONFIGS_DIRECTORY_PATH which will pass as a path option into the plugin options. The directory includes json files which seperated with a dot for different environments.

- configs direcroy:
   |_ configs.json
   |_ configs.staging.json
   |_ configs.production.json

The main config file is configs.json and base on different environments other files will be marge into it. for example if I set NODE_ENV=production the production config file will be concat to main configs file and returns as an object into my application. You can also add a configs.js file to the configs directory. which will help to modify configs from json files with same keys. for example:

configs.json

{
  "cors_whitelist": [
    "localhost:3000",
    "localhost:5000"
  ]
}

configs.js

module.exports = {
  cors_whitelist: (data) => {
    // data will return localhost:3000 and localhost:5000 in an array
    return data
  }
}