
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
slim-feature-toggle
Advanced tools
Slim Feature / Version Toggle for Javascript Based Applications
slim-feature-toggle is a JavaScript library for toggling content based on features and version management.
slim-feature-toggle fits for both client and server applications and is agnostic to frameworks
The following example will guide you through it
// Welcome to CuteCorp.
// These are the cute Features and Sub-Features we develop in our app
// We use the 'enabled' property to set each feature's availability
const appFeatures = {
PUPPIES: {
enabled: true,
POODLES: {
enabled: true
},
LABRADORS: {
enabled: false
}
},
KITTEN: { enabled: true },
BABIES: { enabled: true }
};
To set up the configuration needed,
import the featureToggle module at Application Start and set the app's features:
// inside App.js / index.js / server.js / main.js:
const { featureToggle } = require('slim-feature-toggle');
featureToggle.setAppFeatures(appFeatures);
After setting the configuration we are good to go.
Simply import the featureToggle module into your code and control the application flow using one of the following methods:
// =========================================
// isFeatureEnabled - a Simple Control Flow:
// =========================================
const { featureToggle } = require('slim-feature-toggle');
const { isFeatureEnabled } = featureToggle;
if (isFeatureEnabled('PUPPIES')) {
console.log(`TODO - Render the PuppyList component here ... `)
} else {
console.log(`TODO - Engage a free monthly puppy subscription offer here ...`);
}
// feature set arrays are also supported:
if (isFeatureEnabled(['KITTEN', 'BABIES'])) {
console.log(`Do stuff if both KITTEN and BABIES are enabled`);
}
// nested features traversal are also supported using . notation:
if (isFeatureEnabled('PUPPIES.POODLES')) {
console.log(`Run if both PUPPIES feature and POODLES sub-feature are enabled`);
}
// =============================================================================
// featureToggleRunCallback - Execute a callback only if the feature is enabled
// =============================================================================
const { featureToggle } = require('slim-feature-toggle');
const { featureToggleRunCallback } = featureToggle;
featureToggleRunCallback('KITTEN', () => {
// Execute some super cute kitty logic here ....
// NOTE - this callback will execute only if the KITTEN feature is enabled,
// otherwise it will be skipped.
});
// ======================================================================
// featureToggleRunPromise - Resolve a promise if the feature is enabled,
// Otherwise reject
// ======================================================================
const { featureToggle } = require('slim-feature-toggle');
const { featureToggleRunPromise } = featureToggle;
featureToggleRunPromise('BABIES')
.then(() => console.log('resolves only if BABIES feature is enabled'))
.catch(() => console.log('rejects if BABIES feature is disabled'));
FAQs
Slim Feature / Version Toggle for Javascript Based Applications
The npm package slim-feature-toggle receives a total of 1 weekly downloads. As such, slim-feature-toggle popularity was classified as not popular.
We found that slim-feature-toggle demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.