amxxpack 0.1.4 → 1.0.2

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 (61) hide show
  1. package/README.md +26 -21
  2. package/lib/builder/builder.d.ts +2 -3
  3. package/lib/builder/builder.js +20 -41
  4. package/lib/builder/index.d.ts +0 -1
  5. package/lib/builder/index.js +0 -11
  6. package/lib/cli/controller.d.ts +13 -9
  7. package/lib/cli/controller.js +121 -65
  8. package/lib/cli/index.d.ts +2 -1
  9. package/lib/cli/index.js +5 -0
  10. package/lib/cli/program.js +76 -20
  11. package/lib/cli/services/project-creator.d.ts +21 -0
  12. package/lib/cli/services/project-creator.js +292 -0
  13. package/lib/cli/services/template-builder.d.ts +11 -0
  14. package/lib/cli/services/template-builder.js +104 -0
  15. package/lib/cli/types.d.ts +12 -0
  16. package/lib/{builder → cli}/types.js +0 -0
  17. package/lib/config/index.d.ts +8 -0
  18. package/lib/config/index.js +14 -0
  19. package/lib/downloaders/compiler/constants.d.ts +9 -0
  20. package/lib/{compiler-downloader → downloaders/compiler}/constants.js +1 -4
  21. package/lib/downloaders/compiler/downloader.d.ts +3 -0
  22. package/lib/{compiler-downloader → downloaders/compiler}/downloader.js +14 -37
  23. package/lib/{compiler-downloader → downloaders/compiler}/index.d.ts +0 -0
  24. package/lib/{compiler-downloader → downloaders/compiler}/index.js +0 -0
  25. package/lib/{compiler-downloader → downloaders/compiler}/resolvers.d.ts +1 -1
  26. package/lib/{compiler-downloader → downloaders/compiler}/resolvers.js +2 -1
  27. package/lib/{compiler-downloader → downloaders/compiler}/types.d.ts +0 -0
  28. package/lib/{compiler-downloader → downloaders/compiler}/types.js +0 -0
  29. package/lib/downloaders/thirdparty/downloader.d.ts +3 -0
  30. package/lib/downloaders/thirdparty/downloader.js +69 -0
  31. package/lib/downloaders/thirdparty/index.d.ts +1 -0
  32. package/lib/downloaders/thirdparty/index.js +9 -0
  33. package/lib/downloaders/thirdparty/types.d.ts +5 -0
  34. package/lib/downloaders/thirdparty/types.js +2 -0
  35. package/lib/logger/constants.d.ts +7 -0
  36. package/lib/logger/constants.js +12 -0
  37. package/lib/{services → logger}/logger.d.ts +5 -11
  38. package/lib/{services → logger}/logger.js +17 -25
  39. package/lib/logger/types.d.ts +3 -0
  40. package/lib/logger/types.js +2 -0
  41. package/lib/project-config/defaults.d.ts +3 -0
  42. package/lib/project-config/defaults.js +38 -0
  43. package/lib/project-config/index.d.ts +6 -0
  44. package/lib/project-config/index.js +8 -0
  45. package/lib/project-config/resolve.d.ts +3 -0
  46. package/lib/project-config/resolve.js +110 -0
  47. package/lib/types/index.d.ts +45 -0
  48. package/lib/types/index.js +2 -0
  49. package/lib/utils/accumulator.d.ts +2 -1
  50. package/lib/utils/download.d.ts +6 -0
  51. package/lib/utils/download.js +63 -0
  52. package/package.json +7 -1
  53. package/resources/templates/include-directive.txt +1 -0
  54. package/resources/templates/include.txt +5 -0
  55. package/resources/templates/library-include.txt +6 -0
  56. package/resources/templates/library-script.txt +10 -0
  57. package/resources/templates/script.txt +5 -0
  58. package/lib/builder/types.d.ts +0 -20
  59. package/lib/compiler-downloader/constants.d.ts +0 -12
  60. package/lib/compiler-downloader/downloader.d.ts +0 -2
  61. package/resources/default-config.json +0 -22
@@ -59,50 +59,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
59
59
  return (mod && mod.__esModule) ? mod : { "default": mod };
60
60
  };
61
61
  Object.defineProperty(exports, "__esModule", { value: true });
62
- var fs_1 = __importDefault(require("fs"));
63
62
  var path_1 = __importDefault(require("path"));
64
- var os_1 = __importDefault(require("os"));
65
- var https_1 = __importDefault(require("https"));
66
63
  var mkdirp_1 = __importDefault(require("mkdirp"));
67
64
  var normalize_path_1 = __importDefault(require("normalize-path"));
68
65
  var decompress_1 = __importDefault(require("decompress"));
66
+ var download_1 = __importDefault(require("../../utils/download"));
69
67
  var resolvers_1 = require("./resolvers");
70
- var constants_1 = require("./constants");
68
+ var config_1 = __importDefault(require("../../config"));
71
69
  function downloadDist(dist) {
72
70
  return __awaiter(this, void 0, void 0, function () {
73
- var downloadDir, fileName, filePath, file;
71
+ var fileName, filePath, source, url, result;
74
72
  return __generator(this, function (_a) {
75
73
  switch (_a.label) {
76
74
  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
75
  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
- })];
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 }];
106
83
  }
107
84
  });
108
85
  });
@@ -118,18 +95,18 @@ function extractDist(archivePath, outDir) {
118
95
  map: function (file) {
119
96
  var newFile = __assign({}, file);
120
97
  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);
98
+ if (filePath.startsWith(config_1.default.scriptingDir)) {
99
+ newFile.path = newFile.path.slice(config_1.default.scriptingDir.length);
123
100
  }
124
101
  return newFile;
125
102
  },
126
103
  filter: function (file) {
127
104
  var filePath = (0, normalize_path_1.default)(file.path);
128
- if (!filePath.startsWith(constants_1.SCRIPTING_DIR)) {
105
+ if (!filePath.startsWith(config_1.default.scriptingDir)) {
129
106
  return false;
130
107
  }
131
108
  var ext = path_1.default.parse(file.path).ext;
132
- return !constants_1.EXTENSIONS_IGNORE_LIST.includes(ext);
109
+ return !config_1.default.extensionsIgnoreList.includes(ext);
133
110
  }
134
111
  })];
135
112
  case 2:
@@ -1,5 +1,5 @@
1
- import { IDist } from './types';
2
1
  import { CompilerPlatform } from './constants';
2
+ import { IDist } from './types';
3
3
  export declare function resolveSource({ dev, version }: IDist): string;
4
4
  export declare function resolveFileName({ name: dist, version, platform }: IDist): string;
5
5
  export declare function resolvePlatform(): CompilerPlatform;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.resolveUrl = exports.resolvePlatform = exports.resolveFileName = exports.resolveSource = void 0;
7
7
  var os_1 = __importDefault(require("os"));
8
8
  var constants_1 = require("./constants");
9
+ var config_1 = __importDefault(require("../../config"));
9
10
  function resolveSource(_a) {
10
11
  var dev = _a.dev, version = _a.version;
11
12
  var urlPath = [
@@ -34,6 +35,6 @@ function resolvePlatform() {
34
35
  }
35
36
  exports.resolvePlatform = resolvePlatform;
36
37
  function resolveUrl(source, file) {
37
- return "".concat(constants_1.DOWNLOAD_HOST, "/").concat(source, "/").concat(file);
38
+ return "".concat(config_1.default.downloadHost, "/").concat(source, "/").concat(file);
38
39
  }
39
40
  exports.resolveUrl = resolveUrl;
@@ -0,0 +1,3 @@
1
+ import { IDownloadThirdpartyOptions } from './types';
2
+ declare function downloadThirdparty(options: IDownloadThirdpartyOptions): Promise<void>;
3
+ export default downloadThirdparty;
@@ -0,0 +1,69 @@
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 path_1 = __importDefault(require("path"));
43
+ var mkdirp_1 = __importDefault(require("mkdirp"));
44
+ var decompress_1 = __importDefault(require("decompress"));
45
+ var download_1 = __importDefault(require("../../utils/download"));
46
+ var config_1 = __importDefault(require("../../config"));
47
+ function downloadThirdparty(options) {
48
+ return __awaiter(this, void 0, void 0, function () {
49
+ var filePath, outDir;
50
+ return __generator(this, function (_a) {
51
+ switch (_a.label) {
52
+ case 0:
53
+ filePath = path_1.default.join(config_1.default.downloadDir, options.name);
54
+ return [4 /*yield*/, (0, download_1.default)(options.url, filePath)];
55
+ case 1:
56
+ _a.sent();
57
+ outDir = path_1.default.join(options.dir, options.name);
58
+ return [4 /*yield*/, (0, mkdirp_1.default)(outDir)];
59
+ case 2:
60
+ _a.sent();
61
+ return [4 /*yield*/, (0, decompress_1.default)(filePath, outDir)];
62
+ case 3:
63
+ _a.sent();
64
+ return [2 /*return*/];
65
+ }
66
+ });
67
+ });
68
+ }
69
+ exports.default = downloadThirdparty;
@@ -0,0 +1 @@
1
+ export { default } from './downloader';
@@ -0,0 +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; } });
@@ -0,0 +1,5 @@
1
+ export interface IDownloadThirdpartyOptions {
2
+ name: string;
3
+ url: string;
4
+ dir: string;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ export declare enum LogLevel {
2
+ Debug = "debug",
3
+ Success = "success",
4
+ Info = "info",
5
+ Warning = "warning",
6
+ Error = "error"
7
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogLevel = void 0;
4
+ // eslint-disable-next-line import/prefer-default-export
5
+ var LogLevel;
6
+ (function (LogLevel) {
7
+ LogLevel["Debug"] = "debug";
8
+ LogLevel["Success"] = "success";
9
+ LogLevel["Info"] = "info";
10
+ LogLevel["Warning"] = "warning";
11
+ LogLevel["Error"] = "error";
12
+ })(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
@@ -1,14 +1,6 @@
1
- export interface ILoggerOptions {
2
- debug?: boolean;
3
- }
4
- export declare enum LogLevel {
5
- Debug = "debug",
6
- Success = "success",
7
- Info = "info",
8
- Warning = "warning",
9
- Error = "error"
10
- }
11
- export default class Logger {
1
+ import { ILoggerOptions } from './types';
2
+ import { LogLevel } from './constants';
3
+ declare class Logger {
12
4
  private debugMode;
13
5
  constructor(options?: ILoggerOptions);
14
6
  debug(...args: any[]): void;
@@ -20,3 +12,5 @@ export default class Logger {
20
12
  private colorifyMessageByLevel;
21
13
  private getLevelLabel;
22
14
  }
15
+ declare const _default: Logger;
16
+ export default _default;
@@ -12,16 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.LogLevel = void 0;
16
15
  var safe_1 = __importDefault(require("colors/safe"));
17
- var LogLevel;
18
- (function (LogLevel) {
19
- LogLevel["Debug"] = "debug";
20
- LogLevel["Success"] = "success";
21
- LogLevel["Info"] = "info";
22
- LogLevel["Warning"] = "warning";
23
- LogLevel["Error"] = "error";
24
- })(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
16
+ var constants_1 = require("./constants");
25
17
  var Logger = /** @class */ (function () {
26
18
  function Logger(options) {
27
19
  if (options === void 0) { options = {}; }
@@ -33,35 +25,35 @@ var Logger = /** @class */ (function () {
33
25
  for (var _i = 0; _i < arguments.length; _i++) {
34
26
  args[_i] = arguments[_i];
35
27
  }
36
- this.out.apply(this, __spreadArray([LogLevel.Debug], args, false));
28
+ this.out.apply(this, __spreadArray([constants_1.LogLevel.Debug], args, false));
37
29
  };
38
30
  Logger.prototype.success = function () {
39
31
  var args = [];
40
32
  for (var _i = 0; _i < arguments.length; _i++) {
41
33
  args[_i] = arguments[_i];
42
34
  }
43
- this.out.apply(this, __spreadArray([LogLevel.Success], args, false));
35
+ this.out.apply(this, __spreadArray([constants_1.LogLevel.Success], args, false));
44
36
  };
45
37
  Logger.prototype.info = function () {
46
38
  var args = [];
47
39
  for (var _i = 0; _i < arguments.length; _i++) {
48
40
  args[_i] = arguments[_i];
49
41
  }
50
- this.out.apply(this, __spreadArray([LogLevel.Info], args, false));
42
+ this.out.apply(this, __spreadArray([constants_1.LogLevel.Info], args, false));
51
43
  };
52
44
  Logger.prototype.warn = function () {
53
45
  var args = [];
54
46
  for (var _i = 0; _i < arguments.length; _i++) {
55
47
  args[_i] = arguments[_i];
56
48
  }
57
- this.out.apply(this, __spreadArray([LogLevel.Warning], args, false));
49
+ this.out.apply(this, __spreadArray([constants_1.LogLevel.Warning], args, false));
58
50
  };
59
51
  Logger.prototype.error = function () {
60
52
  var args = [];
61
53
  for (var _i = 0; _i < arguments.length; _i++) {
62
54
  args[_i] = arguments[_i];
63
55
  }
64
- this.out.apply(this, __spreadArray([LogLevel.Error], args, false));
56
+ this.out.apply(this, __spreadArray([constants_1.LogLevel.Error], args, false));
65
57
  };
66
58
  Logger.prototype.out = function (level) {
67
59
  var args = [];
@@ -81,24 +73,24 @@ var Logger = /** @class */ (function () {
81
73
  };
82
74
  Logger.prototype.colorifyMessageByLevel = function (level, message) {
83
75
  switch (level) {
84
- case LogLevel.Debug: return safe_1.default.grey(message);
85
- case LogLevel.Success: return safe_1.default.white(message);
86
- case LogLevel.Info: return safe_1.default.grey(message);
87
- case LogLevel.Warning: return safe_1.default.white(message);
88
- case LogLevel.Error: return safe_1.default.white(message);
76
+ case constants_1.LogLevel.Debug: return safe_1.default.grey(message);
77
+ case constants_1.LogLevel.Success: return safe_1.default.white(message);
78
+ case constants_1.LogLevel.Info: return safe_1.default.grey(message);
79
+ case constants_1.LogLevel.Warning: return safe_1.default.white(message);
80
+ case constants_1.LogLevel.Error: return safe_1.default.white(message);
89
81
  }
90
82
  return message;
91
83
  };
92
84
  Logger.prototype.getLevelLabel = function (level) {
93
85
  switch (level) {
94
- case LogLevel.Debug: return safe_1.default.grey('[DEBUG]');
95
- case LogLevel.Success: return safe_1.default.green('[SUCCESS]');
96
- case LogLevel.Info: return safe_1.default.cyan('[INFO]');
97
- case LogLevel.Warning: return safe_1.default.yellow('[WARNING]');
98
- case LogLevel.Error: return safe_1.default.red('[ERROR]');
86
+ case constants_1.LogLevel.Debug: return safe_1.default.grey('[DEBUG]');
87
+ case constants_1.LogLevel.Success: return safe_1.default.green('[SUCCESS]');
88
+ case constants_1.LogLevel.Info: return safe_1.default.cyan('[INFO]');
89
+ case constants_1.LogLevel.Warning: return safe_1.default.yellow('[WARNING]');
90
+ case constants_1.LogLevel.Error: return safe_1.default.red('[ERROR]');
99
91
  }
100
92
  return '';
101
93
  };
102
94
  return Logger;
103
95
  }());
104
- exports.default = Logger;
96
+ exports.default = new Logger();
@@ -0,0 +1,3 @@
1
+ export interface ILoggerOptions {
2
+ debug?: boolean;
3
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ import { IProjectConfig } from '../types';
2
+ declare const _default: IProjectConfig;
3
+ export default _default;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ input: {
5
+ scripts: './src/scripts',
6
+ include: './src/include',
7
+ assets: './assets',
8
+ },
9
+ output: {
10
+ scripts: './dist/addons/amxmodx/scripting',
11
+ plugins: './dist/addons/amxmodx/plugins',
12
+ include: './dist/addons/amxmodx/scripting/include',
13
+ assets: './dist'
14
+ },
15
+ compiler: {
16
+ dir: './.compiler',
17
+ version: '1.8.2',
18
+ dev: false,
19
+ addons: [],
20
+ executable: 'amxxpc'
21
+ },
22
+ thirdparty: {
23
+ dir: './.thirdparty',
24
+ dependencies: []
25
+ },
26
+ include: [],
27
+ rules: {
28
+ flatCompilation: true
29
+ },
30
+ cli: {
31
+ templates: {
32
+ context: {
33
+ PLUGIN_VERSION: '1.0.0',
34
+ PLUGIN_AUTHOR: 'AMXXPack'
35
+ }
36
+ }
37
+ }
38
+ };
@@ -0,0 +1,6 @@
1
+ import resolve from './resolve';
2
+ declare const _default: {
3
+ resolve: typeof resolve;
4
+ defaults: import("../types").IProjectConfig;
5
+ };
6
+ export default _default;
@@ -0,0 +1,8 @@
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 defaults_1 = __importDefault(require("./defaults"));
7
+ var resolve_1 = __importDefault(require("./resolve"));
8
+ exports.default = { resolve: resolve_1.default, defaults: defaults_1.default };
@@ -0,0 +1,3 @@
1
+ import { IProjectConfig } from '../types';
2
+ declare function resolve(_configPath: string): Promise<IProjectConfig>;
3
+ export default resolve;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ var __generator = (this && this.__generator) || function (thisArg, body) {
31
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
32
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
33
+ function verb(n) { return function (v) { return step([n, v]); }; }
34
+ function step(op) {
35
+ if (f) throw new TypeError("Generator is already executing.");
36
+ while (_) try {
37
+ 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;
38
+ if (y = 0, t) op = [op[0] & 2, t.value];
39
+ switch (op[0]) {
40
+ case 0: case 1: t = op; break;
41
+ case 4: _.label++; return { value: op[1], done: false };
42
+ case 5: _.label++; y = op[1]; op = [0]; continue;
43
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
44
+ default:
45
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
46
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
47
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
48
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
49
+ if (t[2]) _.ops.pop();
50
+ _.trys.pop(); continue;
51
+ }
52
+ op = body.call(thisArg, _);
53
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
54
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
55
+ }
56
+ };
57
+ var __importDefault = (this && this.__importDefault) || function (mod) {
58
+ return (mod && mod.__esModule) ? mod : { "default": mod };
59
+ };
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ var lodash_1 = require("lodash");
62
+ var path_1 = __importDefault(require("path"));
63
+ var fs_1 = __importDefault(require("fs"));
64
+ var logger_1 = __importDefault(require("../logger/logger"));
65
+ var defaults_1 = __importDefault(require("./defaults"));
66
+ function resolve(_configPath) {
67
+ return __awaiter(this, void 0, void 0, function () {
68
+ var configPath, userConfig, config;
69
+ return __generator(this, function (_a) {
70
+ switch (_a.label) {
71
+ case 0:
72
+ configPath = path_1.default.resolve(_configPath);
73
+ userConfig = null;
74
+ if (!fs_1.default.existsSync(configPath)) return [3 /*break*/, 2];
75
+ return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require(configPath)); })];
76
+ case 1:
77
+ userConfig = _a.sent();
78
+ return [3 /*break*/, 3];
79
+ case 2:
80
+ logger_1.default.error('Cannot read config file!');
81
+ _a.label = 3;
82
+ case 3:
83
+ config = (0, lodash_1.merge)({}, defaults_1.default, userConfig);
84
+ // resolve paths
85
+ (0, lodash_1.merge)(config, {
86
+ input: {
87
+ scripts: path_1.default.resolve(config.input.scripts),
88
+ include: path_1.default.resolve(config.input.include),
89
+ assets: path_1.default.resolve(config.input.assets),
90
+ },
91
+ output: {
92
+ scripts: path_1.default.resolve(config.output.scripts),
93
+ plugins: path_1.default.resolve(config.output.plugins),
94
+ include: path_1.default.resolve(config.output.include),
95
+ assets: path_1.default.resolve(config.output.assets)
96
+ },
97
+ include: (0, lodash_1.map)(config.include, function (include) { return path_1.default.resolve(include); }),
98
+ compiler: {
99
+ dir: path_1.default.resolve(config.compiler.dir),
100
+ },
101
+ thirdparty: {
102
+ dir: path_1.default.resolve(config.thirdparty.dir)
103
+ }
104
+ });
105
+ return [2 /*return*/, config];
106
+ }
107
+ });
108
+ });
109
+ }
110
+ exports.default = resolve;
@@ -0,0 +1,45 @@
1
+ export interface IProjectConfig {
2
+ input: {
3
+ scripts: string;
4
+ include: string;
5
+ assets: string;
6
+ };
7
+ output: {
8
+ scripts: string;
9
+ plugins: string;
10
+ include: string;
11
+ assets: string;
12
+ };
13
+ compiler: {
14
+ dir: string;
15
+ version: string;
16
+ addons: [];
17
+ dev: boolean;
18
+ executable: string;
19
+ };
20
+ thirdparty: {
21
+ dir: string;
22
+ dependencies: {
23
+ name: string;
24
+ url: string;
25
+ }[];
26
+ };
27
+ include: string[];
28
+ rules: {
29
+ flatCompilation: boolean;
30
+ };
31
+ cli: {
32
+ templates: {
33
+ context: {
34
+ [key: string]: string;
35
+ };
36
+ files?: {
37
+ includeDirective?: string;
38
+ include?: string;
39
+ libraryInclude?: string;
40
+ libraryScript?: string;
41
+ script?: string;
42
+ };
43
+ };
44
+ };
45
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1,2 @@
1
- export default function accumulator(): (data?: string | undefined) => string;
1
+ declare function accumulator(): (data?: string) => string;
2
+ export default accumulator;
@@ -0,0 +1,6 @@
1
+ interface IDownloadResult {
2
+ url: string;
3
+ path: string;
4
+ }
5
+ declare function download(url: string, filePath: string): Promise<IDownloadResult>;
6
+ export default download;