Skip to content

Commit 45e9959

Browse files
authored
Merge pull request #1364 from driftyco/feature/generators
Feature/generators
2 parents fac1c4d + 9a49df9 commit 45e9959

File tree

2 files changed

+30
-17
lines changed

2 files changed

+30
-17
lines changed

lib/ionic/generate.js

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
var extend = require('../utils/extend');
44
var path = require('path');
55
var ionicAppLib = require('ionic-app-lib');
6+
var appGenerator = require('@ionic/app-generators');
67
var log = ionicAppLib.logging.logger;
78
var Project = ionicAppLib.project;
89
var fail = ionicAppLib.utils.fail;
@@ -16,10 +17,6 @@ var settings = {
1617
'--list': {
1718
title: 'List available generators',
1819
boolean: true
19-
},
20-
'--typescript|--ts': {
21-
boolean: true,
22-
title: '(with --v2 only) Use TypeScript in generation'
2320
}
2421
},
2522
isProjectTask: true
@@ -48,28 +45,43 @@ function run(ionic, argv) {
4845
var name = argv._[2]; // TODO support multiple names
4946
var isTS = project.get('typescript') || argv.ts;
5047

51-
var ionicModule = loadToolingModule();
52-
5348
if (argv.list) {
54-
ionicModule.Generate.printAvailableGenerators();
49+
appGenerator.printAvailableGenerators();
5550
return;
5651
}
5752

58-
var promise;
59-
try {
60-
promise = ionicModule.generate({ appDirectory: process.cwd(), generator: generator, name: name, isTS: isTS });
61-
} catch (err) {
62-
if (err.message.indexOf('no generator available') !== -1) {
53+
var includeSpec = argv.includeSpec ? true : false;
54+
var includeSass = argv.skipScss ? false : true;
55+
56+
var generatorOptions = {
57+
generatorType: generator,
58+
suppliedName: name,
59+
includeSpec: includeSpec,
60+
includeSass: includeSass
61+
};
62+
63+
var projectStructureOptions = {
64+
absoluteComponentDirPath: process.cwd() + '/src/components',
65+
absoluteDirectiveDirPath: process.cwd() + '/src/components',
66+
absolutePagesDirPath: process.cwd() + '/src/pages',
67+
absolutePipeDirPath: process.cwd() + '/src/pipes',
68+
absoluteProviderDirPath: process.cwd() + '/src/providers',
69+
absolutePathTemplateBaseDir: process.cwd() + '/node_modules/ionic-angular/templates'
70+
};
71+
72+
return appGenerator.generate(generatorOptions, projectStructureOptions).catch(function(err) {
73+
if (err.message === 'Unknown Generator Type') {
6374
log.error(err.message);
64-
ionicModule.Generate.printAvailableGenerators();
75+
appGenerator.printAvailableGenerators();
6576
return;
77+
} else {
78+
return fail(err);
6679
}
67-
return fail(err);
68-
}
69-
return promise;
80+
});
81+
7082

7183
} catch (err) {
72-
fail('There was an error generating your item:', err);
84+
return fail('There was an error generating your item:', err);
7385
}
7486
}
7587

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
],
6161
"license": "MIT",
6262
"dependencies": {
63+
"@ionic/app-generators": "0.0.3",
6364
"cli-table": "0.3.1",
6465
"colors": "0.6.2",
6566
"expand-tilde": "1.2.0",

0 commit comments

Comments
 (0)