open-consul/ui-v2/blueprints/route/index.js
John Cowen 39010d2b76 ui: Adds ember-data blueprints for Consul specific HTTP adapter etc (#6461)
* ui: Adds ember-data blueprints for Consul specific HTTP adapter etc

These are currently quite Consul specific, but we also overwrite the
default model-test blueprint to keep the names consistent (dasherized)
for easy test filtering.

```
ember generate [adapter|serializer|model|repository|route] <name>
```
2019-12-18 12:26:42 +00:00

44 lines
1.1 KiB
JavaScript

/* eslint-env node */
const chalk = require('chalk');
module.exports = Object.assign(
require('ember-source/blueprints/route/index.js'),
{
afterInstall: function(options) {
updateRouter.call(this, 'add', options);
},
afterUninstall: function(options) {
updateRouter.call(this, 'remove', options);
}
}
);
function updateRouter(action, options) {
var entity = options.entity;
var actionColorMap = {
add: 'green',
remove: 'red'
};
var color = actionColorMap[action] || 'gray';
if (this.shouldTouchRouter(entity.name, options)) {
this.ui.writeLine(`we don't currently update the router for you, please edit ${findRouter(options).join('/')}`);
this._writeStatusToUI(chalk[color], action + ' route', entity.name);
}
}
function findRouter(options) {
var routerPathParts = [options.project.root];
if (options.dummy && options.project.isEmberCLIAddon()) {
routerPathParts = routerPathParts.concat(['tests', 'dummy', 'app', 'router.js']);
} else {
routerPathParts = routerPathParts.concat(['app', 'router.js']);
}
return routerPathParts;
}