diff --git a/packages/unleash-api/app.js b/packages/unleash-api/app.js
index 3a122db441..f8733969d5 100644
--- a/packages/unleash-api/app.js
+++ b/packages/unleash-api/app.js
@@ -1,18 +1,19 @@
-var express = require('express');
-var favicon = require('serve-favicon');
-var bodyParser = require('body-parser');
-var cookieParser = require('cookie-parser');
-var validator = require('express-validator');
-var log4js = require('log4js');
-var logger = require('./lib/logger');
-var routes = require('./lib/routes');
-var path = require('path');
+'use strict';
+const express = require('express');
+const favicon = require('serve-favicon');
+const bodyParser = require('body-parser');
+const cookieParser = require('cookie-parser');
+const validator = require('express-validator');
+const log4js = require('log4js');
+const logger = require('./lib/logger');
+const routes = require('./lib/routes');
+const path = require('path');
module.exports = function(config) {
- var app = express();
- var router = express.Router();
- var baseUriPath = config.baseUriPath || '';
- var publicFolder = config.publicFolder;
+ const app = express();
+ const router = express.Router();
+ const baseUriPath = config.baseUriPath || '';
+ const publicFolder = config.publicFolder;
app.set('trust proxy');
app.set('port', config.port);
diff --git a/packages/unleash-api/lib/db/dbPool.js b/packages/unleash-api/lib/db/dbPool.js
index 33a863e674..dd376dfd66 100644
--- a/packages/unleash-api/lib/db/dbPool.js
+++ b/packages/unleash-api/lib/db/dbPool.js
@@ -1,4 +1,5 @@
-var knex = require('knex');
+'use strict';
+const knex = require('knex');
module.exports = function(databaseConnection) {
return knex({
diff --git a/packages/unleash-api/lib/db/event.js b/packages/unleash-api/lib/db/event.js
index 8d4d1f24f5..147f9c25c7 100644
--- a/packages/unleash-api/lib/db/event.js
+++ b/packages/unleash-api/lib/db/event.js
@@ -1,4 +1,5 @@
-var EVENT_COLUMNS = ['id', 'type', 'created_by', 'created_at', 'data'];
+'use strict';
+const EVENT_COLUMNS = ['id', 'type', 'created_by', 'created_at', 'data'];
module.exports = function(db) {
function storeEvent(event) {
@@ -38,8 +39,8 @@ module.exports = function(db) {
return {
store: storeEvent,
- getEvents: getEvents,
- getEventsFilterByName: getEventsFilterByName
+ getEvents,
+ getEventsFilterByName
};
};
diff --git a/packages/unleash-api/lib/db/feature.js b/packages/unleash-api/lib/db/feature.js
index fe54a553c9..4df93d3f9b 100644
--- a/packages/unleash-api/lib/db/feature.js
+++ b/packages/unleash-api/lib/db/feature.js
@@ -1,24 +1,17 @@
-var eventType = require('../eventType');
-var logger = require('../logger');
-var NotFoundError = require('../error/NotFoundError');
-var FEATURE_COLUMNS = ['name', 'description', 'enabled', 'strategy_name', 'parameters'];
+'use strict';
+const eventType = require('../eventType');
+const logger = require('../logger');
+const NotFoundError = require('../error/NotFoundError');
+const FEATURE_COLUMNS = ['name', 'description', 'enabled', 'strategy_name', 'parameters'];
module.exports = function(db, eventStore) {
- eventStore.on(eventType.featureCreated, function (event) {
- return createFeature(event.data);
- });
+ eventStore.on(eventType.featureCreated, event => createFeature(event.data));
- eventStore.on(eventType.featureUpdated, function (event) {
- return updateFeature(event.data);
- });
+ eventStore.on(eventType.featureUpdated, event => updateFeature(event.data));
- eventStore.on(eventType.featureArchived, function (event) {
- return archiveFeature(event.data);
- });
+ eventStore.on(eventType.featureArchived, event => archiveFeature(event.data));
- eventStore.on(eventType.featureRevived, function (event) {
- return reviveFeature(event.data);
- });
+ eventStore.on(eventType.featureRevived, event => reviveFeature(event.data));
function getFeatures() {
return db
@@ -33,7 +26,7 @@ module.exports = function(db, eventStore) {
return db
.first(FEATURE_COLUMNS)
.from('features')
- .where({ name: name })
+ .where({ name })
.then(rowToFeature);
}
@@ -75,7 +68,7 @@ module.exports = function(db, eventStore) {
function createFeature(data) {
return db('features')
.insert(eventDataToRow(data))
- .catch(function (err) {
+ .catch(err => {
logger.error('Could not insert feature, error was: ', err);
});
}
@@ -84,7 +77,7 @@ module.exports = function(db, eventStore) {
return db('features')
.where({ name: data.name })
.update(eventDataToRow(data))
- .catch(function (err) {
+ .catch(err => {
logger.error('Could not update feature, error was: ', err);
});
}
@@ -93,7 +86,7 @@ module.exports = function(db, eventStore) {
return db('features')
.where({ name: data.name })
.update({ archived: 1 })
- .catch(function (err) {
+ .catch(err => {
logger.error('Could not archive feature, error was: ', err);
});
}
@@ -102,16 +95,16 @@ module.exports = function(db, eventStore) {
return db('features')
.where({ name: data.name })
.update({ archived: 0, enabled: 0 })
- .catch(function (err) {
+ .catch(err => {
logger.error('Could not archive feature, error was: ', err);
});
}
return {
- getFeatures: getFeatures,
- getFeature: getFeature,
- getArchivedFeatures: getArchivedFeatures,
+ getFeatures,
+ getFeature,
+ getArchivedFeatures,
_createFeature: createFeature, // visible for testing
_updateFeature: updateFeature // visible for testing
};
diff --git a/packages/unleash-api/lib/db/strategy.js b/packages/unleash-api/lib/db/strategy.js
index 9a19a9c503..7aeebf7cd7 100644
--- a/packages/unleash-api/lib/db/strategy.js
+++ b/packages/unleash-api/lib/db/strategy.js
@@ -1,18 +1,17 @@
-var eventType = require('../eventType');
-var logger = require('../logger');
-var NotFoundError = require('../error/NotFoundError');
-var STRATEGY_COLUMNS = ['name', 'description', 'parameters_template'];
+'use strict';
+const eventType = require('../eventType');
+const logger = require('../logger');
+const NotFoundError = require('../error/NotFoundError');
+const STRATEGY_COLUMNS = ['name', 'description', 'parameters_template'];
module.exports = function(db, eventStore) {
- eventStore.on(eventType.strategyCreated, function (event) {
- return createStrategy(event.data);
- });
+ eventStore.on(eventType.strategyCreated, event => createStrategy(event.data));
- eventStore.on(eventType.strategyDeleted, function (event) {
+ eventStore.on(eventType.strategyDeleted, event => {
db('strategies')
.where('name', event.data.name)
.del()
- .catch(function (err) {
+ .catch(err => {
logger.error('Could not delete strategy, error was: ', err);
});
});
@@ -29,7 +28,7 @@ module.exports = function(db, eventStore) {
return db
.first(STRATEGY_COLUMNS)
.from('strategies')
- .where({ name: name })
+ .where({ name })
.then(rowToStrategy);
}
@@ -56,14 +55,14 @@ module.exports = function(db, eventStore) {
function createStrategy(data) {
db('strategies')
.insert(eventDataToRow(data))
- .catch(function (err) {
+ .catch(err => {
logger.error('Could not insert strategy, error was: ', err);
});
}
return {
- getStrategies: getStrategies,
- getStrategy: getStrategy,
+ getStrategies,
+ getStrategy,
_createStrategy: createStrategy // visible for testing
};
};
diff --git a/packages/unleash-api/lib/error/NameExistsError.js b/packages/unleash-api/lib/error/NameExistsError.js
index 6529783487..106e3eb44f 100644
--- a/packages/unleash-api/lib/error/NameExistsError.js
+++ b/packages/unleash-api/lib/error/NameExistsError.js
@@ -1,4 +1,5 @@
-var util = require('util');
+'use strict';
+const util = require('util');
function NameExistsError(message) {
Error.call(this);
diff --git a/packages/unleash-api/lib/error/NotFoundError.js b/packages/unleash-api/lib/error/NotFoundError.js
index 066b595818..9a93e40ea8 100644
--- a/packages/unleash-api/lib/error/NotFoundError.js
+++ b/packages/unleash-api/lib/error/NotFoundError.js
@@ -1,4 +1,5 @@
-var util = require('util');
+'use strict';
+const util = require('util');
function NotFoundError(message) {
Error.call(this);
diff --git a/packages/unleash-api/lib/error/ValidationError.js b/packages/unleash-api/lib/error/ValidationError.js
index 7e2e41f8cc..ff4df57e56 100644
--- a/packages/unleash-api/lib/error/ValidationError.js
+++ b/packages/unleash-api/lib/error/ValidationError.js
@@ -1,4 +1,5 @@
-var util = require('util');
+'use strict';
+const util = require('util');
function ValidationError(message) {
Error.call(this);
diff --git a/packages/unleash-api/lib/error/validateRequest.js b/packages/unleash-api/lib/error/validateRequest.js
index 4fd213af01..990fd7f659 100644
--- a/packages/unleash-api/lib/error/validateRequest.js
+++ b/packages/unleash-api/lib/error/validateRequest.js
@@ -1,8 +1,9 @@
-var Promise = require("bluebird");
-var ValidationError = require('./ValidationError');
+'use strict';
+const Promise = require("bluebird");
+const ValidationError = require('./ValidationError');
function validateRequest(req) {
- return new Promise(function(resolve, reject) {
+ return new Promise((resolve, reject) => {
if (req.validationErrors()) {
reject(new ValidationError("Invalid syntax"));
} else {
diff --git a/packages/unleash-api/lib/eventDiffer.js b/packages/unleash-api/lib/eventDiffer.js
index f23427f461..6364399151 100644
--- a/packages/unleash-api/lib/eventDiffer.js
+++ b/packages/unleash-api/lib/eventDiffer.js
@@ -1,12 +1,13 @@
-var eventType = require('./eventType');
-var diff = require('deep-diff').diff;
+'use strict';
+const eventType = require('./eventType');
+const diff = require('deep-diff').diff;
-var strategyTypes = [
+const strategyTypes = [
eventType.strategyCreated,
eventType.strategyDeleted
];
-var featureTypes = [
+const featureTypes = [
eventType.featureCreated,
eventType.featureUpdated,
eventType.featureArchived,
@@ -19,15 +20,15 @@ function baseTypeFor(event) {
} else if (strategyTypes.indexOf(event.type) !== -1) {
return 'strategies';
} else {
- throw new Error('unknown event type: ' + JSON.stringify(event));
+ throw new Error(`unknown event type: ${JSON.stringify(event)}`);
}
}
function groupByBaseTypeAndName(events) {
- var groups = {};
+ const groups = {};
- events.forEach(function (event) {
- var baseType = baseTypeFor(event);
+ events.forEach(event => {
+ const baseType = baseTypeFor(event);
groups[baseType] = groups[baseType] || {};
groups[baseType][event.data.name] = groups[baseType][event.data.name] || [];
@@ -39,14 +40,17 @@ function groupByBaseTypeAndName(events) {
}
function eachConsecutiveEvent(events, callback) {
- var groups = groupByBaseTypeAndName(events);
+ const groups = groupByBaseTypeAndName(events);
- Object.keys(groups).forEach(function (baseType) {
- var group = groups[baseType];
+ Object.keys(groups).forEach(baseType => {
+ const group = groups[baseType];
- Object.keys(group).forEach(function (name) {
- var events = group[name];
- var left, right, i, l;
+ Object.keys(group).forEach(name => {
+ const events = group[name];
+ let left;
+ let right;
+ let i;
+ let l;
for (i = 0, l = events.length; i < l; i++) {
left = events[i];
right = events[i + 1];
@@ -58,7 +62,7 @@ function eachConsecutiveEvent(events, callback) {
}
function addDiffs(events) {
- eachConsecutiveEvent(events, function (left, right) {
+ eachConsecutiveEvent(events, (left, right) => {
if (right) {
left.diffs = diff(right.data, left.data);
left.diffs = left.diffs || [];
@@ -70,5 +74,5 @@ function addDiffs(events) {
module.exports = {
- addDiffs: addDiffs
+ addDiffs
};
diff --git a/packages/unleash-api/lib/eventStore.js b/packages/unleash-api/lib/eventStore.js
index 1f39dbdf2c..588d31bee4 100644
--- a/packages/unleash-api/lib/eventStore.js
+++ b/packages/unleash-api/lib/eventStore.js
@@ -1,5 +1,6 @@
-var util = require('util');
-var EventEmitter = require('events').EventEmitter;
+'use strict';
+const util = require('util');
+const EventEmitter = require('events').EventEmitter;
function EventStore(eventDb) {
this.eventDb = eventDb;
@@ -8,8 +9,8 @@ function EventStore(eventDb) {
util.inherits(EventStore, EventEmitter);
EventStore.prototype.create = function (event) {
- var that = this;
- return this.eventDb.store(event).then(function() {
+ const that = this;
+ return this.eventDb.store(event).then(() => {
that.emit(event.type, event);
});
};
diff --git a/packages/unleash-api/lib/eventType.js b/packages/unleash-api/lib/eventType.js
index d6c57b71bf..1c2aee856e 100644
--- a/packages/unleash-api/lib/eventType.js
+++ b/packages/unleash-api/lib/eventType.js
@@ -1,3 +1,4 @@
+'use strict';
module.exports = {
featureCreated: 'feature-created',
featureUpdated: 'feature-updated',
diff --git a/packages/unleash-api/lib/extractUser.js b/packages/unleash-api/lib/extractUser.js
index 7411633381..3471ac6093 100644
--- a/packages/unleash-api/lib/extractUser.js
+++ b/packages/unleash-api/lib/extractUser.js
@@ -1,3 +1,4 @@
+'use strict';
function extractUsername(req) {
return req.cookies.username || "unknown";
}
diff --git a/packages/unleash-api/lib/logger.js b/packages/unleash-api/lib/logger.js
index bbdc7f7531..734699fd20 100644
--- a/packages/unleash-api/lib/logger.js
+++ b/packages/unleash-api/lib/logger.js
@@ -1,9 +1,10 @@
-var log4js = require('log4js');
+'use strict';
+const log4js = require('log4js');
log4js.clearAppenders();
log4js.addAppender(log4js.appenders.console());
-var logger = log4js.getLogger('unleash');
+const logger = log4js.getLogger('unleash');
// TODO: make level configurable
if (process.env.NODE_ENV === 'production') {
diff --git a/packages/unleash-api/lib/routes/event.js b/packages/unleash-api/lib/routes/event.js
index b69c7f7f09..fe9ec09bb8 100644
--- a/packages/unleash-api/lib/routes/event.js
+++ b/packages/unleash-api/lib/routes/event.js
@@ -1,17 +1,18 @@
-var eventDiffer = require('../eventDiffer');
+'use strict';
+const eventDiffer = require('../eventDiffer');
module.exports = function (app, config) {
- var eventDb = config.eventDb;
+ const eventDb = config.eventDb;
- app.get('/events', function (req, res) {
- eventDb.getEvents().then(function (events) {
+ app.get('/events', (req, res) => {
+ eventDb.getEvents().then(events => {
eventDiffer.addDiffs(events);
- res.json({ events: events });
+ res.json({ events });
});
});
- app.get('/events/:name', function (req, res) {
- eventDb.getEventsFilterByName(req.params.name).then(function (events) {
+ app.get('/events/:name', (req, res) => {
+ eventDb.getEventsFilterByName(req.params.name).then(events => {
if (events) {
eventDiffer.addDiffs(events);
res.json(events);
diff --git a/packages/unleash-api/lib/routes/feature-archive.js b/packages/unleash-api/lib/routes/feature-archive.js
index 29fc82448a..873d03df15 100644
--- a/packages/unleash-api/lib/routes/feature-archive.js
+++ b/packages/unleash-api/lib/routes/feature-archive.js
@@ -1,34 +1,33 @@
-var logger = require('../logger');
-var eventType = require('../eventType');
-var ValidationError = require('../error/ValidationError');
-var validateRequest = require('../error/validateRequest');
+'use strict';
+const logger = require('../logger');
+const eventType = require('../eventType');
+const ValidationError = require('../error/ValidationError');
+const validateRequest = require('../error/validateRequest');
module.exports = function (app, config) {
- var featureDb = config.featureDb;
- var eventStore = config.eventStore;
+ const featureDb = config.featureDb;
+ const eventStore = config.eventStore;
- app.get('/archive/features', function (req, res) {
- featureDb.getArchivedFeatures().then(function (archivedFeatures) {
- res.json({ 'features': archivedFeatures });
+ app.get('/archive/features', (req, res) => {
+ featureDb.getArchivedFeatures().then(archivedFeatures => {
+ res.json({ features: archivedFeatures });
});
});
- app.post('/archive/revive', function (req, res) {
+ app.post('/archive/revive', (req, res) => {
req.checkBody('name', 'Name is required').notEmpty();
validateRequest(req)
- .then(function() {
- return eventStore.create({
- type: eventType.featureRevived,
- createdBy: req.connection.remoteAddress,
- data: req.body
- });
- }).then(function() {
+ .then(() => eventStore.create({
+ type: eventType.featureRevived,
+ createdBy: req.connection.remoteAddress,
+ data: req.body
+ })).then(() => {
res.status(200).end();
- }).catch(ValidationError, function() {
+ }).catch(ValidationError, () => {
res.status(400).json(req.validationErrors());
})
- .catch(function(err) {
+ .catch(err => {
logger.error("Could not revive feature toggle", err);
res.status(500).end();
});
diff --git a/packages/unleash-api/lib/routes/feature.js b/packages/unleash-api/lib/routes/feature.js
index 1f3c726eaf..acd028f5dd 100644
--- a/packages/unleash-api/lib/routes/feature.js
+++ b/packages/unleash-api/lib/routes/feature.js
@@ -1,121 +1,116 @@
-var Promise = require("bluebird");
-var logger = require('../logger');
-var eventType = require('../eventType');
-var NameExistsError = require('../error/NameExistsError');
-var NotFoundError = require('../error/NotFoundError');
-var ValidationError = require('../error/ValidationError');
-var validateRequest = require('../error/validateRequest');
-var extractUser = require('../extractUser');
+'use strict';
+const Promise = require("bluebird");
+const logger = require('../logger');
+const eventType = require('../eventType');
+const NameExistsError = require('../error/NameExistsError');
+const NotFoundError = require('../error/NotFoundError');
+const ValidationError = require('../error/ValidationError');
+const validateRequest = require('../error/validateRequest');
+const extractUser = require('../extractUser');
module.exports = function (app, config) {
- var featureDb = config.featureDb;
- var eventStore = config.eventStore;
+ const featureDb = config.featureDb;
+ const eventStore = config.eventStore;
- app.get('/features', function (req, res) {
- featureDb.getFeatures().then(function (features) {
- res.json({ features: features });
+ app.get('/features', (req, res) => {
+ featureDb.getFeatures().then(features => {
+ res.json({ features });
});
});
- app.get('/features/:featureName', function (req, res) {
+ app.get('/features/:featureName', (req, res) => {
featureDb.getFeature(req.params.featureName)
- .then(function (feature) {
+ .then(feature => {
res.json(feature);
})
- .catch(function () {
+ .catch(() => {
res.status(404).json({ error: 'Could not find feature' });
});
});
- app.post('/features', function (req, res) {
+ app.post('/features', (req, res) => {
req.checkBody('name', 'Name is required').notEmpty();
req.checkBody('name', 'Name must match format ^[a-zA-Z\\.\\-]+$').matches(/^[a-zA-Z\\.\\-]+$/i);
validateRequest(req)
.then(validateUniqueName)
- .then(function() {
- return eventStore.create({
- type: eventType.featureCreated,
- createdBy: extractUser(req),
- data: req.body
- });
- })
- .then(function () {
+ .then(() => eventStore.create({
+ type: eventType.featureCreated,
+ createdBy: extractUser(req),
+ data: req.body
+ }))
+ .then(() => {
res.status(201).end();
})
- .catch(NameExistsError, function() {
+ .catch(NameExistsError, () => {
res.status(403).json([{
- msg: "A feature named '" + req.body.name + "' already exists. It could be archived."
+ msg: `A feature named '${req.body.name}' already exists. It could be archived.`
}]).end();
})
- .catch(ValidationError, function() {
+ .catch(ValidationError, () => {
res.status(400).json(req.validationErrors());
})
- .catch(function(err) {
+ .catch(err => {
logger.error("Could not create feature toggle", err);
res.status(500).end();
});
});
- app.put('/features/:featureName', function (req, res) {
- var featureName = req.params.featureName;
- var userName = extractUser(req);
- var updatedFeature = req.body;
+ app.put('/features/:featureName', (req, res) => {
+ const featureName = req.params.featureName;
+ const userName = extractUser(req);
+ const updatedFeature = req.body;
updatedFeature.name = featureName;
featureDb.getFeature(featureName)
- .then(function () {
- return eventStore.create({
- type: eventType.featureUpdated,
- createdBy: userName,
- data: updatedFeature
- });
- })
- .then(function () {
+ .then(() => eventStore.create({
+ type: eventType.featureUpdated,
+ createdBy: userName,
+ data: updatedFeature
+ }))
+ .then(() => {
res.status(200).end();
})
- .catch(NotFoundError, function () {
+ .catch(NotFoundError, () => {
res.status(404).end();
})
- .catch(function (err) {
- logger.error("Could not update feature toggle="+featureName, err);
+ .catch(err => {
+ logger.error(`Could not update feature toggle=${featureName}`, err);
res.status(500).end();
});
});
- app.delete('/features/:featureName', function (req, res) {
- var featureName = req.params.featureName;
- var userName = extractUser(req);
+ app.delete('/features/:featureName', (req, res) => {
+ const featureName = req.params.featureName;
+ const userName = extractUser(req);
featureDb.getFeature(featureName)
- .then(function () {
- return eventStore.create({
- type: eventType.featureArchived,
- createdBy: userName,
- data: {
- name: featureName
- }
- });
- })
- .then(function () {
+ .then(() => eventStore.create({
+ type: eventType.featureArchived,
+ createdBy: userName,
+ data: {
+ name: featureName
+ }
+ }))
+ .then(() => {
res.status(200).end();
})
- .catch(NotFoundError, function () {
+ .catch(NotFoundError, () => {
res.status(404).end();
})
- .catch(function (err) {
- logger.error("Could not archive feature="+featureName, err);
+ .catch(err => {
+ logger.error(`Could not archive feature=${featureName}`, err);
res.status(500).end();
});
});
function validateUniqueName(req) {
- return new Promise(function(resolve, reject) {
+ return new Promise((resolve, reject) => {
featureDb.getFeature(req.body.name)
- .then(function() {
+ .then(() => {
reject(new NameExistsError("Feature name already exist"));
- }, function() {
+ }, () => {
resolve(req);
});
});
diff --git a/packages/unleash-api/lib/routes/health-check.js b/packages/unleash-api/lib/routes/health-check.js
index 1343e81686..7cb2ab6fb8 100644
--- a/packages/unleash-api/lib/routes/health-check.js
+++ b/packages/unleash-api/lib/routes/health-check.js
@@ -1,13 +1,14 @@
-var logger = require('../logger');
+'use strict';
+const logger = require('../logger');
module.exports = function (app, config) {
- app.get('/health', function (req, res) {
+ app.get('/health', (req, res) => {
config.db.select(1)
.from('features')
- .then(function() {
+ .then(() => {
res.json({ health: 'GOOD' });
})
- .catch(function(err) {
+ .catch(err => {
logger.error('Could not select from features, error was: ', err);
res.status(500).json({ health: 'BAD' });
});
diff --git a/packages/unleash-api/lib/routes/index.js b/packages/unleash-api/lib/routes/index.js
index 6e3515fa64..4cd145ada6 100644
--- a/packages/unleash-api/lib/routes/index.js
+++ b/packages/unleash-api/lib/routes/index.js
@@ -2,6 +2,8 @@
* TODO: we should also inject config and
* services to the routes to ease testing.
**/
+'use strict';
+
exports.create = function (app, config) {
require('./event')(app, config);
require('./feature')(app, config);
diff --git a/packages/unleash-api/lib/routes/strategy.js b/packages/unleash-api/lib/routes/strategy.js
index 4176d215c4..4ea217ddcc 100644
--- a/packages/unleash-api/lib/routes/strategy.js
+++ b/packages/unleash-api/lib/routes/strategy.js
@@ -1,93 +1,90 @@
-var Promise = require("bluebird");
-var eventType = require('../eventType');
-var logger = require('../logger');
-var NameExistsError = require('../error/NameExistsError');
-var ValidationError = require('../error/ValidationError');
-var NotFoundError = require('../error/NotFoundError');
-var validateRequest = require('../error/validateRequest');
-var extractUser = require('../extractUser');
+'use strict';
+const Promise = require("bluebird");
+const eventType = require('../eventType');
+const logger = require('../logger');
+const NameExistsError = require('../error/NameExistsError');
+const ValidationError = require('../error/ValidationError');
+const NotFoundError = require('../error/NotFoundError');
+const validateRequest = require('../error/validateRequest');
+const extractUser = require('../extractUser');
module.exports = function (app, config) {
- var strategyDb = config.strategyDb;
- var eventStore = config.eventStore;
+ const strategyDb = config.strategyDb;
+ const eventStore = config.eventStore;
- app.get('/strategies', function (req, res) {
- strategyDb.getStrategies().then(function (strategies) {
- res.json({ strategies: strategies });
+ app.get('/strategies', (req, res) => {
+ strategyDb.getStrategies().then(strategies => {
+ res.json({ strategies });
});
});
- app.get('/strategies/:name', function (req, res) {
+ app.get('/strategies/:name', (req, res) => {
strategyDb.getStrategy(req.params.name)
- .then(function (strategy) {
+ .then(strategy => {
res.json(strategy);
})
- .catch(function () {
+ .catch(() => {
res.status(404).json({ error: 'Could not find strategy' });
});
});
- app.delete('/strategies/:name', function (req, res) {
- var strategyName = req.params.name;
+ app.delete('/strategies/:name', (req, res) => {
+ const strategyName = req.params.name;
strategyDb.getStrategy(strategyName)
- .then(function() {
- return eventStore.create({
- type: eventType.strategyDeleted,
- createdBy: extractUser(req),
- data: {
- name: strategyName
- }
- });
- })
- .then(function() {
+ .then(() => eventStore.create({
+ type: eventType.strategyDeleted,
+ createdBy: extractUser(req),
+ data: {
+ name: strategyName
+ }
+ }))
+ .then(() => {
res.status(200).end();
})
- .catch(NotFoundError, function() {
+ .catch(NotFoundError, () => {
res.status(404).end();
})
- .catch(function(err) {
- logger.error('Could not delete strategy='+strategyName, err);
+ .catch(err => {
+ logger.error(`Could not delete strategy=${strategyName}`, err);
res.status(500).end();
});
});
- app.post('/strategies', function (req, res) {
+ app.post('/strategies', (req, res) => {
req.checkBody('name', 'Name is required').notEmpty();
req.checkBody('name', 'Name must match format ^[a-zA-Z\\.\\-]+$').matches(/^[a-zA-Z\\.\\-]+$/i);
- var newStrategy = req.body;
+ const newStrategy = req.body;
validateRequest(req)
.then(validateStrategyName)
- .then(function() {
- return eventStore.create({
- type: eventType.strategyCreated,
- createdBy: extractUser(req),
- data: newStrategy
- });
- })
- .then(function () {
+ .then(() => eventStore.create({
+ type: eventType.strategyCreated,
+ createdBy: extractUser(req),
+ data: newStrategy
+ }))
+ .then(() => {
res.status(201).end();
})
- .catch(NameExistsError, function() {
- res.status(403).json([{ msg: "A strategy named '" + req.body.name + "' already exists." }]).end();
+ .catch(NameExistsError, () => {
+ res.status(403).json([{ msg: `A strategy named '${req.body.name}' already exists.` }]).end();
})
- .catch(ValidationError, function() {
+ .catch(ValidationError, () => {
res.status(400).json(req.validationErrors());
})
- .catch(function(err) {
+ .catch(err => {
logger.error("Could not create strategy", err);
res.status(500).end();
});
});
function validateStrategyName(req) {
- return new Promise(function(resolve, reject) {
+ return new Promise((resolve, reject) => {
strategyDb.getStrategy(req.body.name)
- .then(function() {
+ .then(() => {
reject(new NameExistsError("Feature name already exist"));
- }, function() {
+ }, () => {
resolve(req);
});
});
diff --git a/packages/unleash-api/migrations/20141020151056-initial-schema.js b/packages/unleash-api/migrations/20141020151056-initial-schema.js
index 0a41df16f3..60b580a909 100644
--- a/packages/unleash-api/migrations/20141020151056-initial-schema.js
+++ b/packages/unleash-api/migrations/20141020151056-initial-schema.js
@@ -1 +1,2 @@
+'use strict';
module.exports = require('../scripts/migration-runner').create('001-initial-schema');
diff --git a/packages/unleash-api/migrations/20141110144153-add-description-to-features.js b/packages/unleash-api/migrations/20141110144153-add-description-to-features.js
index 248e5aa474..7a303a4497 100644
--- a/packages/unleash-api/migrations/20141110144153-add-description-to-features.js
+++ b/packages/unleash-api/migrations/20141110144153-add-description-to-features.js
@@ -1 +1,2 @@
+'use strict';
module.exports = require('../scripts/migration-runner').create('002-add-description-to-features');
diff --git a/packages/unleash-api/migrations/20141117200435-add-parameters-template-to-strategies.js b/packages/unleash-api/migrations/20141117200435-add-parameters-template-to-strategies.js
index 0c6ef1b1a2..9bfb2e7d04 100644
--- a/packages/unleash-api/migrations/20141117200435-add-parameters-template-to-strategies.js
+++ b/packages/unleash-api/migrations/20141117200435-add-parameters-template-to-strategies.js
@@ -1,2 +1,3 @@
+'use strict';
module.exports = require('../scripts/migration-runner').create('003-add-parameters-template-to-strategies');
diff --git a/packages/unleash-api/migrations/20141117202209-insert-default-strategy.js b/packages/unleash-api/migrations/20141117202209-insert-default-strategy.js
index 1bc6251635..2e3f045dd2 100644
--- a/packages/unleash-api/migrations/20141117202209-insert-default-strategy.js
+++ b/packages/unleash-api/migrations/20141117202209-insert-default-strategy.js
@@ -1 +1,2 @@
+'use strict';
module.exports = require('../scripts/migration-runner').create('004-insert-default-strategy');
diff --git a/packages/unleash-api/migrations/20141118071458-default-strategy-event.js b/packages/unleash-api/migrations/20141118071458-default-strategy-event.js
index 488b3ac594..4bf9714f96 100644
--- a/packages/unleash-api/migrations/20141118071458-default-strategy-event.js
+++ b/packages/unleash-api/migrations/20141118071458-default-strategy-event.js
@@ -1 +1,2 @@
+'use strict';
module.exports = require('../scripts/migration-runner').create('004-insert-default-strategy-event');
diff --git a/packages/unleash-api/migrations/20141215210141-005-archived-flag-to-features.js b/packages/unleash-api/migrations/20141215210141-005-archived-flag-to-features.js
index 0bd29e3271..ec07154c5d 100644
--- a/packages/unleash-api/migrations/20141215210141-005-archived-flag-to-features.js
+++ b/packages/unleash-api/migrations/20141215210141-005-archived-flag-to-features.js
@@ -1 +1,2 @@
+'use strict';
module.exports = require('../scripts/migration-runner').create('005-archived-flag-to-features');
diff --git a/packages/unleash-api/migrations/20150210152531-006-rename-eventtype.js b/packages/unleash-api/migrations/20150210152531-006-rename-eventtype.js
index 0de099bdbd..08e537c529 100644
--- a/packages/unleash-api/migrations/20150210152531-006-rename-eventtype.js
+++ b/packages/unleash-api/migrations/20150210152531-006-rename-eventtype.js
@@ -1 +1,2 @@
+'use strict';
module.exports = require('../scripts/migration-runner').create('006-rename-eventtype');
diff --git a/packages/unleash-api/scripts/migration-runner.js b/packages/unleash-api/scripts/migration-runner.js
index 9822a09d24..d4594251ac 100644
--- a/packages/unleash-api/scripts/migration-runner.js
+++ b/packages/unleash-api/scripts/migration-runner.js
@@ -1,14 +1,15 @@
-var fs = require('fs');
-var util = require('util');
-var path = require('path');
+'use strict';
+const fs = require('fs');
+const util = require('util');
+const path = require('path');
-var runMigration = function(path, db, callback) {
+const runMigration = function(path, db, callback) {
db.runSql(fs.readFileSync(path, { encoding: 'utf8' }), callback);
};
module.exports = {
- create: function (name) {
- var format = path.resolve(__dirname, '../migrations/sql/%s.%s.sql');
+ create(name) {
+ const format = path.resolve(__dirname, '../migrations/sql/%s.%s.sql');
return {
up: runMigration.bind(null, util.format(format, name, 'up')),
diff --git a/packages/unleash-api/server-impl.js b/packages/unleash-api/server-impl.js
index 5a73d34b8e..35e4d2a0ff 100644
--- a/packages/unleash-api/server-impl.js
+++ b/packages/unleash-api/server-impl.js
@@ -1,46 +1,47 @@
-var logger = require('./lib/logger');
-var defaultDatabaseUri = process.env.DATABASE_URL;
+'use strict';
+const logger = require('./lib/logger');
+const defaultDatabaseUri = process.env.DATABASE_URL;
function start(options) {
options = options || {};
- var db = require('./lib/db/dbPool')(options.databaseUri || defaultDatabaseUri);
+ const db = require('./lib/db/dbPool')(options.databaseUri || defaultDatabaseUri);
// Database dependecies (statefull)
- var eventDb = require('./lib/db/event')(db);
- var EventStore = require('./lib/eventStore');
- var eventStore = new EventStore(eventDb);
- var featureDb = require('./lib/db/feature')(db, eventStore);
- var strategyDb = require('./lib/db/strategy')(db, eventStore);
+ const eventDb = require('./lib/db/event')(db);
+ const EventStore = require('./lib/eventStore');
+ const eventStore = new EventStore(eventDb);
+ const featureDb = require('./lib/db/feature')(db, eventStore);
+ const strategyDb = require('./lib/db/strategy')(db, eventStore);
- var config = {
+ const config = {
baseUriPath: process.env.BASE_URI_PATH || '',
port: process.env.HTTP_PORT || process.env.PORT || 4242,
- db: db,
- eventDb: eventDb,
- eventStore: eventStore,
- featureDb: featureDb,
- strategyDb: strategyDb,
+ db,
+ eventDb,
+ eventStore,
+ featureDb,
+ strategyDb,
publicFolder: options.publicFolder
};
- var app = require('./app')(config);
+ const app = require('./app')(config);
- var server = app.listen(app.get('port'), function() {
- logger.info('unleash started on ' + app.get('port'));
+ const server = app.listen(app.get('port'), () => {
+ logger.info(`unleash started on ${app.get('port')}`);
});
return {
- app: app,
- server: server,
- config: config
+ app,
+ server,
+ config
};
}
-process.on('uncaughtException', function(err) {
+process.on('uncaughtException', err => {
logger.error('Uncaught Exception:', err.message);
logger.error(err.stack);
});
module.exports = {
- start: start
+ start
};
diff --git a/packages/unleash-api/test/databaseConfig.js b/packages/unleash-api/test/databaseConfig.js
index 5f80b7f2c5..2f4ecc03e7 100644
--- a/packages/unleash-api/test/databaseConfig.js
+++ b/packages/unleash-api/test/databaseConfig.js
@@ -7,5 +7,5 @@ function getDatabaseUri() {
}
}
module.exports = {
- getDatabaseUri: getDatabaseUri
+ getDatabaseUri
};
diff --git a/packages/unleash-api/test/eventApiSpec.js b/packages/unleash-api/test/eventApiSpec.js
index ceebaa23d4..b3ef2f1db3 100644
--- a/packages/unleash-api/test/eventApiSpec.js
+++ b/packages/unleash-api/test/eventApiSpec.js
@@ -1,15 +1,15 @@
'use strict';
-var request = require('./specHelper').request;
+const request = require('./specHelper').request;
-describe('The event api', function () {
- it('returns events', function (done) {
+describe('The event api', () => {
+ it('returns events', done => {
request
.get('/events')
.expect('Content-Type', /json/)
.expect(200, done);
});
- it('returns events given a name', function (done) {
+ it('returns events given a name', done => {
request
.get('/events/myname')
.expect('Content-Type', /json/)
diff --git a/packages/unleash-api/test/eventDifferTest.js b/packages/unleash-api/test/eventDifferTest.js
index e85b62b8c9..e0bd5e9dc0 100644
--- a/packages/unleash-api/test/eventDifferTest.js
+++ b/packages/unleash-api/test/eventDifferTest.js
@@ -1,32 +1,32 @@
'use strict';
-var eventDiffer = require('../lib/eventDiffer');
-var eventType = require('../lib/eventType');
-var assert = require('assert');
+const eventDiffer = require('../lib/eventDiffer');
+const eventType = require('../lib/eventType');
+const assert = require('assert');
-describe('eventDiffer', function () {
- it('fails if events include an unknown event type', function () {
- var events = [
+describe('eventDiffer', () => {
+ it('fails if events include an unknown event type', () => {
+ const events = [
{ type: eventType.featureCreated, data: {} },
{ type: 'unknown-type', data: {} }
];
- assert.throws(function () {
+ assert.throws(() => {
eventDiffer.addDiffs(events);
});
});
- it('diffs a feature-update event', function () {
- var name = 'foo';
- var desc = 'bar';
+ it('diffs a feature-update event', () => {
+ const name = 'foo';
+ const desc = 'bar';
- var events = [
+ const events = [
{
type: eventType.featureUpdated,
- data: { name: name, description: desc, strategy: 'default', enabled: true, parameters: { value: 2 } }
+ data: { name, description: desc, strategy: 'default', enabled: true, parameters: { value: 2 } }
},
{
type: eventType.featureCreated,
- data: { name: name, description: desc, strategy: 'default', enabled: false, parameters: { value: 1 } }
+ data: { name, description: desc, strategy: 'default', enabled: false, parameters: { value: 1 } }
}
];
@@ -40,8 +40,8 @@ describe('eventDiffer', function () {
assert.strictEqual(events[1].diffs, null);
});
- it('diffs only against features with the same name', function () {
- var events = [
+ it('diffs only against features with the same name', () => {
+ const events = [
{
type: eventType.featureUpdated,
data: { name: 'bar', description: 'desc', strategy: 'default', enabled: true, parameters: {} }
@@ -68,8 +68,8 @@ describe('eventDiffer', function () {
assert.strictEqual(events[3].diffs, null);
});
- it('sets an empty array of diffs if nothing was changed', function () {
- var events = [
+ it('sets an empty array of diffs if nothing was changed', () => {
+ const events = [
{
type: eventType.featureUpdated,
data: { name: 'foo', description: 'desc', strategy: 'default', enabled: true, parameters: {} }
@@ -84,8 +84,8 @@ describe('eventDiffer', function () {
assert.deepEqual(events[0].diffs, []);
});
- it('sets diffs to null if there was nothing to diff against', function () {
- var events = [
+ it('sets diffs to null if there was nothing to diff against', () => {
+ const events = [
{
type: eventType.featureUpdated,
data: { name: 'foo', description: 'desc', strategy: 'default', enabled: true, parameters: {} }
diff --git a/packages/unleash-api/test/featureApiSpec.js b/packages/unleash-api/test/featureApiSpec.js
index 0ba1b70310..4dd03a0165 100644
--- a/packages/unleash-api/test/featureApiSpec.js
+++ b/packages/unleash-api/test/featureApiSpec.js
@@ -1,38 +1,38 @@
'use strict';
-var logger = require('../lib/logger');
-var assert = require('assert');
-var specHelper = require('./specHelper');
-var request = specHelper.request;
-var stringify = function (o) {
+const logger = require('../lib/logger');
+const assert = require('assert');
+const specHelper = require('./specHelper');
+const request = specHelper.request;
+const stringify = function (o) {
return JSON.stringify(o, null, ' ');
};
-describe('The features api', function () {
- beforeEach(function (done) {
+describe('The features api', () => {
+ beforeEach(done => {
specHelper.db.resetAndSetup()
.then(done.bind(null, null))
.catch(done);
});
- it('returns three feature toggles', function (done) {
+ it('returns three feature toggles', done => {
request
.get('/features')
.expect('Content-Type', /json/)
.expect(200)
- .end(function (err, res) {
- assert(res.body.features.length === 3, "expected 3 features, got " + stringify(res.body));
+ .end((err, res) => {
+ assert(res.body.features.length === 3, `expected 3 features, got ${stringify(res.body)}`);
done();
});
});
- it('gets a feature by name', function (done) {
+ it('gets a feature by name', done => {
request
.get('/features/featureX')
.expect('Content-Type', /json/)
.expect(200, done);
});
- it('cant get feature that dose not exist', function (done) {
+ it('cant get feature that dose not exist', done => {
logger.setLevel('FATAL');
request
.get('/features/myfeature')
@@ -40,7 +40,7 @@ describe('The features api', function () {
.expect(404, done);
});
- it('creates new feature toggle', function (done) {
+ it('creates new feature toggle', done => {
request
.post('/features')
.send({ name: 'com.test.feature', enabled: false })
@@ -48,24 +48,24 @@ describe('The features api', function () {
.expect(201, done);
});
- it('creates new feature toggle with createdBy', function (done) {
+ it('creates new feature toggle with createdBy', done => {
logger.setLevel('FATAL');
request
.post('/features')
.send({ name: 'com.test.Username', enabled: false })
.set('Cookie', ['username=ivaosthu'])
.set('Content-Type', 'application/json')
- .end(function() {
+ .end(() => {
request
.get('/events')
- .end(function (err, res) {
+ .end((err, res) => {
assert.equal(res.body.events[0].createdBy, 'ivaosthu');
done();
});
});
});
- it('require new feature toggle to have a name', function (done) {
+ it('require new feature toggle to have a name', done => {
logger.setLevel('FATAL');
request
.post('/features')
@@ -74,7 +74,7 @@ describe('The features api', function () {
.expect(400, done);
});
- it('can not change status of feature toggle that does not exist', function (done) {
+ it('can not change status of feature toggle that does not exist', done => {
logger.setLevel('FATAL');
request
.put('/features/should-not-exist')
@@ -83,7 +83,7 @@ describe('The features api', function () {
.expect(404, done);
});
- it('can change status of feature toggle that does exist', function (done) {
+ it('can change status of feature toggle that does exist', done => {
logger.setLevel('FATAL');
request
.put('/features/featureY')
@@ -92,19 +92,19 @@ describe('The features api', function () {
.expect(200, done);
});
- it('archives a feature by name', function (done) {
+ it('archives a feature by name', done => {
request
.delete('/features/featureX')
.expect(200, done);
});
- it('can not archive unknown feature', function (done) {
+ it('can not archive unknown feature', done => {
request
.delete('/features/featureUnknown')
.expect(404, done);
});
- it('refuses to create a feature with an existing name', function (done) {
+ it('refuses to create a feature with an existing name', done => {
request
.post('/features')
.send({ name: 'featureX' })
diff --git a/packages/unleash-api/test/featureArchiveApiSpec.js b/packages/unleash-api/test/featureArchiveApiSpec.js
index cc1af0b493..9c7db4f2ce 100644
--- a/packages/unleash-api/test/featureArchiveApiSpec.js
+++ b/packages/unleash-api/test/featureArchiveApiSpec.js
@@ -1,30 +1,30 @@
'use strict';
-var assert = require('assert');
-var specHelper = require('./specHelper');
-var request = specHelper.request;
-var stringify = function (o) {
+const assert = require('assert');
+const specHelper = require('./specHelper');
+const request = specHelper.request;
+const stringify = function (o) {
return JSON.stringify(o, null, ' ');
};
-describe('The archive features api', function () {
- beforeEach(function (done) {
+describe('The archive features api', () => {
+ beforeEach(done => {
specHelper.db.resetAndSetup()
.then(done.bind(null, null))
.catch(done);
});
- it('returns three archived toggles', function (done) {
+ it('returns three archived toggles', done => {
request
.get('/archive/features')
.expect('Content-Type', /json/)
.expect(200)
- .end(function (err, res) {
- assert(res.body.features.length === 3, "expected 3 features, got " + stringify(res.body));
+ .end((err, res) => {
+ assert(res.body.features.length === 3, `expected 3 features, got ${stringify(res.body)}`);
done();
});
});
- it('revives a feature by name', function (done) {
+ it('revives a feature by name', done => {
request
.post('/archive/revive')
.send({ name: 'featureArchivedX' })
@@ -32,7 +32,7 @@ describe('The archive features api', function () {
.expect(200, done);
});
- it('must set name when reviving toggle', function (done) {
+ it('must set name when reviving toggle', done => {
request
.post('/archive/revive')
.expect(400, done);
diff --git a/packages/unleash-api/test/routerSpec.js b/packages/unleash-api/test/routerSpec.js
index 13c1e8e9e3..1c485bfb42 100644
--- a/packages/unleash-api/test/routerSpec.js
+++ b/packages/unleash-api/test/routerSpec.js
@@ -1,10 +1,10 @@
'use strict';
-var specHelper = require('./specHelper');
-var request = specHelper.request;
+const specHelper = require('./specHelper');
+const request = specHelper.request;
-describe('The routes', function () {
- describe('healthcheck', function () {
- it('returns health good', function (done) {
+describe('The routes', () => {
+ describe('healthcheck', () => {
+ it('returns health good', done => {
request.get('/health')
.expect('Content-Type', /json/)
.expect(200)
diff --git a/packages/unleash-api/test/specHelper.js b/packages/unleash-api/test/specHelper.js
index 7ad8c98790..bcb61ee5e4 100644
--- a/packages/unleash-api/test/specHelper.js
+++ b/packages/unleash-api/test/specHelper.js
@@ -1,23 +1,23 @@
'use strict';
process.env.NODE_ENV = 'test';
-var Promise = require('bluebird');
-var request = require('supertest');
-var databaseUri = require('./databaseConfig').getDatabaseUri();
-var knex = require('../lib/db/dbPool')(databaseUri);
-var eventDb = require('../lib/db/event')(knex);
-var EventStore = require('../lib/eventStore');
-var eventStore = new EventStore(eventDb);
-var featureDb = require('../lib/db/feature')(knex, eventStore);
-var strategyDb = require('../lib/db/strategy')(knex, eventStore);
+const Promise = require('bluebird');
+let request = require('supertest');
+const databaseUri = require('./databaseConfig').getDatabaseUri();
+const knex = require('../lib/db/dbPool')(databaseUri);
+const eventDb = require('../lib/db/event')(knex);
+const EventStore = require('../lib/eventStore');
+const eventStore = new EventStore(eventDb);
+const featureDb = require('../lib/db/feature')(knex, eventStore);
+const strategyDb = require('../lib/db/strategy')(knex, eventStore);
-var app = require('../app')({
+const app = require('../app')({
baseUriPath: '',
db: knex,
- eventDb: eventDb,
- eventStore: eventStore,
- featureDb: featureDb,
- strategyDb: strategyDb
+ eventDb,
+ eventStore,
+ featureDb,
+ strategyDb
});
Promise.promisifyAll(request);
@@ -37,67 +37,63 @@ function createStrategies() {
emails: "String"
}
}
- ], function (strategy) {
- return strategyDb._createStrategy(strategy);
- });
+ ], strategy => strategyDb._createStrategy(strategy));
}
function createFeatures() {
return Promise.map([
{
- "name": "featureX",
- "description": "the #1 feature",
- "enabled": true,
- "strategy": "default"
+ name: "featureX",
+ description: "the #1 feature",
+ enabled: true,
+ strategy: "default"
},
{
- "name": "featureY",
- "description": "soon to be the #1 feature",
- "enabled": false,
- "strategy": "baz",
- "parameters": {
- "foo": "bar"
+ name: "featureY",
+ description: "soon to be the #1 feature",
+ enabled: false,
+ strategy: "baz",
+ parameters: {
+ foo: "bar"
}
},
{
- "name": "featureZ",
- "description": "terrible feature",
- "enabled": true,
- "strategy": "baz",
- "parameters": {
- "foo": "rab"
+ name: "featureZ",
+ description: "terrible feature",
+ enabled: true,
+ strategy: "baz",
+ parameters: {
+ foo: "rab"
}
},
{
- "name": "featureArchivedX",
- "description": "the #1 feature",
- "enabled": true,
- "archived": true,
- "strategy": "default"
+ name: "featureArchivedX",
+ description: "the #1 feature",
+ enabled: true,
+ archived: true,
+ strategy: "default"
},
{
- "name": "featureArchivedY",
- "description": "soon to be the #1 feature",
- "enabled": false,
- "archived": true,
- "strategy": "baz",
- "parameters": {
- "foo": "bar"
+ name: "featureArchivedY",
+ description: "soon to be the #1 feature",
+ enabled: false,
+ archived: true,
+ strategy: "baz",
+ parameters: {
+ foo: "bar"
}
},
{
- "name": "featureArchivedZ",
- "description": "terrible feature",
- "enabled": true,
- "archived": true,
- "strategy": "baz",
- "parameters": {
- "foo": "rab"
+ name: "featureArchivedZ",
+ description: "terrible feature",
+ enabled: true,
+ archived: true,
+ strategy: "baz",
+ parameters: {
+ foo: "rab"
}
}
- ], function (feature) {
- return featureDb._createFeature(feature);
- });
+ ], feature => featureDb._createFeature(feature));
}
function destroyStrategies() {
@@ -117,11 +113,11 @@ function setupDatabase() {
}
module.exports = {
- request: request,
+ request,
db: {
reset: resetDatabase,
setup: setupDatabase,
- resetAndSetup: function () {
+ resetAndSetup() {
return resetDatabase().then(setupDatabase);
}
}
diff --git a/packages/unleash-api/test/strategyApiSpec.js b/packages/unleash-api/test/strategyApiSpec.js
index 7a742d58ec..681dcd2faf 100644
--- a/packages/unleash-api/test/strategyApiSpec.js
+++ b/packages/unleash-api/test/strategyApiSpec.js
@@ -1,36 +1,36 @@
'use strict';
-var specHelper = require('./specHelper');
-var request = specHelper.request;
+const specHelper = require('./specHelper');
+const request = specHelper.request;
-describe('The strategy api', function () {
- beforeEach(function (done) {
+describe('The strategy api', () => {
+ beforeEach(done => {
specHelper.db.resetAndSetup()
.then(done.bind(null, null))
.catch(done);
});
- it('gets all strategies', function (done) {
+ it('gets all strategies', done => {
request
.get('/strategies')
.expect('Content-Type', /json/)
.expect(200, done);
});
- it('gets a strategy by name', function (done) {
+ it('gets a strategy by name', done => {
request
.get('/strategies/default')
.expect('Content-Type', /json/)
.expect(200, done);
});
- it('cant get a strategy by name that dose not exist', function (done) {
+ it('cant get a strategy by name that dose not exist', done => {
request
.get('/strategies/mystrategy')
.expect('Content-Type', /json/)
.expect(404, done);
});
- it('creates a new strategy', function (done) {
+ it('creates a new strategy', done => {
request
.post('/strategies')
.send({ name: 'myCustomStrategy', description: 'Best strategy ever.' })
@@ -38,7 +38,7 @@ describe('The strategy api', function () {
.expect(201, done);
});
- it('requires new strategies to have a name', function (done) {
+ it('requires new strategies to have a name', done => {
request
.post('/strategies')
.send({ name: '' })
@@ -46,7 +46,7 @@ describe('The strategy api', function () {
.expect(400, done);
});
- it('refuses to create a strategy with an existing name', function (done) {
+ it('refuses to create a strategy with an existing name', done => {
request
.post('/strategies')
.send({ name: 'default' })
@@ -54,13 +54,13 @@ describe('The strategy api', function () {
.expect(403, done);
});
- it('deletes a new strategy', function (done) {
+ it('deletes a new strategy', done => {
request
.delete('/strategies/usersWithEmail')
.expect(200, done);
});
- it('can\'t delete a strategy that dose not exist', function(done) {
+ it('can\'t delete a strategy that dose not exist', done => {
request
.delete('/strategies/unknown')
.expect(404, done);
diff --git a/packages/unleash-docker/index.js b/packages/unleash-docker/index.js
index ef48ba7eda..58f49486b0 100644
--- a/packages/unleash-docker/index.js
+++ b/packages/unleash-docker/index.js
@@ -1,3 +1,3 @@
'use strict';
-var unleash = require('unleash-server');
+const unleash = require('unleash-server');
unleash.start({});
diff --git a/packages/unleash-frontend/jest-preprocessor.js b/packages/unleash-frontend/jest-preprocessor.js
index e869fa1b7f..6379efc14b 100644
--- a/packages/unleash-frontend/jest-preprocessor.js
+++ b/packages/unleash-frontend/jest-preprocessor.js
@@ -1,7 +1,9 @@
// preprocessor.js
-var ReactTools = require('react-tools');
+'use strict';
+
+const ReactTools = require('react-tools');
module.exports = {
- process: function(src) {
+ process(src) {
return ReactTools.transform(src);
}
};
diff --git a/packages/unleash-frontend/public/js/UnleashApp.jsx b/packages/unleash-frontend/public/js/UnleashApp.jsx
index 724bcbdd2f..e0a85d9a12 100644
--- a/packages/unleash-frontend/public/js/UnleashApp.jsx
+++ b/packages/unleash-frontend/public/js/UnleashApp.jsx
@@ -1,20 +1,21 @@
-var React = require('react');
-var Router = require('react-router');
-var Menu = require('./components/Menu');
-var ErrorMessages = require('./components/ErrorMessages');
-var initalizer = require('./stores/initalizer');
-var FeatureToggleStore = require('./stores/FeatureToggleStore');
-var StrategyStore = require('./stores/StrategyStore');
-var ArchiveStore = require('./stores/ArchivedToggleStore');
-var Link = Router.Link;
-var RouteHandler = Router.RouteHandler;
+'use strict';
+const React = require('react');
+const Router = require('react-router');
+const Menu = require('./components/Menu');
+const ErrorMessages = require('./components/ErrorMessages');
+const initalizer = require('./stores/initalizer');
+const FeatureToggleStore = require('./stores/FeatureToggleStore');
+const StrategyStore = require('./stores/StrategyStore');
+const ArchiveStore = require('./stores/ArchivedToggleStore');
+const Link = Router.Link;
+const RouteHandler = Router.RouteHandler;
-var UnleashApp = React.createClass({
+const UnleashApp = React.createClass({
contextTypes: {
router: React.PropTypes.func
},
- getInitialState: function() {
+ getInitialState() {
return {
features: FeatureToggleStore.getFeatureToggles(),
strategies: StrategyStore.getStrategies(),
@@ -22,40 +23,40 @@ var UnleashApp = React.createClass({
};
},
- onFeatureToggleChange: function() {
+ onFeatureToggleChange() {
this.setState({
features: FeatureToggleStore.getFeatureToggles()
});
},
- onStrategiesChange: function() {
+ onStrategiesChange() {
this.setState({
strategies: StrategyStore.getStrategies()
});
},
- onArchiveChange: function() {
+ onArchiveChange() {
this.setState({
archivedFeatures: ArchiveStore.getArchivedToggles()
});
},
- componentDidMount: function() {
+ componentDidMount() {
this.unsubscribeFS = FeatureToggleStore.listen(this.onFeatureToggleChange);
this.unsubscribeSS = StrategyStore.listen(this.onStrategiesChange);
this.unsubscribeAS = ArchiveStore.listen(this.onArchiveChange);
},
- componentWillUnmount: function() {
+ componentWillUnmount() {
this.unsubscribeFS();
this.unsubscribeSS();
this.unsubscribeAS();
},
- componentWillMount: function() {
+ componentWillMount() {
initalizer(30);
},
- renderLink: function(id, label) {
+ renderLink(id, label) {
return (
{label}
@@ -63,7 +64,7 @@ var UnleashApp = React.createClass({
);
},
- render: function () {
+ render() {
return (