UNPKG

2.88 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3// @ts-ignore
4const fs = require("fs");
5const xml2js = require("xml2js");
6const fileExtensions = {
7 ".c.lua": "client",
8 ".s.lua": "server",
9 ".b.lua": "shared"
10};
11function readDirs(filepath) {
12 let filePaths = [];
13 fs.readdirSync(filepath).forEach((file) => {
14 if (fs.lstatSync(filepath + "/" + file).isDirectory()) {
15 filePaths = filePaths.concat(readDirs(filepath + "/" + file));
16 }
17 else {
18 filePaths.push(filepath + "/" + file);
19 }
20 });
21 return filePaths;
22}
23function generateMetaEntries(files, sourceMaps) {
24 const clientScripts = files.filter((file) => /\.c.lua$/.test(file)).map((file) => {
25 return {
26 $: {
27 src: file,
28 type: "client"
29 }
30 };
31 });
32 const serverScripts = files.filter((file) => /\.s.lua$/.test(file)).map((file) => {
33 return {
34 $: {
35 src: file,
36 type: "server"
37 }
38 };
39 });
40 const sharedScripts = files.filter((file) => /\.b.lua$/.test(file)).map((file) => {
41 return {
42 $: {
43 src: file,
44 type: "shared"
45 }
46 };
47 });
48 let sourceMapperFilePaths = [];
49 if (sourceMaps) {
50 sourceMapperFilePaths = [
51 {
52 $: {
53 src: 'TypeScriptHelpers/ClientSourceMapper.lua',
54 type: 'client'
55 }
56 },
57 {
58 $: {
59 src: 'TypeScriptHelpers/ServerSourceMapper.lua',
60 type: 'server'
61 }
62 }
63 ];
64 }
65 return clientScripts.concat(serverScripts).concat(clientScripts).concat(sharedScripts).concat(sourceMapperFilePaths);
66}
67exports.generateMetaEntries = generateMetaEntries;
68function buildMeta(answers) {
69 const filePaths = readDirs("dist");
70 const meta = {
71 meta: {
72 info: [
73 {
74 $: {
75 author: answers.author,
76 description: answers.description,
77 type: answers.type,
78 name: answers.name,
79 version: answers.version
80 }
81 }
82 ],
83 oop: ['true'],
84 script: [],
85 file: [],
86 }
87 };
88 console.log(filePaths);
89 meta.meta.script = meta.meta.script.concat(generateMetaEntries(filePaths, answers.generateSourceMap));
90 const builder = new xml2js.Builder();
91 const newMeta = builder.buildObject(meta);
92 fs.writeFileSync("meta.xml", newMeta);
93}
94exports.buildMeta = buildMeta;