Skip to content

Commit f94314a

Browse files
committed
Add generated nodes to package.json
1 parent 07b8926 commit f94314a

File tree

1 file changed

+47
-26
lines changed

1 file changed

+47
-26
lines changed

utils/add-node.js

Lines changed: 47 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -80,32 +80,53 @@ async function generateFiles(fromDir, toDir) {
8080
);
8181
}
8282

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`));
9791
}
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+
}
101130
}
102131

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

Comments
 (0)