UNPKG

1.44 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3const program = require("commander");
4const fs = require("fs");
5const cp = require("child_process");
6
7const FileSystemHelper = require("./filesystem.helper");
8
9const TsConfigJsonData = require("./tsconfig-json.data");
10const GetPackageJsonData = require("./package-json-data");
11const IndexTsData = require("./index-ts-data");
12const ExampleRouteData = require("./example-route-data");
13
14program
15 .version("1.6.2")
16 .command("new <projectName>").description("Creates a new project for a API RESTfull using Symetrical").action(projectName => {
17 if (fs.existsSync(projectName)) return console.log("Directory already exists!");
18
19 fs.mkdirSync(projectName);
20 FileSystemHelper.CreateFile(projectName + "/tsconfig.json", TsConfigJsonData);
21 FileSystemHelper.CreateFile(projectName + "/package.json", GetPackageJsonData(projectName));
22 FileSystemHelper.CreateFile(projectName + "/.gitignore", "node_modules");
23 fs.mkdirSync(projectName + "/src");
24 FileSystemHelper.CreateFile(projectName + "/src/index.ts", IndexTsData);
25 fs.mkdirSync(projectName + "/src/routes");
26 FileSystemHelper.CreateFile(projectName + "/src/routes/example.route.ts", ExampleRouteData);
27 cp.exec(`cd ${projectName} && git init && npm install`, (err, stdout, stderr) => {
28 if (err) throw err;
29
30 console.log(stdout);
31 console.log(stderr);
32 });
33 })
34 .parse(process.argv);
\No newline at end of file