Parse a JSON resource file or object using .env
file and process.env
.
This module allows you to refer to environment variables or keys in the object itself.
References are searched for in all strings of the object. A string can contain one or more references.
npm i --save resource-parser
When resource loaded, it will be parser from .env
and process.env
data
Default usage
const resourceParser = require('resource-parser');
/*
Resource can be a relative/absolute path, or an object
If resource is a relative path or an object with "imports" key, you must provide a dirpath as second argument
*/
const config = resourceParser('./config.json');
Express usage
const resourceParser = require('resource-parser');
const express = require('express');
// ...
const app = express();
/*
will add "config" key to "req" object
Config data is parsed during app loading and will be cloned for each request
*/
app.use(resourceParser.middleware('config.json'));
config.json
{
"database": {
"name": "{DB_NAME}"
},
"homeDir": "{HOME}/app",
"publicDir": "{homeDir}/public"
}
const resourceParser = require('resource-parser');
const config = resourceParser('config.json');
config.json
{
"imports": [
"parameters.json"
],
"database": {
"name": "{DB_NAME}"
},
"publicDir": "{parameters.homeDir}/public"
}
parameters.json
{
"imports": [
],
"database": {
"host": "{DB_HOST || localhost}"
},
"parameters": {
"homeDir": "{HOME}/app"
}
}
const resourceParser = require('resource-parser');
const config = resourceParser('config.json'), {
key: 'value'
};
Express middleware
resourceParser.middleware(config: object, dirpath?: string, refs?: object): function
resourceParser.middleware(config: string, dirpath?: string, refs?: object): function
resourceParser.middleware(config: string, refs?: object): function
Parse from file or object
resourceParser.parse(config: object, dirpath?: string, refs?: object): object
resourceParser.parse(config: string, dirpath?: string, refs?: object): object
resourceParser.parse(config: string, refs?: object): object
Parse object
using refs
resourceParser.parseObject(obj: object, refs: object, isArray?: boolean): object
Parse string value
using refs
resourceParser.parseString(value: string, refs: object): string
Test if value
contains one or more references
resourceParser.containReferences(value: string): boolean
Extract references from value
resourceParser.getReferences(value: string): Array<string>