Foxify Config
![CodeCov](https://codecov.io/gh/foxifyjs/config/branch/main/graph/badge.svg?token=IMQe6xV4QC)
Foxify Configuration
Table of Content
Installation
In case of using GitHub package registry,
the package name will be @foxifyjs/config
.
NPM
npm i @foxify/config
PNPM
pnpm add @foxify/config
Yarn
yarn add @foxify/config
Usage
Create the foxify.config.js
file at the root of your project. (Optional)
In case of the config file missing, the default values will be used.
Config | Type | Default | Description |
---|
env | production , development , test | process.env.NODE_ENV or development | Node.js environment. |
xPoweredBy | Boolean | true | Indicates whether the X-Powered-By header should be present or not. |
workers | Integer between 1 and number of cpu cores | 1 | Number of Node.js cluster workers to be created. In case of 1 Node.js cluster workers won't be used. |
etag | (body: string / Buffer, encoding?: BufferEncoding) => string | - | ETag response header value generator. |
server | Object | - | Server config. |
server.protocol | http , https | http | Server protocol. |
server.hostname | String | localhost | Server hostname. |
server.port | Integer between 0 and 65535 | 3000 | Server port. |
subdomain | Object | - | Subdomain config. |
subdomain.offset | Non-negative integer | 2 | The number of dot-separated parts of the host to remove to access subdomain. |
json | Object | - | JSON config. |
json.escape | Boolean | false | Enable escaping JSON responses from the res.json , res.jsonp , and res.send APIs. |
json.replacer | (key: string, value: unknown) => unknown | - | The replacer argument used by JSON.stringify . |
json.spaces | Non-negative integer | 0 | The space argument used by JSON.stringify . This is typically set to the number of spaces to use to indent prettified JSON. |
jsonp | Object | - | JSONP config. |
jsonp.callback | String | callback | The JSONP callback name. |
query | Object | - | Request query string config. |
query.parser | (queryString: string) => Record<string, any> | qs.parse | A custom query string parsing function will receive the complete query string, and must return an object of query keys and their values. |
proxy | Object | - | Proxy config. |
proxy.trust | (ip: string, hopIndex: number) => boolean | () => false | Indicates whether the app is behind a front-facing proxy, and to use the X-Forwarded-* headers to determine the connection and the IP address of the client. |
The exported config values are frozen using Object.freeze
.
ECMAScript
Config file contents (foxify.config.js
):
export default {
env: "development",
xPoweredBy: true,
workers: 1,
server: {
protocol: "http",
hostname: "localhost",
port: 3000,
},
subdomain: {
offset: 2,
},
json: {
escape: false,
spaces: 0,
},
jsonp: {
callback: "callback",
},
query: {
parser: qs.parse,
},
proxy: {
trust: () => false,
},
};
Consume the config values:
import config from "@foxify/config";
CommonJS
Config file contents (foxify.config.js
):
module.exports = {
env: "development",
xPoweredBy: true,
workers: 1,
server: {
protocol: "http",
hostname: "localhost",
port: 3000,
},
subdomain: {
offset: 2,
},
json: {
escape: false,
spaces: 0,
},
jsonp: {
callback: "callback",
},
query: {
parser: qs.parse,
},
proxy: {
trust: () => false,
},
};
Consume the config values:
const config = require("@foxify/config").default;
Versioning
We use SemVer for versioning. For the versions available, see
the releases on this repository.
Authors
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE file for details