-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcreateScript.js
121 lines (109 loc) · 3.83 KB
/
createScript.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
fs = require("fs")
path = require("path")
readline = require("readline").createInterface({
input:process.stdin,
output:process.stdout
})
const makeFile = (js,css,dirname)=>{
fs.mkdir(dirname + "\\" + process.argv[3],(err)=>{
if(err){
console.log(err)
process.exit()
}
else{
fs.writeFile(dirname + "\\" + process.argv[3] + "\\" + process.argv[3].substring(process.argv[3].lastIndexOf('\\')-1) + ".js",js,(err)=>{
if(err){
console.log(err)
process.exit()
}
else{
fs.writeFile(dirname + "\\" + process.argv[3] + "\\" + process.argv[3].substring(process.argv[3].lastIndexOf('\\')-1) + ".module.css",css,(err)=>{
if(err){
console.log(err)
process.exit()
}
else{
console.log(`${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)} component successfully created!`)
process.exit()
}
})
}
})
}
})
}
const checks = (js,css)=>{
let dirname = __dirname
if(!__dirname.endsWith('src')){
dirname = __dirname + '\\src'
}
fs.exists(dirname + "\\" + process.argv[3].substring(0,process.argv[3].lastIndexOf('\\')-1),(exists)=>{
if(exists){
fs.exists(dirname + "\\" + process.argv[3],(existsC)=>{
if(existsC){
console.log("Component Of This Name Already Exists.")
process.exit()
}
else{
makeFile(js,css,dirname)
}
})
}
else{
readline.question(`${dirname + "\\" + process.argv[3].substring(0,process.argv[3].lastIndexOf('\\')-1)} path does not exist, do you want to create it anyway? [y/n]`,ans=>{
if(ans == "y" || ans == "Y"){
makeFile(js,css,dirname)
}
else{
process.exit()
}
})
}
})
}
if(process.argv[2] == 'class'){
// class base js file boilerplate
let js = `import React,{Component} from 'react'
import Style from './${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)}.module.css'
class ${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)} extends Component{
render(){
return(
<div className={Style.${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)}}>
</div>
)
}
}
export default ${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)}
`
// end class base js file boilerplate
// class base css file boilerplate
let css = `.${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)}{
}
`
//end of class base js file boilerplate
checks(js,css)
}
else if(process.argv[2] == 'function'){
// function base js file boilerplate
let js = `import React from 'react'
import Style from './${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)}.module.css'
const ${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)} = (props) => {
return(
<div className = {Style.${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)}}>
</div>
)
}
export default ${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)}
`
// end of function base js file boilerplate
// function base css file boilerplate
let css = `.${process.argv[3].substring(process.argv[3].lastIndexOf('\\')+1)}{
}
`
//end of function base css file boilerplate
checks(js,css)
}
else{
console.log("Invalid arguments")
process.exit()
}