pax_global_header00006660000000000000000000000064133654414610014521gustar00rootroot0000000000000052 comment=47988bfa4dcdc5e63d4d05c9754c0a9c28de3c52 enabled-2.0.0/000077500000000000000000000000001336544146100131125ustar00rootroot00000000000000enabled-2.0.0/.gitignore000066400000000000000000000000501336544146100150750ustar00rootroot00000000000000node_modules coverage package-lock.json enabled-2.0.0/.travis.yml000066400000000000000000000002471336544146100152260ustar00rootroot00000000000000language: node_js node_js: - "10" - "9" - "8" after_script: - "npm install coveralls@2.11.x && cat coverage/lcov.info | coveralls" matrix: fast_finish: true enabled-2.0.0/LICENSE000066400000000000000000000021371336544146100141220ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2015 Arnout Kazemier, Martijn Swaagman, the Contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. enabled-2.0.0/README.md000066400000000000000000000033631336544146100143760ustar00rootroot00000000000000# enabled [![Version npm][version]](http://browsenpm.org/package/enabled)[![Build Status][build]](https://travis-ci.org/3rd-Eden/enabled)[![Dependencies][david]](https://david-dm.org/3rd-Eden/enabled)[![Coverage Status][cover]](https://coveralls.io/r/3rd-Eden/enabled?branch=master) [version]: http://img.shields.io/npm/v/enabled.svg?style=flat-square [build]: http://img.shields.io/travis/3rd-Eden/enabled/master.svg?style=flat-square [david]: https://img.shields.io/david/3rd-Eden/enabled.svg?style=flat-square [cover]: http://img.shields.io/coveralls/3rd-Eden/enabled/master.svg?style=flat-square Enabled is a small utility that can check if certain namespace are enabled by environment variables which are automatically transformed to regular expressions for matching. ## Installation The module is release in the public npm registry and can be used in browsers and servers as it uses plain ol ES3 to make the magic work. ``` npm install --save enabled ``` ## Usage First of all make sure you've required the module using: ```js 'use strict'; var enabled = require('enabled'); ``` The returned `enabled` function accepts 2 arguments. 1. `name` **string**, The namespace that should match. 2. `pattern` **string**, The pattern that the name should satisfy It will return a boolean indication of a match. #### Examples ```js var flag = 'foo'; enabled('foo', flag); // true; enabled('bar', flag); // false; // // Use * for wild cards. // var wildcard = 'foob*'; enabled('foobar', wildcard); // true; enabled('barfoo', wildcard); // false; // // Use - to ignore. // var ignore = 'foobar,-shizzle,nizzle'; enabled('foobar', ignore); // true; enabled('shizzle-my-nizzle', ignore); // false; enabled('nizzle', ignore); // true; ``` ## License [MIT](./LICENSE) enabled-2.0.0/index.js000066400000000000000000000014021336544146100145540ustar00rootroot00000000000000'use strict'; /** * Checks if a given namespace is allowed by the given variable. * * @param {String} name namespace that should be included. * @param {String} variable Value that needs to be tested. * @returns {Boolean} Indication if namespace is enabled. * @public */ module.exports = function enabled(name, variable) { if (!variable) return false; var variables = variable.split(/[\s,]+/) , i = 0; for (; i < variables.length; i++) { variable = variables[i].replace('*', '.*?'); if ('-' === variable.charAt(0)) { if ((new RegExp('^'+ variable.substr(1) +'$')).test(name)) { return false; } continue; } if ((new RegExp('^'+ variable +'$')).test(name)) { return true; } } return false; }; enabled-2.0.0/package.json000066400000000000000000000014231336544146100154000ustar00rootroot00000000000000{ "name": "enabled", "version": "2.0.0", "description": "Check if a certain debug flag is enabled.", "main": "index.js", "scripts": { "100%": "istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100", "test": "istanbul cover node_modules/.bin/_mocha --report lcovonly -- test.js", "watch": "mocha --watch test.js" }, "repository": { "type": "git", "url": "git://github.com/3rd-Eden/enabled.git" }, "keywords": [ "enabled", "debug", "diagnostics", "flag", "env", "variable", "localstorage" ], "author": "Arnout Kazemier", "license": "MIT", "dependencies": {}, "devDependencies": { "assume": "2.1.x", "istanbul": "^0.4.5", "mocha": "5.2.x", "pre-commit": "1.2.x" } } enabled-2.0.0/test.js000066400000000000000000000023671336544146100144370ustar00rootroot00000000000000describe('enabled', function () { 'use strict'; var assume = require('assume') , enabled = require('./'); it('supports wildcards', function () { var variable = 'b*'; assume(enabled('bigpipe', variable)).to.be.true(); assume(enabled('bro-fist', variable)).to.be.true(); assume(enabled('ro-fist', variable)).to.be.false(); }); it('is disabled by default', function () { assume(enabled('bigpipe', '')).to.be.false(); assume(enabled('bigpipe', 'bigpipe')).to.be.true(); }); it('can ignore loggers using a -', function () { var variable = 'bigpipe,-primus,sack,-other'; assume(enabled('bigpipe', variable)).to.be.true(); assume(enabled('sack', variable)).to.be.true(); assume(enabled('primus', variable)).to.be.false(); assume(enabled('other', variable)).to.be.false(); assume(enabled('unknown', variable)).to.be.false(); }); it('supports multiple ranges', function () { var variable = 'bigpipe*,primus*'; assume(enabled('bigpipe:', variable)).to.be.true(); assume(enabled('bigpipes', variable)).to.be.true(); assume(enabled('primus:', variable)).to.be.true(); assume(enabled('primush', variable)).to.be.true(); assume(enabled('unknown', variable)).to.be.false(); }); });