Socket
Socket
Sign inDemoInstall

featured

Package Overview
Dependencies
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

featured - npm Package Compare versions

Comparing version 0.0.2 to 0.0.3

126

lib/featured.js

@@ -1,79 +0,71 @@

// Generated by CoffeeScript 1.3.3
(function() {
var featured, fs, functionName, generatedFunctionName, path, rules;
// Generated by CoffeeScript 1.6.3
var featured, fs, functionName, generatedFunctionName, path, rules;
fs = require('fs');
fs = require('fs');
path = require('path');
path = require('path');
featured = exports;
featured = exports;
rules = {};
rules = {};
functionName = '';
functionName = '';
generatedFunctionName = '';
generatedFunctionName = '';
featured.configure = function(opts) {
var defaults, key, val, _ref;
defaults = {
file: './rules.js',
functionName: '__featured',
generatedFunctionName: '__featuredStatic'
};
opts = opts != null ? opts : {};
for (key in defaults) {
val = defaults[key];
if ((_ref = opts[key]) == null) {
opts[key] = val;
}
featured.configure = function(opts) {
var defaults, key, val;
defaults = {
file: './rules.js',
functionName: '__featured',
generatedFunctionName: '__featuredStatic'
};
opts = opts != null ? opts : {};
for (key in defaults) {
val = defaults[key];
if (opts[key] == null) {
opts[key] = val;
}
functionName = opts.functionName;
generatedFunctionName = opts.generatedFunctionName;
opts.file = path.resolve(opts.file);
if (!fs.existsSync(opts.file)) {
fs.writeFileSync(opts.file, "module.exports = {\n 'featureName': true,\n 'otherFeatureName': function()(session){\n\n if(process.env.NODE_ENV=='production')\n return false;\n\n if(session.userSettings && session.userSettings.enableDSPro)\n return true;\n\n }\n}");
}
return rules = require(opts.file);
};
}
functionName = opts.functionName;
generatedFunctionName = opts.generatedFunctionName;
opts.file = path.resolve(opts.file);
if (!fs.existsSync(opts.file)) {
fs.writeFileSync(opts.file, "module.exports = {\n 'featureName': true,\n 'isProduction': function(session){\n return (process.env.NODE_ENV === 'production');\n }\n}");
}
return rules = require(opts.file);
};
featured.init = function(req, res, next) {
var __featured;
__featured = function(featureName) {
return featured.checkFeature(featureName, req.session);
};
res.locals[generatedFunctionName] = featured.generated(req.session);
res.locals[functionName] = __featured;
req[functionName] = __featured;
return next();
featured.init = function(req, res, next) {
var key, value, __featured;
__featured = function(featureName) {
return featured.checkFeature(featureName, req.session);
};
__featured.defaults = {};
for (key in rules) {
value = rules[key];
__featured.defaults[key] = featured.checkFeature(key, req.session);
}
res.locals[generatedFunctionName] = 'var ' + functionName + ' = function(featureName){return ' + functionName + '.defaults[featureName] || false;}' + '; ' + functionName + '.defaults = ' + JSON.stringify(__featured.defaults);
res.locals[functionName] = __featured;
req[functionName] = __featured;
return next();
};
featured.checkFeature = function(featureName, session) {
var rule;
rule = rules[featureName];
if (typeof rule === 'undefined') {
return false;
}
if (typeof rule === 'boolean') {
return rule;
}
if (typeof rule === 'function') {
return rule(session);
}
featured.checkFeature = function(featureName, session) {
var rule, _ref;
if ((session != null ? (_ref = session[functionName]) != null ? _ref[featureName] : void 0 : void 0) != null) {
return session[functionName][featureName];
}
rule = rules[featureName];
if (typeof rule === 'undefined') {
return false;
};
featured.generated = function(session) {
var key, value, __featured;
__featured = function(featureName) {
return __featured.defaults[featureName];
};
__featured.defaults = {};
for (key in rules) {
value = rules[key];
__featured.defaults[key] = featured.checkFeature(key, session);
}
return 'var ' + functionName + ' = function(featureName){return ' + functionName + '.defaults[featureName] || false;}' + '; ' + functionName + '.defaults = ' + JSON.stringify(__featured.defaults);
};
}).call(this);
}
if (typeof rule === 'boolean') {
return rule;
}
if (typeof rule === 'function') {
return rule(session);
}
return false;
};
{
"name": "featured",
"description": "feature flags for node",
"version": "0.0.2",
"version": "0.0.3",
"homepage": "http://github.com/proksoup/featured",

@@ -18,6 +18,9 @@ "repository": {

},
"dependencies": {
},
"dependencies": {},
"devDependencies": {
"coffee-script": ">= 1.6.3"
},
"scripts": {
"prepublish": "./node_modules/coffee-script/bin/coffee -c -b -o lib src/*.coffee"
},
"engines": {

@@ -24,0 +27,0 @@ "node": ">=0.4.0"

@@ -54,3 +54,3 @@ # Featured

'awesomeStuff': false,
'betterStuff': function()(session){
'betterStuff': function(session){

@@ -131,2 +131,2 @@ if(process.env.NODE_ENV=='production')

TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Sorry, the diff of this file is not supported yet

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