0.2.5 • Published 8 years ago

featurama v0.2.5

Weekly downloads
52
License
-
Repository
github
Last release
8 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

8 years ago

0.2.4

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago

0.0.10

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago