UNPKG

3.1 kBJavaScriptView Raw
1"use strict";
2var __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};
11Object.defineProperty(exports, "__esModule", { value: true });
12const prompts = require("prompts");
13const Questions_1 = require("./Questions");
14const fs = require("fs");
15const MetaWriter_1 = require("./MetaWriter");
16const xml2js = require("xml2js");
17function 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}
34exports.generate = generate;
35// generate();
36function 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}
48function generateTsConfigJSON() {
49 console.log("Generating tsconfig.json...");
50 fs.copyFileSync("node_modules/mta_declarations_for_tstl/templates/npm/tsconfig.json", "tsconfig.json");
51}
52function 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}
57function 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}
66function generateMetaXML(answers) {
67 console.log("Generating meta.xml...");
68 MetaWriter_1.buildMeta(answers);
69}
70exports.generateMetaXML = generateMetaXML;