1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-28 00:06:53 +01:00
unleash.unleash/packages/unleash-demo-app/index.js
2020-02-20 08:30:35 +01:00

75 lines
2.2 KiB
JavaScript

'use strict';
const express = require('express');
const unleash = require('unleash-client');
const chalk = require('chalk');
const app = express();
const instance = unleash.initialize({
appName: 'demo-app',
url: 'http://localhost:4242/',
refreshIntervall: 4000,
metricsInterval: 10000,
strategies: [
new unleash.Strategy('extra', true),
],
});
instance.on('ready', () => {
console.log('connected to unleash');
setInterval(() => {
const result = unleash.isEnabled('add-feature-2', null, Boolean(Math.round(Math.random() * 2)));
console.log(chalk.yellow('add-feature-2'), chalk.blue(result.toString()));
}, 1000);
setInterval(() => {
const result = unleash.isEnabled('toggle-2', null, Boolean(Math.round(Math.random() * 2)));
console.log(chalk.green('toggle-2'), chalk.blue(result.toString()));
}, 1500);
setInterval(() => {
const result = unleash.isEnabled('toggle-3', null, Boolean(Math.round(Math.random() * 2)));
console.log(chalk.red('toggle-3'), chalk.blue(result.toString()));
}, 1500);
});
instance.on('error', (err) => {
console.error(err.message, err.stack);
});
instance.on('warn', console.warn);
function outputFeature (name, feature) {
if (feature.enabled === false) {
return;
}
return `<div>
<h3>${name}</h3>
<ul>${feature.strategies.map(strategy => `<li>${strategy.name}:<ul>${
Object
.keys(strategy.parameters)
.map((paramName) => `<li>${paramName}: ${strategy.parameters[paramName]}</li>`)
.join('')
}</ul></li>`)}</ul>
</div>`;
}
app.get('/', (req, res) => {
const { data } = instance.repository.storage;
res.send(`<!DOCTYPE html>
<link rel="stylesheet" href="//static.finncdn.no/bb/css/spaden/5.2.1/spaden.min.css">
<meta http-equiv="refresh" content="5000">
<title>Demo example unleash-client usage</title>
${
Object.keys(data)
.map((key) => outputFeature(key, data[key]))
.filter(Boolean)
.join('<hr />')
}
`);
});
app.listen(process.env.PORT || 1337);