Socket
Socket
Sign inDemoInstall

@sensorfactdev/draconarius

Package Overview
Dependencies
0
Maintainers
3
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.1.1 to 1.1.2

lib/.gitkeep

251

lib/index.js

@@ -1,10 +0,34 @@

const Pack = require('../package.json');
const isArrayOfStrings = require('./isArrayOfStrings');
const isObject = require('./isObject');
const isValidFlagValue = require('./isValidFlagValue');
"use strict";
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var Pack = require('../package.json');
var isArrayOfStrings = require('./isArrayOfStrings');
var isObject = require('./isObject');
var isValidFlagValue = require('./isValidFlagValue');
/**
* @class Draconarius
*/
class Draconarius {
var Draconarius =
/*#__PURE__*/
function () {
/**

@@ -15,12 +39,17 @@ * Creates an instance of Draconarius.

*/
constructor(flags = []) {
function Draconarius() {
var flags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
_classCallCheck(this, Draconarius);
if (isArrayOfStrings(flags)) {
this.flags = flags.reduce((acc, flag) => Object.assign(acc, { [flag]: true }), {});
this.flags = flags.reduce(function (acc, flag) {
return Object.assign(acc, _defineProperty({}, flag, true));
}, {});
} else if (isObject(flags)) {
this.flags = flags;
} else {
throw new TypeError(`Draconarius constructor expects flags to be an object or an array of strings, but received \`${JSON.stringify(flags)}\``);
throw new TypeError("Draconarius constructor expects flags to be an object or an array of strings, but received `".concat(JSON.stringify(flags), "`"));
}
}
/**

@@ -32,108 +61,140 @@ * version - Checks the version in package.json

*/
static version() {
return Pack.version;
}
/**
* _checkFlag - Checks if a flag is enabled
* @private
* @param {string} flag Flag which needs to be checked
* @param {array} args Optional arguments to function flags
* @returns {boolean}
* @memberof Draconarius
*/
_checkFlag(flag, args) {
const currentFlag = this.flags[flag];
if (typeof currentFlag === 'function') {
return currentFlag(...args);
_createClass(Draconarius, [{
key: "_checkFlag",
/**
* _checkFlag - Checks if a flag is enabled
* @private
* @param {string} flag Flag which needs to be checked
* @param {array} args Optional arguments to function flags
* @returns {boolean}
* @memberof Draconarius
*/
value: function _checkFlag(flag, args) {
var currentFlag = this.flags[flag];
if (typeof currentFlag === 'function') {
return currentFlag.apply(void 0, _toConsumableArray(args));
}
return currentFlag || false;
}
/**
* _checkMultipleFlags - Reduces multiple flag checks down to one boolean
* @private
* @param {array} flags Flags that need to check
* @param {array} args Optional arguments to function flags
* @returns {boolean} Reduced enabled status of all provided flags
* @memberof Draconarius
*/
return currentFlag || false;
}
}, {
key: "_checkMultipleFlags",
value: function _checkMultipleFlags(flags, args) {
var _this = this;
/**
* _checkMultipleFlags - Reduces multiple flag checks down to one boolean
* @private
* @param {array} flags Flags that need to check
* @param {array} args Optional arguments to function flags
* @returns {boolean} Reduced enabled status of all provided flags
* @memberof Draconarius
*/
_checkMultipleFlags(flags, args) {
return flags.reduce((acc, flag) => this._checkFlag(flag, args) || acc, false);
}
return flags.reduce(function (acc, flag) {
return _this._checkFlag(flag, args) || acc;
}, false);
}
/**
*
* _setFlag
* @private
* @param {string} flag
* @param {function|boolean} value
* @memberof Draconarius
*/
/**
*
* _setFlag
* @private
* @param {string} flag
* @param {function|boolean} value
* @memberof Draconarius
*/
_setFlag(flag, value) {
if (!flag || typeof flag !== 'string') {
throw new TypeError(`_setFlag expects \`flag\` to be a string but received \`${JSON.stringify(flag)}\``);
}, {
key: "_setFlag",
value: function _setFlag(flag, value) {
if (!flag || typeof flag !== 'string') {
throw new TypeError("_setFlag expects `flag` to be a string but received `".concat(JSON.stringify(flag), "`"));
}
if (!isValidFlagValue(value)) {
throw new TypeError("_setFlag expects `value` to be a boolean or function but received `".concat(JSON.stringify(value), "`"));
}
this.flags[flag] = value;
}
/**
* _setFlags - Update flags of an instance
* @private
* @param {object} flags
* @memberof Draconarius
*/
if (!isValidFlagValue(value)) {
throw new TypeError(`_setFlag expects \`value\` to be a boolean or function but received \`${JSON.stringify(value)}\``);
}, {
key: "_setFlags",
value: function _setFlags(newFlags) {
var _this2 = this;
Object.keys(newFlags).forEach(function (flag) {
return _this2._setFlag(flag, newFlags[flag]);
});
}
/**
* isEnabled - To check if a flag is raised(enabled)
* @param {string|array} flag The flag or flags you want to check
* @param {array} args optional arguments to pass to a flag function
* @returns {boolean} A boolean indicating if flag is enabled
* @memberof Draconarius
*/
this.flags[flag] = value;
}
}, {
key: "isEnabled",
value: function isEnabled(flag) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
/**
* _setFlags - Update flags of an instance
* @private
* @param {object} flags
* @memberof Draconarius
*/
_setFlags(newFlags) {
Object.keys(newFlags).forEach(flag => this._setFlag(flag, newFlags[flag]));
}
if (Array.isArray(flag)) {
return this._checkMultipleFlags(flag, args);
}
/**
* isEnabled - To check if a flag is raised(enabled)
* @param {string|array} flag The flag or flags you want to check
* @param {array} args optional arguments to pass to a flag function
* @returns {boolean} A boolean indicating if flag is enabled
* @memberof Draconarius
*/
isEnabled(flag, ...args) {
if (Array.isArray(flag)) {
return this._checkMultipleFlags(flag, args);
return this._checkFlag(flag, args);
}
/**
* updateFlag - Update flag(s)
* @param {string|array} flag The flag or flags you want to check
* @param {function|boolean} value
* @memberof Draconarius
*/
return this._checkFlag(flag, args);
}
}, {
key: "updateFlag",
value: function updateFlag(flag, value) {
if (isObject(flag)) {
return this._setFlags(flag);
}
/**
* updateFlag - Update flag(s)
* @param {string|array} flag The flag or flags you want to check
* @param {function|boolean} value
* @memberof Draconarius
*/
updateFlag(flag, value) {
if (isObject(flag)) {
return this._setFlags(flag);
return this._setFlag(flag, value);
}
/**
* getAllFlags - Get all the flags currently set
* @returns {object} All flags
* @memberof Draconarius
*/
return this._setFlag(flag, value);
}
}, {
key: "getAllFlags",
value: function getAllFlags() {
return this.flags;
}
}], [{
key: "version",
value: function version() {
return Pack.version;
}
}]);
/**
* getAllFlags - Get all the flags currently set
* @returns {object} All flags
* @memberof Draconarius
*/
getAllFlags() {
return this.flags;
}
}
return Draconarius;
}();
module.exports = {
Draconarius,
Draconarius: Draconarius
};
{
"name": "@sensorfactdev/draconarius",
"version": "1.1.1",
"version": "1.1.2",
"description": "Manage (feature)flags like a Roman soldier\"",

@@ -12,5 +12,6 @@ "main": "./lib/index.js",

"test": "jest --coverage",
"docs": "jsdoc2md ./lib/index.js > API.md",
"docs": "jsdoc2md ./src/index.js > API.md",
"prepublish": "yarn test; yarn docs;",
"test-travis": "yarn test && cat ./coverage/lcov.info | coveralls"
"test-travis": "yarn test && cat ./coverage/lcov.info | coveralls",
"build": "babel ./src/index.js --out-file ./lib/index.js --presets @babel/preset-env"
},

@@ -31,2 +32,5 @@ "jest": {

"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"coveralls": "^3.0.1",

@@ -33,0 +37,0 @@ "eslint": "^4.19.1",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc