Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

featurama

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

featurama

Enable/Disable features via JS config files.

  • 0.2.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-81.82%
Maintainers
1
Weekly downloads
 
Created
Source

Featurama

Circle CI

Removing the chaos from your features.

Chaos

Featurama gives you feature flags for enabling front-end features at build-time and run-time, while using the same configuration.

Installation

npm install featurama

Usage

To use build-time featurama:

var featurama = require('featurama')({
      featurePath: '/features',
      root: '/src'
    });

To use run-time featurama:

  1. Include featurama-client.js into your client-side javascript build.
  2. Set up a build-task that adds the run-time configuration file to your client-side javscript assests (See: featurama.buildRunTimeConfigFile() in the API section below).

Configuration Setup

In /features (or whatever you specified as the featurePath):

module.exports = {
  featureName: 'Feature 1',
  buildTimeEnabled: false,
  runTimeEnabled: function() { return !!Modernizr.history; },
  jsFiles: [
    'feature1.js',
  ],
  vendorFiles: [],
  scssFiles: [
    '_feature1.scss',
  ],
};

API

Run-time Methods

featurama.enabled(featureName)

Given a feature name, this indicates if it is enabled or not.

ParameterTypeDescription
featureNamestringthe name of the feature
Returns:booleantrue if enabled

featurama.on(featureName)

Given a feature name, this enables that feature.

ParameterTypeDescription
featureNamestringthe name of the feature

featurama.off(featureName)

Given a feature name, this disables that feature.

ParameterTypeDescription
featureNamestringthe name of the feature

Build-time Methods

featurama.isBuildTimeEnabled(buildTimeEnabled)

Return the boolean value or executes the function that defines if this feature is enabled or not.

ParameterTypeDescription
buildTimeEnabled`booleanfunction`
Returns:booleantrue if enabled

featurama.buildFeatureExclusions

Build a list of files to exclude

TypeDescription
Returns:objectobject of arrays containing files to exclude

featurama.buildFeatureInclusions()

Build a list of files to include

TypeDescription
Returns:objectobject of arrays containing files to include

featurama.featureValuesList()

Get a list of all of the declared features, their states, and file lists

TypeDescription
Returns:objectcombined feature configs

featurama.featureList()

Build a key:value list of features and their enabled states

TypeDescription
Returns:objectkey: value pairs

featurama.buildRunTimeConfigFile(outputFolder, outputType)

Generates a config file (named runTimeFlags.js) to be included in your client-side code. This file bridges the gap between your featurama configuration and your run-time feature flags.

ParameterTypeDescription
outputFolderstringpath to the folder where you want to generate runTimeFlags.js; example: path/to/my/scripts.
outputTypestringThe type of output ['var', 'ES6']

Keywords

FAQs

Package last updated on 02 Jun 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc