# node-environment-flags

> Polyfill/shim for `process.allowedNodeEnvironmentFlags`

[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)

**node-environment-flags** is a *rough* polyfill and shim for [process.allowedNodeEnvironmentFlags](https://nodejs.org/api/process.html#process_process_allowednodeenvironmentflags), which was introduced in Node.js v10.10.0.

## Table of Contents

- [Install](#install)
- [Usage](#usage)
- [Maintainers](#maintainers)
- [Contribute](#contribute)
- [License](#license)

## Install

*Requires Node.js v6.0.0 or newer.*

```shell
$ npm i node-environment-flags
```

## Usage

If the current Node.js version is v10.10.0 or newer, the native implementation will be provided instead.

### As Polyfill (Recommended)

```js
const nodeEnvironmentFlags = require('node-environment-flags');

nodeEnvironmentFlags.has('--require'); // true
```

### As Shim

```js
require('node-environment-flags/shim')();

process.allowedNodeEnvironmentFlags.has('--require'); // true
```

## Notes

- This module approximates what `process.allowedNodeEnvironmentFlags` provides in versions of Node.js prior to v10.10.0.  Since `process.allowedNodeEnvironmentFlags` is based on [`NODE_OPTIONS`](https://nodejs.org/api/cli.html#cli_node_options_options) (introduced in v8.0.0), the set of supported flags for versions older than v8.0.0 is *highly theoretical*.
- Version ranges are matched using [semver](https://npm.im/semver).
- This module is granular to the *minor* Node.js version number; *patch* version numbers are not considered.
- Results for unmaintained (odd) versions of Node.js are based on data for the most recent LTS version; e.g., running this module against Node.js v7.10.0 will yield the same results as would v6.14.0.
- Prior art: @ljharb's [util.promisify](https://npm.im/util.promisify)

## Maintainers

[@boneskull](https://github.com/boneskull)

## License

Copyright © 2018 Christopher Hiller.  Licensed Apache-2.0.