11#!/usr/bin/env node
22
33import 'isomorphic-fetch' ;
4- import 'colors' ;
54import program from 'commander' ;
65import parseHydraDocumentation from 'api-doc-parser/lib/hydra/parseHydraDocumentation' ;
76import { version } from '../package.json' ;
8- import ReactCrudGenerator from './ReactCrudGenerator ' ;
7+ import generators from './generators ' ;
98
109program
1110 . version ( version )
1211 . description ( 'Generate a CRUD application built with React, Redux and React Router from an Hydra-enabled API' )
1312 . usage ( 'apiEntrypoint outputDirectory' )
1413 . option ( '-r, --resource [resourceName]' , 'Generate CRUD for the given resource' )
1514 . option ( '-p, --hydra-prefix [hydraPrefix]' , 'The hydra prefix used by the API' , 'hydra:' )
15+ . option ( '-g, --generator [generator]' , 'The generator to use, one of "react", "angular" etc.' , 'react' )
1616 . parse ( process . argv ) ;
1717
1818if ( 2 !== program . args . length ) {
1919 program . help ( ) ;
2020}
2121
22- const generator = new ReactCrudGenerator ( program . hydraPrefix ) ;
22+ const generator = generators ( program . generator ) ( program . hydraPrefix )
2323const resourceToGenerate = program . resource ? program . resource . toLowerCase ( ) : null ;
2424
2525parseHydraDocumentation ( program . args [ 0 ] ) . then ( api => {
@@ -29,22 +29,7 @@ parseHydraDocumentation(program.args[0]).then(api => {
2929
3030 if ( null === resourceToGenerate || nameLc === resourceToGenerate || titleLc === resourceToGenerate ) {
3131 generator . generate ( api , resource , program . args [ 1 ] ) ;
32-
33- console . log ( 'Code for the "%s" resource type has been generated!' , resource . title ) ;
34- console . log ( 'Paste the following definitions in your application configuration:' ) ;
35- console . log ( `
36- // import reducers
37- import ${ titleLc } from './reducers/${ titleLc } /';
38-
39- //import routes
40- import ${ titleLc } Routes from './routes/${ titleLc } ';
41-
42- // Add the reducer
43- combineReducers(${ titleLc } ,{/* ... */}),
44-
45- // Add routes to <Switch>
46- { ${ titleLc } Routes }
47- ` . green ) ;
32+ generator . help ( resource )
4833 }
4934 }
5035 generator . entrypoint ( program . args [ 0 ] , program . args [ 1 ] ) ;
0 commit comments