UNPKG

1.32 kBJavaScriptView Raw
1var fs = require('fs');
2var fsExtra = require('fs-extra')
3
4var reactClass = require('./react-class');
5var reserved = require('./reserved-words').reserved;
6
7var createFile = function (path) {
8
9 if (!path) {
10 throw new Error('Invalid input information. Inform the --class argument');
11 }
12
13 var paths = path.split('/');
14
15 var filePosition = paths.length - 1;
16
17 if (paths.length > 1) {
18 createDirectory(paths.slice(0, filePosition))
19 }
20
21 var fileName = paths[filePosition].trim();
22
23 if (!fileName) {
24 throw new Error('Missing class name');
25 }
26
27
28 if (reserved.indexOf(fileName) != -1) {
29 throw new Error('Reserved name');
30 }
31
32 var regex = '[^a-zA-Z0-9]+';
33
34 if (fileName.match(regex)) {
35 throw new Error('You can not use special characters');
36 }
37
38 var body = reactClass.createReactClassStructure(fileName);
39
40 fs.writeFile(`./${path}.js`, body, function (err) {
41 if (err) {
42 return console.log(err);
43 }
44
45 console.log('The class was created!');
46
47 });
48
49 return 'Creating class file';
50
51}
52
53var createDirectory = function (arrayOfPaths) {
54
55 var path = arrayOfPaths.join('/');
56
57 fsExtra.ensureDirSync(path);
58
59}
60
61
62exports.createFile = createFile;
\No newline at end of file