UNPKG

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