0.2.5 • Published 7 years ago

featurama v0.2.5

Weekly downloads
52
License
-
Repository
github
Last release
7 years ago

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
buildTimeEnabledboolean | functiondata from the config file that indicates enabled status
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'
0.2.5

7 years ago

0.2.4

7 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.10

9 years ago

0.0.9

9 years ago

0.0.8

9 years ago

0.0.7

9 years ago

0.0.6

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago