1 | "use strict";
|
2 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3 | function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4 | return new (P || (P = Promise))(function (resolve, reject) {
|
5 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7 | function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8 | step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9 | });
|
10 | };
|
11 | Object.defineProperty(exports, "__esModule", { value: true });
|
12 | const prompts = require("prompts");
|
13 | const Questions_1 = require("./Questions");
|
14 | const fs = require("fs");
|
15 | const MetaWriter_1 = require("./MetaWriter");
|
16 | const xml2js = require("xml2js");
|
17 | function generate() {
|
18 | return __awaiter(this, void 0, void 0, function* () {
|
19 | console.clear();
|
20 | console.log("This utilty will walk you through creating a boilerplate for Typescript Projects for MTA.");
|
21 | console.log("You can exit with Ctrl+c at any time.");
|
22 | console.log("-------------------");
|
23 | const answers = yield prompts(Questions_1.resourceQuestions);
|
24 | console.log("-------------------");
|
25 | generateDirectories();
|
26 | generateTsConfigJSON();
|
27 | if (answers.generateSourceMap) {
|
28 | generateSourceMapScript();
|
29 | }
|
30 | generateMtaTsSettings(answers);
|
31 | generateMetaXML(answers);
|
32 | });
|
33 | }
|
34 | exports.generate = generate;
|
35 |
|
36 | function generateDirectories() {
|
37 | console.log("Generating Directories...");
|
38 | if (!fs.existsSync("src")) {
|
39 | fs.mkdirSync("src");
|
40 | }
|
41 | if (!fs.existsSync("dist")) {
|
42 | fs.mkdirSync("dist");
|
43 | }
|
44 | if (!fs.existsSync("TypeScriptHelpers")) {
|
45 | fs.mkdirSync("TypeScriptHelpers");
|
46 | }
|
47 | }
|
48 | function generateTsConfigJSON() {
|
49 | console.log("Generating tsconfig.json...");
|
50 | fs.copyFileSync("node_modules/mta_declarations_for_tstl/templates/npm/tsconfig.json", "tsconfig.json");
|
51 | }
|
52 | function generateSourceMapScript() {
|
53 | console.log("Generating Source Map Scripts...");
|
54 | fs.copyFileSync("node_modules/mta_declarations_for_tstl/templates/mta/ClientSourceMapper.lua", "TypeScriptHelpers/ClientSourceMapper.lua");
|
55 | fs.copyFileSync("node_modules/mta_declarations_for_tstl/templates/mta/ServerSourceMapper.lua", "TypeScriptHelpers/ServerSourceMapper.lua");
|
56 | }
|
57 | function generateMtaTsSettings(answers) {
|
58 | console.log("Generating MTA-TS Settings...");
|
59 | const settings = {
|
60 | settings: answers
|
61 | };
|
62 | const builder = new xml2js.Builder();
|
63 | const settingsXml = builder.buildObject(settings);
|
64 | fs.writeFileSync("TypeScriptHelpers/settings.xml", settingsXml);
|
65 | }
|
66 | function generateMetaXML(answers) {
|
67 | console.log("Generating meta.xml...");
|
68 | MetaWriter_1.buildMeta(answers);
|
69 | }
|
70 | exports.generateMetaXML = generateMetaXML;
|