amxxpack 0.1.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +26 -21
  2. package/lib/builder/amxxpc.d.ts +27 -27
  3. package/lib/builder/amxxpc.js +122 -122
  4. package/lib/builder/builder.d.ts +21 -22
  5. package/lib/builder/builder.js +379 -400
  6. package/lib/builder/constants.d.ts +3 -3
  7. package/lib/builder/constants.js +6 -6
  8. package/lib/builder/index.d.ts +1 -2
  9. package/lib/builder/index.js +9 -20
  10. package/lib/cli/controller.d.ts +20 -16
  11. package/lib/cli/controller.js +238 -181
  12. package/lib/cli/index.d.ts +3 -2
  13. package/lib/cli/index.js +13 -8
  14. package/lib/cli/program.d.ts +4 -4
  15. package/lib/cli/program.js +174 -118
  16. package/lib/cli/services/project-creator.d.ts +21 -0
  17. package/lib/cli/services/project-creator.js +274 -0
  18. package/lib/cli/services/template-builder.d.ts +11 -0
  19. package/lib/cli/services/template-builder.js +104 -0
  20. package/lib/cli/types.d.ts +12 -0
  21. package/lib/{compiler-downloader → cli}/types.js +2 -2
  22. package/lib/config/index.d.ts +8 -0
  23. package/lib/config/index.js +14 -0
  24. package/lib/downloaders/compiler/constants.d.ts +9 -0
  25. package/lib/{compiler-downloader → downloaders/compiler}/constants.js +14 -17
  26. package/lib/downloaders/compiler/downloader.d.ts +3 -0
  27. package/lib/{compiler-downloader → downloaders/compiler}/downloader.js +151 -174
  28. package/lib/{compiler-downloader → downloaders/compiler}/index.d.ts +1 -1
  29. package/lib/{compiler-downloader → downloaders/compiler}/index.js +9 -9
  30. package/lib/{compiler-downloader → downloaders/compiler}/resolvers.d.ts +6 -6
  31. package/lib/{compiler-downloader → downloaders/compiler}/resolvers.js +40 -39
  32. package/lib/{compiler-downloader → downloaders/compiler}/types.d.ts +16 -16
  33. package/lib/{builder → downloaders/compiler}/types.js +2 -2
  34. package/lib/downloaders/thirdparty/downloader.d.ts +3 -0
  35. package/lib/downloaders/thirdparty/downloader.js +69 -0
  36. package/lib/downloaders/thirdparty/index.d.ts +1 -0
  37. package/lib/downloaders/thirdparty/index.js +9 -0
  38. package/lib/downloaders/thirdparty/types.d.ts +5 -0
  39. package/lib/downloaders/thirdparty/types.js +2 -0
  40. package/lib/index.d.ts +2 -2
  41. package/lib/index.js +20 -20
  42. package/lib/logger/constants.d.ts +7 -0
  43. package/lib/logger/constants.js +12 -0
  44. package/lib/{services → logger}/logger.d.ts +16 -22
  45. package/lib/{services → logger}/logger.js +96 -104
  46. package/lib/logger/types.d.ts +3 -0
  47. package/lib/logger/types.js +2 -0
  48. package/lib/project-config/defaults.d.ts +3 -0
  49. package/lib/project-config/defaults.js +38 -0
  50. package/lib/project-config/index.d.ts +6 -0
  51. package/lib/project-config/index.js +8 -0
  52. package/lib/project-config/resolve.d.ts +3 -0
  53. package/lib/project-config/resolve.js +110 -0
  54. package/lib/types/index.d.ts +45 -0
  55. package/lib/types/index.js +2 -0
  56. package/lib/utils/accumulator.d.ts +2 -1
  57. package/lib/utils/accumulator.js +10 -10
  58. package/lib/utils/download.d.ts +6 -0
  59. package/lib/utils/download.js +63 -0
  60. package/package.json +7 -1
  61. package/resources/templates/include-directive.txt +1 -0
  62. package/resources/templates/include.txt +5 -0
  63. package/resources/templates/library-include.txt +6 -0
  64. package/resources/templates/library-script.txt +10 -0
  65. package/resources/templates/script.txt +5 -0
  66. package/lib/builder/types.d.ts +0 -20
  67. package/lib/compiler-downloader/constants.d.ts +0 -12
  68. package/lib/compiler-downloader/downloader.d.ts +0 -2
  69. package/resources/default-config.json +0 -22
@@ -0,0 +1,104 @@
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
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var fs_1 = __importDefault(require("fs"));
43
+ var path_1 = __importDefault(require("path"));
44
+ var lodash_1 = require("lodash");
45
+ var mkdirp_1 = __importDefault(require("mkdirp"));
46
+ var TemplateBuilder = /** @class */ (function () {
47
+ function TemplateBuilder(projectConfig, context, contextDefaults) {
48
+ this.projectConfig = projectConfig;
49
+ this.context = null;
50
+ this.rawIncludes = null;
51
+ this.context = (0, lodash_1.defaults)((0, lodash_1.merge)({}, this.projectConfig.cli.templates.context, context), contextDefaults);
52
+ }
53
+ TemplateBuilder.prototype.buildTemplate = function (name, contextOverride) {
54
+ return __awaiter(this, void 0, void 0, function () {
55
+ var templatePath, templateString, data;
56
+ var _this = this;
57
+ return __generator(this, function (_a) {
58
+ switch (_a.label) {
59
+ case 0:
60
+ templatePath = (0, lodash_1.get)(this.projectConfig.cli.templates.files, name, path_1.default.join(__dirname, "../../../resources/templates/".concat(name, ".txt")));
61
+ return [4 /*yield*/, fs_1.default.promises.readFile(templatePath, 'utf8')];
62
+ case 1:
63
+ templateString = _a.sent();
64
+ data = templateString.replace(/\{\{([a-zA-Z0-9_]+)\}\}/gm, function (substring) {
65
+ var args = [];
66
+ for (var _i = 1; _i < arguments.length; _i++) {
67
+ args[_i - 1] = arguments[_i];
68
+ }
69
+ var key = args[0];
70
+ return (0, lodash_1.get)(contextOverride, key, (0, lodash_1.get)(_this.context, key, substring));
71
+ });
72
+ return [2 /*return*/, data];
73
+ }
74
+ });
75
+ });
76
+ };
77
+ TemplateBuilder.prototype.createFileFromTemplate = function (filePath, template, overwrite) {
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ var dir, rawIncludes, _a, _b, _c;
80
+ var _this = this;
81
+ return __generator(this, function (_d) {
82
+ switch (_d.label) {
83
+ case 0:
84
+ dir = path_1.default.parse(filePath).dir;
85
+ return [4 /*yield*/, (0, mkdirp_1.default)(dir)];
86
+ case 1:
87
+ _d.sent();
88
+ return [4 /*yield*/, Promise.all((0, lodash_1.map)(this.context.INCLUDES, function (includeName) { return _this.buildTemplate('include-directive', { FILE: includeName }); }))];
89
+ case 2:
90
+ rawIncludes = (_d.sent()).join('\n');
91
+ _b = (_a = fs_1.default.promises).writeFile;
92
+ _c = [filePath];
93
+ return [4 /*yield*/, this.buildTemplate(template, { INCLUDES: rawIncludes })];
94
+ case 3: return [4 /*yield*/, _b.apply(_a, _c.concat([_d.sent(), { flag: overwrite ? 'w' : 'wx' }]))];
95
+ case 4:
96
+ _d.sent();
97
+ return [2 /*return*/];
98
+ }
99
+ });
100
+ });
101
+ };
102
+ return TemplateBuilder;
103
+ }());
104
+ exports.default = TemplateBuilder;
@@ -0,0 +1,12 @@
1
+ export interface IAddTemplateContext {
2
+ [key: string]: any;
3
+ }
4
+ export interface IProjectOptions {
5
+ name: string;
6
+ author: string;
7
+ description: string;
8
+ version: string;
9
+ nonpm: boolean;
10
+ git: boolean;
11
+ cwd?: string;
12
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ downloadHost: string;
3
+ scriptingDir: string;
4
+ extensionsIgnoreList: string[];
5
+ downloadDir: string;
6
+ projectConfig: string;
7
+ };
8
+ export default _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var path_1 = __importDefault(require("path"));
7
+ var os_1 = __importDefault(require("os"));
8
+ exports.default = {
9
+ downloadHost: 'https://www.amxmodx.org',
10
+ scriptingDir: 'addons/amxmodx/scripting/',
11
+ extensionsIgnoreList: ['.sma'],
12
+ downloadDir: path_1.default.join(os_1.default.tmpdir(), '.amxxpack/downloads'),
13
+ projectConfig: '.amxxpack.json'
14
+ };
@@ -0,0 +1,9 @@
1
+ export declare enum CompilerPlatform {
2
+ Windows = "windows",
3
+ Linux = "linux",
4
+ Mac = "mac"
5
+ }
6
+ export declare enum DistSource {
7
+ Dev = "amxxdrop",
8
+ Release = "release"
9
+ }
@@ -1,17 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DistSource = exports.CompilerPlatform = exports.EXTENSIONS_IGNORE_LIST = exports.SCRIPTING_DIR = exports.DOWNLOAD_HOST = void 0;
4
- exports.DOWNLOAD_HOST = 'https://www.amxmodx.org';
5
- exports.SCRIPTING_DIR = 'addons/amxmodx/scripting/';
6
- exports.EXTENSIONS_IGNORE_LIST = ['.sma'];
7
- var CompilerPlatform;
8
- (function (CompilerPlatform) {
9
- CompilerPlatform["Windows"] = "windows";
10
- CompilerPlatform["Linux"] = "linux";
11
- CompilerPlatform["Mac"] = "mac";
12
- })(CompilerPlatform = exports.CompilerPlatform || (exports.CompilerPlatform = {}));
13
- var DistSource;
14
- (function (DistSource) {
15
- DistSource["Dev"] = "amxxdrop";
16
- DistSource["Release"] = "release";
17
- })(DistSource = exports.DistSource || (exports.DistSource = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DistSource = exports.CompilerPlatform = void 0;
4
+ var CompilerPlatform;
5
+ (function (CompilerPlatform) {
6
+ CompilerPlatform["Windows"] = "windows";
7
+ CompilerPlatform["Linux"] = "linux";
8
+ CompilerPlatform["Mac"] = "mac";
9
+ })(CompilerPlatform = exports.CompilerPlatform || (exports.CompilerPlatform = {}));
10
+ var DistSource;
11
+ (function (DistSource) {
12
+ DistSource["Dev"] = "amxxdrop";
13
+ DistSource["Release"] = "release";
14
+ })(DistSource = exports.DistSource || (exports.DistSource = {}));
@@ -0,0 +1,3 @@
1
+ import { IDownloadCompilerOptions } from './types';
2
+ declare function downloadCompiler(options: IDownloadCompilerOptions): Promise<void>;
3
+ export default downloadCompiler;
@@ -1,174 +1,151 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
- if (ar || !(i in from)) {
52
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
- ar[i] = from[i];
54
- }
55
- }
56
- return to.concat(ar || Array.prototype.slice.call(from));
57
- };
58
- var __importDefault = (this && this.__importDefault) || function (mod) {
59
- return (mod && mod.__esModule) ? mod : { "default": mod };
60
- };
61
- Object.defineProperty(exports, "__esModule", { value: true });
62
- var fs_1 = __importDefault(require("fs"));
63
- var path_1 = __importDefault(require("path"));
64
- var os_1 = __importDefault(require("os"));
65
- var https_1 = __importDefault(require("https"));
66
- var mkdirp_1 = __importDefault(require("mkdirp"));
67
- var normalize_path_1 = __importDefault(require("normalize-path"));
68
- var decompress_1 = __importDefault(require("decompress"));
69
- var resolvers_1 = require("./resolvers");
70
- var constants_1 = require("./constants");
71
- function downloadDist(dist) {
72
- return __awaiter(this, void 0, void 0, function () {
73
- var downloadDir, fileName, filePath, file;
74
- return __generator(this, function (_a) {
75
- switch (_a.label) {
76
- case 0:
77
- downloadDir = path_1.default.join(os_1.default.tmpdir(), '.amxxpack/downloads');
78
- return [4 /*yield*/, (0, mkdirp_1.default)(downloadDir)];
79
- case 1:
80
- _a.sent();
81
- fileName = (0, resolvers_1.resolveFileName)(dist);
82
- filePath = path_1.default.join(downloadDir, fileName);
83
- file = fs_1.default.createWriteStream(filePath);
84
- return [2 /*return*/, new Promise(function (resolve, reject) {
85
- var source = (0, resolvers_1.resolveSource)(dist);
86
- var url = (0, resolvers_1.resolveUrl)(source, fileName);
87
- console.log('Fetching dist from', url, '...');
88
- var done = function () {
89
- file.close();
90
- resolve({ dist: dist, path: filePath });
91
- };
92
- var cancel = function (err) {
93
- fs_1.default.unlink(filePath, function () { return reject(err); });
94
- };
95
- var request = https_1.default.get(url, function (response) {
96
- if (!response.statusCode || response.statusCode < 200 || response.statusCode >= 300) {
97
- cancel(new Error("HTTP Error: ".concat(response.statusCode)));
98
- return;
99
- }
100
- response.pipe(file);
101
- });
102
- file.on('finish', done);
103
- request.on('error', cancel);
104
- file.on('error', cancel);
105
- })];
106
- }
107
- });
108
- });
109
- }
110
- function extractDist(archivePath, outDir) {
111
- return __awaiter(this, void 0, void 0, function () {
112
- return __generator(this, function (_a) {
113
- switch (_a.label) {
114
- case 0: return [4 /*yield*/, (0, mkdirp_1.default)(outDir)];
115
- case 1:
116
- _a.sent();
117
- return [4 /*yield*/, (0, decompress_1.default)(archivePath, outDir, {
118
- map: function (file) {
119
- var newFile = __assign({}, file);
120
- var filePath = (0, normalize_path_1.default)(newFile.path);
121
- if (filePath.startsWith(constants_1.SCRIPTING_DIR)) {
122
- newFile.path = newFile.path.slice(constants_1.SCRIPTING_DIR.length);
123
- }
124
- return newFile;
125
- },
126
- filter: function (file) {
127
- var filePath = (0, normalize_path_1.default)(file.path);
128
- if (!filePath.startsWith(constants_1.SCRIPTING_DIR)) {
129
- return false;
130
- }
131
- var ext = path_1.default.parse(file.path).ext;
132
- return !constants_1.EXTENSIONS_IGNORE_LIST.includes(ext);
133
- }
134
- })];
135
- case 2:
136
- _a.sent();
137
- return [2 /*return*/];
138
- }
139
- });
140
- });
141
- }
142
- function downloadCompiler(options) {
143
- return __awaiter(this, void 0, void 0, function () {
144
- var version, dev, dists, compilerPath, platform, newDists, _i, newDists_1, dist, distArchive;
145
- return __generator(this, function (_a) {
146
- switch (_a.label) {
147
- case 0:
148
- version = options.version, dev = options.dev, dists = options.dists, compilerPath = options.path;
149
- platform = (0, resolvers_1.resolvePlatform)();
150
- newDists = __spreadArray([], dists, true);
151
- if (!newDists.includes('base')) {
152
- newDists.unshift('base');
153
- }
154
- _i = 0, newDists_1 = newDists;
155
- _a.label = 1;
156
- case 1:
157
- if (!(_i < newDists_1.length)) return [3 /*break*/, 5];
158
- dist = newDists_1[_i];
159
- return [4 /*yield*/, downloadDist({ name: dist, version: version, platform: platform, dev: dev })];
160
- case 2:
161
- distArchive = _a.sent();
162
- return [4 /*yield*/, extractDist(distArchive.path, compilerPath)];
163
- case 3:
164
- _a.sent();
165
- _a.label = 4;
166
- case 4:
167
- _i++;
168
- return [3 /*break*/, 1];
169
- case 5: return [2 /*return*/];
170
- }
171
- });
172
- });
173
- }
174
- exports.default = downloadCompiler;
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
+ if (ar || !(i in from)) {
52
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
+ ar[i] = from[i];
54
+ }
55
+ }
56
+ return to.concat(ar || Array.prototype.slice.call(from));
57
+ };
58
+ var __importDefault = (this && this.__importDefault) || function (mod) {
59
+ return (mod && mod.__esModule) ? mod : { "default": mod };
60
+ };
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ var path_1 = __importDefault(require("path"));
63
+ var mkdirp_1 = __importDefault(require("mkdirp"));
64
+ var normalize_path_1 = __importDefault(require("normalize-path"));
65
+ var decompress_1 = __importDefault(require("decompress"));
66
+ var download_1 = __importDefault(require("../../utils/download"));
67
+ var resolvers_1 = require("./resolvers");
68
+ var config_1 = __importDefault(require("../../config"));
69
+ function downloadDist(dist) {
70
+ return __awaiter(this, void 0, void 0, function () {
71
+ var fileName, filePath, source, url, result;
72
+ return __generator(this, function (_a) {
73
+ switch (_a.label) {
74
+ case 0:
75
+ fileName = (0, resolvers_1.resolveFileName)(dist);
76
+ filePath = path_1.default.join(config_1.default.downloadDir, fileName);
77
+ source = (0, resolvers_1.resolveSource)(dist);
78
+ url = (0, resolvers_1.resolveUrl)(source, fileName);
79
+ return [4 /*yield*/, (0, download_1.default)(url, filePath)];
80
+ case 1:
81
+ result = _a.sent();
82
+ return [2 /*return*/, { dist: dist, path: result.path }];
83
+ }
84
+ });
85
+ });
86
+ }
87
+ function extractDist(archivePath, outDir) {
88
+ return __awaiter(this, void 0, void 0, function () {
89
+ return __generator(this, function (_a) {
90
+ switch (_a.label) {
91
+ case 0: return [4 /*yield*/, (0, mkdirp_1.default)(outDir)];
92
+ case 1:
93
+ _a.sent();
94
+ return [4 /*yield*/, (0, decompress_1.default)(archivePath, outDir, {
95
+ map: function (file) {
96
+ var newFile = __assign({}, file);
97
+ var filePath = (0, normalize_path_1.default)(newFile.path);
98
+ if (filePath.startsWith(config_1.default.scriptingDir)) {
99
+ newFile.path = newFile.path.slice(config_1.default.scriptingDir.length);
100
+ }
101
+ return newFile;
102
+ },
103
+ filter: function (file) {
104
+ var filePath = (0, normalize_path_1.default)(file.path);
105
+ if (!filePath.startsWith(config_1.default.scriptingDir)) {
106
+ return false;
107
+ }
108
+ var ext = path_1.default.parse(file.path).ext;
109
+ return !config_1.default.extensionsIgnoreList.includes(ext);
110
+ }
111
+ })];
112
+ case 2:
113
+ _a.sent();
114
+ return [2 /*return*/];
115
+ }
116
+ });
117
+ });
118
+ }
119
+ function downloadCompiler(options) {
120
+ return __awaiter(this, void 0, void 0, function () {
121
+ var version, dev, dists, compilerPath, platform, newDists, _i, newDists_1, dist, distArchive;
122
+ return __generator(this, function (_a) {
123
+ switch (_a.label) {
124
+ case 0:
125
+ version = options.version, dev = options.dev, dists = options.dists, compilerPath = options.path;
126
+ platform = (0, resolvers_1.resolvePlatform)();
127
+ newDists = __spreadArray([], dists, true);
128
+ if (!newDists.includes('base')) {
129
+ newDists.unshift('base');
130
+ }
131
+ _i = 0, newDists_1 = newDists;
132
+ _a.label = 1;
133
+ case 1:
134
+ if (!(_i < newDists_1.length)) return [3 /*break*/, 5];
135
+ dist = newDists_1[_i];
136
+ return [4 /*yield*/, downloadDist({ name: dist, version: version, platform: platform, dev: dev })];
137
+ case 2:
138
+ distArchive = _a.sent();
139
+ return [4 /*yield*/, extractDist(distArchive.path, compilerPath)];
140
+ case 3:
141
+ _a.sent();
142
+ _a.label = 4;
143
+ case 4:
144
+ _i++;
145
+ return [3 /*break*/, 1];
146
+ case 5: return [2 /*return*/];
147
+ }
148
+ });
149
+ });
150
+ }
151
+ exports.default = downloadCompiler;
@@ -1 +1 @@
1
- export { default } from './downloader';
1
+ export { default } from './downloader';
@@ -1,9 +1,9 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = void 0;
7
- // eslint-disable-next-line no-restricted-exports
8
- var downloader_1 = require("./downloader");
9
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(downloader_1).default; } });
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = void 0;
7
+ // eslint-disable-next-line no-restricted-exports
8
+ var downloader_1 = require("./downloader");
9
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(downloader_1).default; } });
@@ -1,6 +1,6 @@
1
- import { IDist } from './types';
2
- import { CompilerPlatform } from './constants';
3
- export declare function resolveSource({ dev, version }: IDist): string;
4
- export declare function resolveFileName({ name: dist, version, platform }: IDist): string;
5
- export declare function resolvePlatform(): CompilerPlatform;
6
- export declare function resolveUrl(source: string, file: string): string;
1
+ import { CompilerPlatform } from './constants';
2
+ import { IDist } from './types';
3
+ export declare function resolveSource({ dev, version }: IDist): string;
4
+ export declare function resolveFileName({ name: dist, version, platform }: IDist): string;
5
+ export declare function resolvePlatform(): CompilerPlatform;
6
+ export declare function resolveUrl(source: string, file: string): string;