resource-parser v1.0.6
Resource-parser
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.
Install
npm i --save resource-parserLoad resource
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"
}Load resource with import resources
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"
}
}Load resource with extra data
const resourceParser = require('resource-parser');
const config = resourceParser('config.json'), {
key: 'value'
};API
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>