UNPKG

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