Skip to content

Commit 94abf14

Browse files
authored
Feat: Added generator for middleware (#261)
* Feat: Added generator for middleware * feat: added destroy command for middleware
1 parent d9d0081 commit 94abf14

File tree

4 files changed

+32
-1
lines changed

4 files changed

+32
-1
lines changed

src/packages/cli/commands/create.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export async function create(name, database) {
4242
fs.mkdirAsync(`${project}/app/models`),
4343
fs.mkdirAsync(`${project}/app/serializers`),
4444
fs.mkdirAsync(`${project}/app/controllers`),
45+
fs.mkdirAsync(`${project}/app/middleware`),
4546
fs.mkdirAsync(`${project}/config/environments`),
4647
fs.mkdirAsync(`${project}/db/migrate`)
4748
]);

src/packages/cli/commands/destroy.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ export async function destroyType(type, name) {
3030
name = pluralize(name);
3131
path = `app/${pluralize(type)}/${name}.js`;
3232
break;
33+
34+
case 'middleware':
35+
path = `app/${type}/${name}.js`;
36+
break;
3337
}
3438

3539
if (await exists(`${CWD}/${path}`)) {

src/packages/cli/commands/generate.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import serializerTemplate from '../templates/serializer';
1111
import controllerTemplate from '../templates/controller';
1212
import emptyMigrationTemplate from '../templates/empty-migration';
1313
import modelMigrationTemplate from '../templates/model-migration';
14+
import middlewareTemplate from '../templates/middleware';
1415

1516
import indent from '../utils/indent';
1617

@@ -49,13 +50,18 @@ export async function generateType(type, name, cwd, attrs = []) {
4950
case 'controller':
5051
data = controllerTemplate(name, attrs);
5152
break;
53+
54+
case 'middleware':
55+
data = middlewareTemplate(name);
56+
break;
5257
}
5358

5459
if (type === 'model') {
5560
name = singularize(name);
5661
}
5762

58-
if (type !== 'model' && type !== 'migration' && name !== 'application') {
63+
if (type !== 'model' && type !== 'migration' && type !== 'middleware' &&
64+
name !== 'application') {
5965
name = pluralize(name);
6066
}
6167

@@ -67,6 +73,8 @@ export async function generateType(type, name, cwd, attrs = []) {
6773
const timestamp = generateTimestamp();
6874

6975
path = `db/migrate/${timestamp}-create-${pluralize(name)}.js`;
76+
} else if (type === 'middleware') {
77+
path = `app/${type}/${name}.js`;
7078
} else {
7179
path = `app/${pluralize(type)}/${name}.js`;
7280
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// @flow
2+
import { camelize } from 'inflection';
3+
4+
import underscore from '../../../utils/underscore';
5+
import template from '../../template';
6+
7+
/**
8+
* @private
9+
*/
10+
export default (name: string): string => {
11+
name = camelize(underscore(name), true);
12+
13+
return template`
14+
export default function ${name}(/*request, response*/) {
15+
16+
}
17+
`;
18+
};

0 commit comments

Comments
 (0)