UNPKG

3.85 kBJavaScriptView Raw
1"use strict";
2var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3 return new (P || (P = Promise))(function (resolve, reject) {
4 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7 step((generator = generator.apply(thisArg, _arguments || [])).next());
8 });
9};
10Object.defineProperty(exports, "__esModule", { value: true });
11const fs_i_1 = require("fs-i");
12const fs_extra_1 = require("fs-extra");
13function replaceProjectName(path, answer) {
14 return __awaiter(this, void 0, void 0, function* () {
15 let files = yield fs_i_1.getAllFiles(path);
16 for (let file of files) {
17 let fileContent = fs_extra_1.readFileSync(file, { encoding: "utf-8" });
18 fileContent = fileContent.replace(/{{projectName}}/g, answer.projectName);
19 fileContent = yield editPackageJson(file, fileContent, answer);
20 fs_extra_1.writeFileSync(file, fileContent);
21 }
22 if (answer.unittest === "否") {
23 let dir = path + "/test";
24 fs_extra_1.emptyDirSync(dir);
25 fs_extra_1.rmdirSync(dir);
26 }
27 });
28}
29function editPackageJson(file, fileContent, answer) {
30 return __awaiter(this, void 0, void 0, function* () {
31 file = file.replace(/\\/g, "/");
32 file = file.substr(file.lastIndexOf("/") + 1);
33 if (file === "package.json") {
34 if (answer.needDocs === "否") {
35 let json = JSON.parse(fileContent);
36 delete json.devDependencies.typedoc;
37 delete json.scripts.docs;
38 json.scripts.build = json.scripts.build.replace(/\s*&&\s*npm\s*run\s*docs\s*/, "");
39 fileContent = JSON.stringify(json, null, 2);
40 }
41 if (answer.unittest === "否") {
42 let json = JSON.parse(fileContent);
43 delete json.devDependencies["@types/chai"];
44 delete json.devDependencies["@types/mocha"];
45 delete json.devDependencies["source-map-support"];
46 delete json.devDependencies["ts-node"];
47 delete json.devDependencies["typedoc-format"];
48 delete json.devDependencies.chai;
49 delete json.devDependencies.coveralls;
50 delete json.devDependencies.mocha;
51 delete json.devDependencies.nyc;
52 delete json.scripts.test;
53 delete json.scripts["test-nyc"];
54 delete json.nyc;
55 fileContent = JSON.stringify(json, null, 2);
56 }
57 }
58 if (file == ".travis.yml") {
59 if (answer.unittest === "否") {
60 fileContent = fileContent
61 .replace(/(script\s*:)((.|\n)*?)(\s*-\s*npm\s*run\s*test)/, (w, a, b, c, d) => {
62 return w.replace(d, "");
63 })
64 .replace(/(after_script\s*:)((.|\n)*?)(\s*-\s*npm\s*run\s*test-nyc)/, (w, a, b, c, d) => {
65 return w.replace(a, "").replace(d, "");
66 })
67 .replace(/(-\s*provider:\s*pages\s*)([^-]*)/, "");
68 }
69 }
70 return fileContent;
71 });
72}
73function createProject(answer) {
74 return __awaiter(this, void 0, void 0, function* () {
75 let targetPath = `${process.cwd()}/${answer.projectName}`;
76 fs_extra_1.copySync(`${__dirname}/../template`, targetPath);
77 yield replaceProjectName(targetPath, answer);
78 });
79}
80exports.createProject = createProject;
81//# sourceMappingURL=createProject.js.map
\No newline at end of file