@@ -80,32 +80,53 @@ async function generateFiles(fromDir, toDir) {
80
80
) ;
81
81
}
82
82
83
- // paths
84
- const templateDir = path . join ( __dirname , "templates" , nodeTemplate ) ;
85
- const newNodeDir = path . join (
86
- __dirname ,
87
- ".." ,
88
- "src" ,
89
- "nodes" ,
90
- nodeTypeInKebabCase
91
- ) ;
92
-
93
- // check if paths ok
94
- if ( ! fs . existsSync ( templateDir ) ) {
95
- console . log ( red ( `Template ${ bold ( nodeTemplate ) } does not exist` ) ) ;
96
- return ;
83
+ async function addNodeToPackageJson ( ) {
84
+ const pkgJsonPath = path . join ( __dirname , ".." , "package.json" ) ;
85
+ const pkgJsonData = JSON . parse ( await readFile ( pkgJsonPath , "utf8" ) ) ;
86
+ pkgJsonData [ "node-red" ] . nodes [
87
+ nodeTypeInKebabCase
88
+ ] = `./dist/nodes/${ nodeTypeInKebabCase } /${ nodeTypeInKebabCase } .js` ;
89
+ await writeFile ( pkgJsonPath , JSON . stringify ( pkgJsonData , null , 2 ) , "utf8" ) ;
90
+ console . log ( green ( `Added ${ bold ( nodeTypeInKebabCase ) } to package.json` ) ) ;
97
91
}
98
- if ( fs . existsSync ( newNodeDir ) ) {
99
- console . log ( red ( `Node ${ bold ( nodeTypeInKebabCase ) } already exists` ) ) ;
100
- return ;
92
+
93
+ async function main ( ) {
94
+ // paths
95
+ const templateDir = path . join ( __dirname , "templates" , nodeTemplate ) ;
96
+ const newNodeDir = path . join (
97
+ __dirname ,
98
+ ".." ,
99
+ "src" ,
100
+ "nodes" ,
101
+ nodeTypeInKebabCase
102
+ ) ;
103
+
104
+ // check if paths ok
105
+ if ( ! fs . existsSync ( templateDir ) ) {
106
+ console . log ( red ( `Template ${ bold ( nodeTemplate ) } does not exist` ) ) ;
107
+ return ;
108
+ }
109
+ if ( fs . existsSync ( newNodeDir ) ) {
110
+ console . log ( red ( `Node ${ bold ( nodeTypeInKebabCase ) } already exists` ) ) ;
111
+ return ;
112
+ }
113
+
114
+ // we can do that now
115
+ console . log (
116
+ green (
117
+ `Generating ${ bold ( nodeTypeInKebabCase ) } node using ${ bold (
118
+ nodeTemplate
119
+ ) } template`
120
+ )
121
+ ) ;
122
+
123
+ try {
124
+ await generateFiles ( templateDir , newNodeDir ) ;
125
+ await addNodeToPackageJson ( ) ;
126
+ } catch ( e ) {
127
+ console . log ( red ( `Error: ${ bold ( e ) } ` ) ) ;
128
+ return ;
129
+ }
101
130
}
102
131
103
- // we can do that now
104
- console . log (
105
- green (
106
- `Generating ${ bold ( nodeTypeInKebabCase ) } node using ${ bold (
107
- nodeTemplate
108
- ) } template`
109
- )
110
- ) ;
111
- generateFiles ( templateDir , newNodeDir ) ;
132
+ main ( ) ;
0 commit comments