OpenFeature SDK for NodeJS
This is the NodeJS implementation of OpenFeature, a vendor-agnostic abstraction library for evaluating feature flags.
We support multiple data types for flags (numbers, strings, booleans, objects) as well as hooks, which can alter the lifecycle of a flag evaluation.
This library is intended to be used in server-side contexts and has not been evaluated for use in mobile devices.
Installation
npm install @openfeature/nodejs-sdk
or
yarn add @openfeature/nodejs-sdk
Usage
import { OpenFeature } from '@openfeature/nodejs-sdk';
OpenFeature.setProvider(new MyProvider());
const client = OpenFeature.getClient();
const value = await client.getBooleanValue('enabled-new-feature', false);
Development
Installation and Dependencies
Install dependencies with npm ci
. npm install
will update the package-lock.json with the most recent compatible versions.
We value having as few runtime dependencies as possible. The addition of any dependencies requires careful consideration and review.
Testing
Run tests with npm test
.
Packaging
Both ES modules and CommonJS modules are supported, so consumers can use both require
and import
functions to utilize this module. This is accomplished by building 2 variations of the output, under dist/esm
and dist/cjs
, respectively. To force resolution of the dist/esm/**.js*
files as modules, a package json with only the context {"type": "module"}
is included at a in a postbuild
step. Type declarations are included at /dist/types/
For testing purposes, you can add a comment containing "/publish" in any PR. This will publish an experimental SDK version with the git SHA appended to the version number.
Contributors
Thanks so much to our contributors.
Made with contrib.rocks.
License
Apache License 2.0