@dcl/sdk 7.0.6-4086929545.commit-0292186 → 7.0.6-4087883663.commit-054d424

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.
@@ -18,8 +18,4 @@ export declare const needsDependencies: (components: {
18
18
  }, dir: string) => Promise<boolean>;
19
19
  export declare const npm: string;
20
20
  export declare function installDependencies(dir: string): Promise<void>;
21
- export declare const buildTypescript: ({ dir, watch, production }: {
22
- dir: string;
23
- watch: boolean;
24
- production: boolean;
25
- }) => Promise<void>;
21
+ export declare function npmRun(cwd: string, command: string, ...args: string[]): Promise<void>;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildTypescript = exports.installDependencies = exports.npm = exports.needsDependencies = exports.validatePackageJson = exports.validateProjectStructure = exports.getProjectStructure = exports.REQUIRED_PACKAGE_JSON = exports.REQUIRED_FILES = void 0;
3
+ exports.npmRun = exports.installDependencies = exports.npm = exports.needsDependencies = exports.validatePackageJson = exports.validateProjectStructure = exports.getProjectStructure = exports.REQUIRED_PACKAGE_JSON = exports.REQUIRED_FILES = void 0;
4
4
  const path_1 = require("path");
5
5
  const exec_1 = require("../../utils/exec");
6
+ const log_1 = require("../../utils/log");
6
7
  const object_1 = require("../../utils/object");
7
8
  exports.REQUIRED_FILES = {
8
9
  PACKAGE_JSON: 'package.json',
@@ -37,14 +38,13 @@ const needsDependencies = async (components, dir) => {
37
38
  exports.needsDependencies = needsDependencies;
38
39
  exports.npm = /^win/.test(process.platform) ? 'npm.cmd' : 'npm';
39
40
  async function installDependencies(dir) {
40
- await (0, exec_1.exec)(dir, `${exports.npm} install`);
41
+ (0, log_1.info)('Installing dependencies...');
42
+ await (0, exec_1.exec)(dir, exports.npm, ['install']);
43
+ (0, log_1.succeed)('Dependencies installed');
41
44
  }
42
45
  exports.installDependencies = installDependencies;
43
- const buildTypescript = async ({ dir, watch, production }) => {
44
- const command = watch ? 'watch' : 'build';
45
- await (0, exec_1.exec)(dir, `${exports.npm} run ${command}`, {
46
- env: { NODE_ENV: production ? 'production' : '' }
47
- });
48
- };
49
- exports.buildTypescript = buildTypescript;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQThCO0FBRzlCLDJDQUF1QztBQUN2QywrQ0FBMkQ7QUFLOUMsUUFBQSxjQUFjLEdBQUc7SUFDNUIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsY0FBYyxFQUFFLGVBQWU7SUFDL0IsVUFBVSxFQUFFLFlBQVk7Q0FDekIsQ0FBQTtBQUtZLFFBQUEscUJBQXFCLEdBQUcsRUFBRSxDQUFBO0FBS2hDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBYyxDQUFDLENBQUE7QUFBekQsUUFBQSxtQkFBbUIsdUJBQXNDO0FBSy9ELE1BQU0sd0JBQXdCLEdBQUcsS0FBSyxFQUMzQyxVQUF3QyxFQUN4QyxHQUFXLEVBQ1gsUUFBa0IsRUFDQSxFQUFFO0lBQ3BCLE1BQU0sS0FBSyxHQUFHLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDOUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDL0QsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9CLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDL0I7S0FDRjtJQUVELE9BQU8sYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUE7QUFDakMsQ0FBQyxDQUFBO0FBZlksUUFBQSx3QkFBd0IsNEJBZXBDO0FBS00sTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQ3RDLFVBQXdDLEVBQ3hDLEdBQVcsRUFDWCxJQUFVLEVBQ1EsRUFBRTtJQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBQSxjQUFPLEVBQUMsR0FBRyxFQUFFLHNCQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNoSCxPQUFPLElBQUEseUJBQWdCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQzVDLENBQUMsQ0FBQTtBQVBZLFFBQUEsbUJBQW1CLHVCQU8vQjtBQUtNLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLFVBQXdDLEVBQUUsR0FBVyxFQUFvQixFQUFFO0lBQ2pILE1BQU0sZUFBZSxHQUFHLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNwRCxNQUFNLG9CQUFvQixHQUFHLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0UsTUFBTSxrQkFBa0IsR0FBRyxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFBO0lBRTlHLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxrQkFBa0IsQ0FBQTtBQUNwRCxDQUFDLENBQUE7QUFOWSxRQUFBLGlCQUFpQixxQkFNN0I7QUFHWSxRQUFBLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFLN0QsS0FBSyxVQUFVLG1CQUFtQixDQUFDLEdBQVc7SUFDbkQsTUFBTSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsR0FBRyxXQUFHLFVBQVUsQ0FBQyxDQUFBO0FBQ25DLENBQUM7QUFGRCxrREFFQztBQUtNLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxFQUNwQyxHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFLWCxFQUFpQixFQUFFO0lBQ2xCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUE7SUFDekMsTUFBTSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsR0FBRyxXQUFHLFFBQVEsT0FBTyxFQUFFLEVBQUU7UUFDdkMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7S0FDbEQsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBYlksUUFBQSxlQUFlLG1CQWEzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgeyBJRmlsZVN5c3RlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZnMnXG5pbXBvcnQgeyBleGVjIH0gZnJvbSAnLi4vLi4vdXRpbHMvZXhlYydcbmltcG9ydCB7IERpY3QsIGhhc1ByaW1pdGl2ZUtleXMgfSBmcm9tICcuLi8uLi91dGlscy9vYmplY3QnXG5cbi8qKlxuICogUmVxdWlyZWQgcHJvamVjdCBkaXJzL2ZpbGVzXG4gKi9cbmV4cG9ydCBjb25zdCBSRVFVSVJFRF9GSUxFUyA9IHtcbiAgUEFDS0FHRV9KU09OOiAncGFja2FnZS5qc29uJyxcbiAgVFNfQ09ORklHX0pTT046ICd0c2NvbmZpZy5qc29uJyxcbiAgU0NFTkVfSlNPTjogJ3NjZW5lLmpzb24nXG59XG5cbi8qKlxuICogUmVxdWlyZWQgXCJwYWNrYWdlLmpzb25cIiBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1BBQ0tBR0VfSlNPTiA9IHt9XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcmVxdWlyZWQgZmlsZXMgZm9yIGEgcHJvamVjdFxuICovXG5leHBvcnQgY29uc3QgZ2V0UHJvamVjdFN0cnVjdHVyZSA9ICgpID0+IE9iamVjdC52YWx1ZXMoUkVRVUlSRURfRklMRVMpXG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9qZWN0IGZvbGxvd3MgYSB2YWxpZCBzY2VuZSBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUHJvamVjdFN0cnVjdHVyZSA9IGFzeW5jIChcbiAgY29tcG9uZW50czogeyBmczogSUZpbGVTeXN0ZW1Db21wb25lbnQgfSxcbiAgZGlyOiBzdHJpbmcsXG4gIGZpbGVMaXN0OiBzdHJpbmdbXVxuKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKGRpcilcbiAgY29uc3QgcmVxdWlyZWRGaWxlcyA9IG5ldyBTZXQoZmlsZUxpc3QpXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGggJiYgcmVxdWlyZWRGaWxlcy5zaXplID4gMDsgaSsrKSB7XG4gICAgaWYgKHJlcXVpcmVkRmlsZXMuaGFzKGZpbGVzW2ldKSkge1xuICAgICAgcmVxdWlyZWRGaWxlcy5kZWxldGUoZmlsZXNbaV0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVpcmVkRmlsZXMuc2l6ZSA9PT0gMFxufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvamVjdCdzIFwicGFja2FnZS5qc29uXCIgaXMgdmFsaWRcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUGFja2FnZUpzb24gPSBhc3luYyAoXG4gIGNvbXBvbmVudHM6IHsgZnM6IElGaWxlU3lzdGVtQ29tcG9uZW50IH0sXG4gIGRpcjogc3RyaW5nLFxuICBkZXBzOiBEaWN0XG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKGF3YWl0IGNvbXBvbmVudHMuZnMucmVhZEZpbGUocmVzb2x2ZShkaXIsIFJFUVVJUkVEX0ZJTEVTLlBBQ0tBR0VfSlNPTiksICd1dGYtOCcpKVxuICByZXR1cm4gaGFzUHJpbWl0aXZlS2V5cyhwYWNrYWdlSnNvbiwgZGVwcylcbn1cblxuLypcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvamVjdCBjb250YWlucyBhbiBlbXB0eSBub2RlX21vZHVsZXMgZm9sZGVyXG4gKi9cbmV4cG9ydCBjb25zdCBuZWVkc0RlcGVuZGVuY2llcyA9IGFzeW5jIChjb21wb25lbnRzOiB7IGZzOiBJRmlsZVN5c3RlbUNvbXBvbmVudCB9LCBkaXI6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBub2RlTW9kdWxlc1BhdGggPSByZXNvbHZlKGRpciwgJ25vZGVfbW9kdWxlcycpXG4gIGNvbnN0IGhhc05vZGVNb2R1bGVzRm9sZGVyID0gYXdhaXQgY29tcG9uZW50cy5mcy5leGlzdFBhdGgobm9kZU1vZHVsZXNQYXRoKVxuICBjb25zdCBpc05vZGVNb2R1bGVzRW1wdHkgPSBoYXNOb2RlTW9kdWxlc0ZvbGRlciAmJiAoYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKG5vZGVNb2R1bGVzUGF0aCkpLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiAhaGFzTm9kZU1vZHVsZXNGb2xkZXIgfHwgaXNOb2RlTW9kdWxlc0VtcHR5XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgbnBtID0gL153aW4vLnRlc3QocHJvY2Vzcy5wbGF0Zm9ybSkgPyAnbnBtLmNtZCcgOiAnbnBtJ1xuXG4vKlxuICogUnVucyBcIm5wbSBpbnN0YWxsXCIgZm9yIGRlc2lyZWQgcHJvamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llcyhkaXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjKGRpciwgYCR7bnBtfSBpbnN0YWxsYClcbn1cblxuLyoqXG4gKiBCdWlsZCdzIFR5cGVzY3JpcHQgdXNpbmcgXCJ0c2NvbmZpZy5qc29uXCIgZmlsZVxuICovXG5leHBvcnQgY29uc3QgYnVpbGRUeXBlc2NyaXB0ID0gYXN5bmMgKHtcbiAgZGlyLFxuICB3YXRjaCxcbiAgcHJvZHVjdGlvblxufToge1xuICBkaXI6IHN0cmluZ1xuICB3YXRjaDogYm9vbGVhblxuICBwcm9kdWN0aW9uOiBib29sZWFuXG59KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IGNvbW1hbmQgPSB3YXRjaCA/ICd3YXRjaCcgOiAnYnVpbGQnXG4gIGF3YWl0IGV4ZWMoZGlyLCBgJHtucG19IHJ1biAke2NvbW1hbmR9YCwge1xuICAgIGVudjogeyBOT0RFX0VOVjogcHJvZHVjdGlvbiA/ICdwcm9kdWN0aW9uJyA6ICcnIH1cbiAgfSlcbn1cbiJdfQ==
46
+ async function npmRun(cwd, command, ...args) {
47
+ await (0, exec_1.exec)(cwd, exports.npm, ['run', command, '--silent', '--', ...args], { env: process.env });
48
+ }
49
+ exports.npmRun = npmRun;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQThCO0FBRzlCLDJDQUF1QztBQUN2Qyx5Q0FBK0M7QUFDL0MsK0NBQTJEO0FBSzlDLFFBQUEsY0FBYyxHQUFHO0lBQzVCLFlBQVksRUFBRSxjQUFjO0lBQzVCLGNBQWMsRUFBRSxlQUFlO0lBQy9CLFVBQVUsRUFBRSxZQUFZO0NBQ3pCLENBQUE7QUFLWSxRQUFBLHFCQUFxQixHQUFHLEVBQUUsQ0FBQTtBQUtoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsc0JBQWMsQ0FBQyxDQUFBO0FBQXpELFFBQUEsbUJBQW1CLHVCQUFzQztBQUsvRCxNQUFNLHdCQUF3QixHQUFHLEtBQUssRUFDM0MsVUFBd0MsRUFDeEMsR0FBVyxFQUNYLFFBQWtCLEVBQ0EsRUFBRTtJQUNwQixNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzlDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQy9ELElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQixhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQy9CO0tBQ0Y7SUFFRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFBO0FBQ2pDLENBQUMsQ0FBQTtBQWZZLFFBQUEsd0JBQXdCLDRCQWVwQztBQUtNLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxFQUN0QyxVQUF3QyxFQUN4QyxHQUFXLEVBQ1gsSUFBVSxFQUNRLEVBQUU7SUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxzQkFBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDaEgsT0FBTyxJQUFBLHlCQUFnQixFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUM1QyxDQUFDLENBQUE7QUFQWSxRQUFBLG1CQUFtQix1QkFPL0I7QUFLTSxNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxVQUF3QyxFQUFFLEdBQVcsRUFBb0IsRUFBRTtJQUNqSCxNQUFNLGVBQWUsR0FBRyxJQUFBLGNBQU8sRUFBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDcEQsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQzNFLE1BQU0sa0JBQWtCLEdBQUcsb0JBQW9CLElBQUksQ0FBQyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQTtJQUU5RyxPQUFPLENBQUMsb0JBQW9CLElBQUksa0JBQWtCLENBQUE7QUFDcEQsQ0FBQyxDQUFBO0FBTlksUUFBQSxpQkFBaUIscUJBTTdCO0FBR1ksUUFBQSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBSzdELEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxHQUFXO0lBQ25ELElBQUEsVUFBSSxFQUFDLDRCQUE0QixDQUFDLENBQUE7SUFFbEMsTUFBTSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsV0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtJQUNqQyxJQUFBLGFBQU8sRUFBQyx3QkFBd0IsQ0FBQyxDQUFBO0FBQ25DLENBQUM7QUFMRCxrREFLQztBQUtNLEtBQUssVUFBVSxNQUFNLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxHQUFHLElBQWM7SUFFMUUsTUFBTSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsV0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQVUsRUFBRSxDQUFDLENBQUE7QUFDaEcsQ0FBQztBQUhELHdCQUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnXG5cbmltcG9ydCB7IElGaWxlU3lzdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9mcydcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICcuLi8uLi91dGlscy9leGVjJ1xuaW1wb3J0IHsgaW5mbywgc3VjY2VlZCB9IGZyb20gJy4uLy4uL3V0aWxzL2xvZydcbmltcG9ydCB7IERpY3QsIGhhc1ByaW1pdGl2ZUtleXMgfSBmcm9tICcuLi8uLi91dGlscy9vYmplY3QnXG5cbi8qKlxuICogUmVxdWlyZWQgcHJvamVjdCBkaXJzL2ZpbGVzXG4gKi9cbmV4cG9ydCBjb25zdCBSRVFVSVJFRF9GSUxFUyA9IHtcbiAgUEFDS0FHRV9KU09OOiAncGFja2FnZS5qc29uJyxcbiAgVFNfQ09ORklHX0pTT046ICd0c2NvbmZpZy5qc29uJyxcbiAgU0NFTkVfSlNPTjogJ3NjZW5lLmpzb24nXG59XG5cbi8qKlxuICogUmVxdWlyZWQgXCJwYWNrYWdlLmpzb25cIiBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1BBQ0tBR0VfSlNPTiA9IHt9XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcmVxdWlyZWQgZmlsZXMgZm9yIGEgcHJvamVjdFxuICovXG5leHBvcnQgY29uc3QgZ2V0UHJvamVjdFN0cnVjdHVyZSA9ICgpID0+IE9iamVjdC52YWx1ZXMoUkVRVUlSRURfRklMRVMpXG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9qZWN0IGZvbGxvd3MgYSB2YWxpZCBzY2VuZSBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUHJvamVjdFN0cnVjdHVyZSA9IGFzeW5jIChcbiAgY29tcG9uZW50czogeyBmczogSUZpbGVTeXN0ZW1Db21wb25lbnQgfSxcbiAgZGlyOiBzdHJpbmcsXG4gIGZpbGVMaXN0OiBzdHJpbmdbXVxuKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKGRpcilcbiAgY29uc3QgcmVxdWlyZWRGaWxlcyA9IG5ldyBTZXQoZmlsZUxpc3QpXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGggJiYgcmVxdWlyZWRGaWxlcy5zaXplID4gMDsgaSsrKSB7XG4gICAgaWYgKHJlcXVpcmVkRmlsZXMuaGFzKGZpbGVzW2ldKSkge1xuICAgICAgcmVxdWlyZWRGaWxlcy5kZWxldGUoZmlsZXNbaV0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVpcmVkRmlsZXMuc2l6ZSA9PT0gMFxufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvamVjdCdzIFwicGFja2FnZS5qc29uXCIgaXMgdmFsaWRcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUGFja2FnZUpzb24gPSBhc3luYyAoXG4gIGNvbXBvbmVudHM6IHsgZnM6IElGaWxlU3lzdGVtQ29tcG9uZW50IH0sXG4gIGRpcjogc3RyaW5nLFxuICBkZXBzOiBEaWN0XG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKGF3YWl0IGNvbXBvbmVudHMuZnMucmVhZEZpbGUocmVzb2x2ZShkaXIsIFJFUVVJUkVEX0ZJTEVTLlBBQ0tBR0VfSlNPTiksICd1dGYtOCcpKVxuICByZXR1cm4gaGFzUHJpbWl0aXZlS2V5cyhwYWNrYWdlSnNvbiwgZGVwcylcbn1cblxuLypcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvamVjdCBjb250YWlucyBhbiBlbXB0eSBub2RlX21vZHVsZXMgZm9sZGVyXG4gKi9cbmV4cG9ydCBjb25zdCBuZWVkc0RlcGVuZGVuY2llcyA9IGFzeW5jIChjb21wb25lbnRzOiB7IGZzOiBJRmlsZVN5c3RlbUNvbXBvbmVudCB9LCBkaXI6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBub2RlTW9kdWxlc1BhdGggPSByZXNvbHZlKGRpciwgJ25vZGVfbW9kdWxlcycpXG4gIGNvbnN0IGhhc05vZGVNb2R1bGVzRm9sZGVyID0gYXdhaXQgY29tcG9uZW50cy5mcy5leGlzdFBhdGgobm9kZU1vZHVsZXNQYXRoKVxuICBjb25zdCBpc05vZGVNb2R1bGVzRW1wdHkgPSBoYXNOb2RlTW9kdWxlc0ZvbGRlciAmJiAoYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKG5vZGVNb2R1bGVzUGF0aCkpLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiAhaGFzTm9kZU1vZHVsZXNGb2xkZXIgfHwgaXNOb2RlTW9kdWxlc0VtcHR5XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgbnBtID0gL153aW4vLnRlc3QocHJvY2Vzcy5wbGF0Zm9ybSkgPyAnbnBtLmNtZCcgOiAnbnBtJ1xuXG4vKlxuICogUnVucyBcIm5wbSBpbnN0YWxsXCIgZm9yIGRlc2lyZWQgcHJvamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llcyhkaXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBpbmZvKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcy4uLicpXG4gIC8vIFRPRE86IHRlc3QgaW4gd2luZG93c1xuICBhd2FpdCBleGVjKGRpciwgbnBtLCBbJ2luc3RhbGwnXSlcbiAgc3VjY2VlZCgnRGVwZW5kZW5jaWVzIGluc3RhbGxlZCcpXG59XG5cbi8qKlxuICogUnVuIE5QTSBjb21tYW5kc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbnBtUnVuKGN3ZDogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcsIC4uLmFyZ3M6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIFRPRE86IHRlc3QgaW4gd2luZG93c1xuICBhd2FpdCBleGVjKGN3ZCwgbnBtLCBbJ3J1bicsIGNvbW1hbmQsICctLXNpbGVudCcsICctLScsIC4uLmFyZ3NdLCB7IGVudjogcHJvY2Vzcy5lbnYgYXMgYW55IH0pXG59XG4iXX0=
@@ -2,6 +2,7 @@ import { resolve } from 'path'
2
2
 
3
3
  import { IFileSystemComponent } from '../../components/fs'
4
4
  import { exec } from '../../utils/exec'
5
+ import { info, succeed } from '../../utils/log'
5
6
  import { Dict, hasPrimitiveKeys } from '../../utils/object'
6
7
 
7
8
  /**
@@ -73,23 +74,16 @@ export const npm = /^win/.test(process.platform) ? 'npm.cmd' : 'npm'
73
74
  * Runs "npm install" for desired project
74
75
  */
75
76
  export async function installDependencies(dir: string): Promise<void> {
76
- await exec(dir, `${npm} install`)
77
+ info('Installing dependencies...')
78
+ // TODO: test in windows
79
+ await exec(dir, npm, ['install'])
80
+ succeed('Dependencies installed')
77
81
  }
78
82
 
79
83
  /**
80
- * Build's Typescript using "tsconfig.json" file
84
+ * Run NPM commands
81
85
  */
82
- export const buildTypescript = async ({
83
- dir,
84
- watch,
85
- production
86
- }: {
87
- dir: string
88
- watch: boolean
89
- production: boolean
90
- }): Promise<void> => {
91
- const command = watch ? 'watch' : 'build'
92
- await exec(dir, `${npm} run ${command}`, {
93
- env: { NODE_ENV: production ? 'production' : '' }
94
- })
86
+ export async function npmRun(cwd: string, command: string, ...args: string[]): Promise<void> {
87
+ // TODO: test in windows
88
+ await exec(cwd, npm, ['run', command, '--silent', '--', ...args], { env: process.env as any })
95
89
  }
@@ -15,5 +15,5 @@ export declare const args: import("arg").Result<{
15
15
  '--dir': StringConstructor;
16
16
  }>;
17
17
  export declare function help(): string;
18
- export declare const main: (args: Options) => Promise<void>;
18
+ export declare function main(options: Options): Promise<void>;
19
19
  export {};
@@ -1,14 +1,16 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.main = exports.help = exports.args = void 0;
4
7
  const path_1 = require("path");
5
8
  const out_messages_1 = require("../../utils/out-messages");
6
- const log_1 = require("../../utils/log");
7
9
  const args_1 = require("../../utils/args");
8
10
  const error_1 = require("../../utils/error");
11
+ const compile_1 = require("@dcl/dcl-rollup/compile");
12
+ const fp_future_1 = __importDefault(require("fp-future"));
9
13
  const helpers_1 = require("./helpers");
10
- const handler_1 = require("../../utils/handler");
11
- const console_1 = require("console");
12
14
  exports.args = (0, args_1.getArgs)({
13
15
  '--watch': Boolean,
14
16
  '-w': '--watch',
@@ -19,7 +21,7 @@ exports.args = (0, args_1.getArgs)({
19
21
  });
20
22
  function help() {
21
23
  return `
22
- Usage: 'dcl build [options]'
24
+ Usage: 'dcl-commands build [options]'
23
25
  Options:'
24
26
  -h, --help Displays complete help
25
27
  -w, --watch Watch for file changes and build on change
@@ -29,11 +31,11 @@ function help() {
29
31
 
30
32
  Example:
31
33
  - Build your scene:
32
- '$ dcl build'
34
+ '$ dcl-commands build'
33
35
  `;
34
36
  }
35
37
  exports.help = help;
36
- exports.main = (0, handler_1.main)(async function main(options) {
38
+ async function main(options) {
37
39
  const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
38
40
  const projectStructure = (0, helpers_1.getProjectStructure)();
39
41
  const hasValidProjectStructure = await (0, helpers_1.validateProjectStructure)(options.components, dir, projectStructure);
@@ -41,24 +43,27 @@ exports.main = (0, handler_1.main)(async function main(options) {
41
43
  throw new error_1.CliError(`Invalid scene structure found. Required files:
42
44
  ${(0, out_messages_1.toStringList)(projectStructure)}`);
43
45
  }
44
- (0, log_1.succeed)('Project has a valid structure');
45
46
  const hasValidPackageJson = await (0, helpers_1.validatePackageJson)(options.components, dir, helpers_1.REQUIRED_PACKAGE_JSON);
46
47
  if (!hasValidPackageJson) {
47
48
  throw new error_1.CliError(`Invalid "package.json" file. Structure required:
48
49
  ${JSON.stringify(helpers_1.REQUIRED_PACKAGE_JSON, null, 2)}`);
49
50
  }
50
- (0, log_1.succeed)('Project has a valid "package.json"');
51
51
  const shouldInstallDeps = await (0, helpers_1.needsDependencies)(options.components, dir);
52
52
  if (shouldInstallDeps && !options.args['--skip-install']) {
53
- (0, console_1.info)('Installing dependencies...');
54
53
  await (0, helpers_1.installDependencies)(dir);
55
54
  }
56
- (0, log_1.succeed)('Dependencies installed');
57
- await (0, helpers_1.buildTypescript)({
58
- dir,
59
- watch: !!options.args['--watch'],
60
- production: !!options.args['--production']
55
+ const watch = !!options.args['--watch'];
56
+ const watchingFuture = (0, fp_future_1.default)();
57
+ await (0, compile_1.compile)({
58
+ project: dir,
59
+ watch,
60
+ production: !!options.args['--production'],
61
+ watchingFuture
61
62
  });
62
- (0, log_1.succeed)('Project built successfully!');
63
- });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBOEI7QUFHOUIsMkRBQXVEO0FBQ3ZELHlDQUF5QztBQUN6QywyQ0FBMEM7QUFDMUMsNkNBQTRDO0FBQzVDLHVDQVFrQjtBQUNsQixpREFBcUQ7QUFDckQscUNBQThCO0FBT2pCLFFBQUEsSUFBSSxHQUFHLElBQUEsY0FBTyxFQUFDO0lBQzFCLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLElBQUksRUFBRSxTQUFTO0lBQ2YsY0FBYyxFQUFFLE9BQU87SUFDdkIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsZ0JBQWdCLEVBQUUsT0FBTztJQUN6QixPQUFPLEVBQUUsTUFBTTtDQUNoQixDQUFDLENBQUE7QUFFRixTQUFnQixJQUFJO0lBQ2xCLE9BQU87Ozs7Ozs7Ozs7OztHQVlOLENBQUE7QUFDSCxDQUFDO0FBZEQsb0JBY0M7QUFFWSxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQyxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQWdCO0lBQzlELE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSw2QkFBbUIsR0FBRSxDQUFBO0lBRTlDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxJQUFBLGtDQUF3QixFQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFFMUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1FBQzdCLE1BQU0sSUFBSSxnQkFBUSxDQUFDO1FBQ2YsSUFBQSwyQkFBWSxFQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0tBQ3RDO0lBRUQsSUFBQSxhQUFPLEVBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUV4QyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSw2QkFBbUIsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSwrQkFBcUIsQ0FBQyxDQUFBO0lBRXJHLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtRQUN4QixNQUFNLElBQUksZ0JBQVEsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsK0JBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtLQUN0RDtJQUVELElBQUEsYUFBTyxFQUFDLG9DQUFvQyxDQUFDLENBQUE7SUFFN0MsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMkJBQWlCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUUxRSxJQUFJLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3hELElBQUEsY0FBSSxFQUFDLDRCQUE0QixDQUFDLENBQUE7UUFDbEMsTUFBTSxJQUFBLDZCQUFtQixFQUFDLEdBQUcsQ0FBQyxDQUFBO0tBQy9CO0lBRUQsSUFBQSxhQUFPLEVBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUVqQyxNQUFNLElBQUEseUJBQWUsRUFBQztRQUNwQixHQUFHO1FBQ0gsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0tBQzNDLENBQUMsQ0FBQTtJQUVGLElBQUEsYUFBTyxFQUFDLDZCQUE2QixDQUFDLENBQUE7QUFJeEMsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCdcblxuaW1wb3J0IHsgQ2xpQ29tcG9uZW50cyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnXG5pbXBvcnQgeyB0b1N0cmluZ0xpc3QgfSBmcm9tICcuLi8uLi91dGlscy9vdXQtbWVzc2FnZXMnXG5pbXBvcnQgeyBzdWNjZWVkIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9nJ1xuaW1wb3J0IHsgZ2V0QXJncyB9IGZyb20gJy4uLy4uL3V0aWxzL2FyZ3MnXG5pbXBvcnQgeyBDbGlFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL2Vycm9yJ1xuaW1wb3J0IHtcbiAgZ2V0UHJvamVjdFN0cnVjdHVyZSxcbiAgYnVpbGRUeXBlc2NyaXB0LFxuICBpbnN0YWxsRGVwZW5kZW5jaWVzLFxuICBuZWVkc0RlcGVuZGVuY2llcyxcbiAgdmFsaWRhdGVQcm9qZWN0U3RydWN0dXJlLFxuICB2YWxpZGF0ZVBhY2thZ2VKc29uLFxuICBSRVFVSVJFRF9QQUNLQUdFX0pTT05cbn0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHsgbWFpbiBhcyBoYW5kbGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGFuZGxlcidcbmltcG9ydCB7IGluZm8gfSBmcm9tICdjb25zb2xlJ1xuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIGFyZ3M6IE9taXQ8dHlwZW9mIGFyZ3MsICdfJz5cbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPlxufVxuXG5leHBvcnQgY29uc3QgYXJncyA9IGdldEFyZ3Moe1xuICAnLS13YXRjaCc6IEJvb2xlYW4sXG4gICctdyc6ICctLXdhdGNoJyxcbiAgJy0tcHJvZHVjdGlvbic6IEJvb2xlYW4sXG4gICctcCc6ICctLXByb2R1Y3Rpb24nLFxuICAnLS1za2lwLWluc3RhbGwnOiBCb29sZWFuLFxuICAnLS1kaXInOiBTdHJpbmdcbn0pXG5cbmV4cG9ydCBmdW5jdGlvbiBoZWxwKCkge1xuICByZXR1cm4gYFxuICBVc2FnZTogJ2RjbCBidWlsZCBbb3B0aW9uc10nXG4gICAgT3B0aW9uczonXG4gICAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIERpc3BsYXlzIGNvbXBsZXRlIGhlbHBcbiAgICAgIC13LCAtLXdhdGNoICAgICAgICAgICAgICAgV2F0Y2ggZm9yIGZpbGUgY2hhbmdlcyBhbmQgYnVpbGQgb24gY2hhbmdlXG4gICAgICAtcCwgLS1wcm9kdWN0aW9uICAgICAgICAgIEJ1aWxkIHdpdGhvdXQgc291cmNlbWFwc1xuICAgICAgLS1za2lwLWluc3RhbGwgICAgICAgICAgICBTa2lwIGluc3RhbGxpbmcgZGVwZW5kZW5jaWVzXG4gICAgICAtLWRpciAgICAgICAgICAgICAgICAgICAgIFBhdGggdG8gZGlyZWN0b3J5IHRvIGJ1aWxkXG5cbiAgICBFeGFtcGxlOlxuICAgIC0gQnVpbGQgeW91ciBzY2VuZTpcbiAgICAgICckIGRjbCBidWlsZCdcbiAgYFxufVxuXG5leHBvcnQgY29uc3QgbWFpbiA9IGhhbmRsZXIoYXN5bmMgZnVuY3Rpb24gbWFpbihvcHRpb25zOiBPcHRpb25zKSB7XG4gIGNvbnN0IGRpciA9IHJlc29sdmUocHJvY2Vzcy5jd2QoKSwgb3B0aW9ucy5hcmdzWyctLWRpciddIHx8ICcuJylcbiAgY29uc3QgcHJvamVjdFN0cnVjdHVyZSA9IGdldFByb2plY3RTdHJ1Y3R1cmUoKVxuXG4gIGNvbnN0IGhhc1ZhbGlkUHJvamVjdFN0cnVjdHVyZSA9IGF3YWl0IHZhbGlkYXRlUHJvamVjdFN0cnVjdHVyZShvcHRpb25zLmNvbXBvbmVudHMsIGRpciwgcHJvamVjdFN0cnVjdHVyZSlcblxuICBpZiAoIWhhc1ZhbGlkUHJvamVjdFN0cnVjdHVyZSkge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcihgSW52YWxpZCBzY2VuZSBzdHJ1Y3R1cmUgZm91bmQuIFJlcXVpcmVkIGZpbGVzOlxuICAgICAgJHt0b1N0cmluZ0xpc3QocHJvamVjdFN0cnVjdHVyZSl9YClcbiAgfVxuXG4gIHN1Y2NlZWQoJ1Byb2plY3QgaGFzIGEgdmFsaWQgc3RydWN0dXJlJylcblxuICBjb25zdCBoYXNWYWxpZFBhY2thZ2VKc29uID0gYXdhaXQgdmFsaWRhdGVQYWNrYWdlSnNvbihvcHRpb25zLmNvbXBvbmVudHMsIGRpciwgUkVRVUlSRURfUEFDS0FHRV9KU09OKVxuXG4gIGlmICghaGFzVmFsaWRQYWNrYWdlSnNvbikge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcihgSW52YWxpZCBcInBhY2thZ2UuanNvblwiIGZpbGUuIFN0cnVjdHVyZSByZXF1aXJlZDpcbiAgICAgICR7SlNPTi5zdHJpbmdpZnkoUkVRVUlSRURfUEFDS0FHRV9KU09OLCBudWxsLCAyKX1gKVxuICB9XG5cbiAgc3VjY2VlZCgnUHJvamVjdCBoYXMgYSB2YWxpZCBcInBhY2thZ2UuanNvblwiJylcblxuICBjb25zdCBzaG91bGRJbnN0YWxsRGVwcyA9IGF3YWl0IG5lZWRzRGVwZW5kZW5jaWVzKG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuXG4gIGlmIChzaG91bGRJbnN0YWxsRGVwcyAmJiAhb3B0aW9ucy5hcmdzWyctLXNraXAtaW5zdGFsbCddKSB7XG4gICAgaW5mbygnSW5zdGFsbGluZyBkZXBlbmRlbmNpZXMuLi4nKVxuICAgIGF3YWl0IGluc3RhbGxEZXBlbmRlbmNpZXMoZGlyKVxuICB9XG5cbiAgc3VjY2VlZCgnRGVwZW5kZW5jaWVzIGluc3RhbGxlZCcpXG5cbiAgYXdhaXQgYnVpbGRUeXBlc2NyaXB0KHtcbiAgICBkaXIsXG4gICAgd2F0Y2g6ICEhb3B0aW9ucy5hcmdzWyctLXdhdGNoJ10sXG4gICAgcHJvZHVjdGlvbjogISFvcHRpb25zLmFyZ3NbJy0tcHJvZHVjdGlvbiddXG4gIH0pXG5cbiAgc3VjY2VlZCgnUHJvamVjdCBidWlsdCBzdWNjZXNzZnVsbHkhJylcblxuICAvLyB0cmFjayBzdHVmZi4uLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL2NsaS9ibG9iL21haW4vc3JjL2NvbW1hbmRzL2J1aWxkLnRzXG59KVxuIl19
63
+ if (!watch) {
64
+ watchingFuture.resolve(null);
65
+ }
66
+ await watchingFuture;
67
+ }
68
+ exports.main = main;
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBOEI7QUFHOUIsMkRBQXVEO0FBQ3ZELDJDQUEwQztBQUMxQyw2Q0FBNEM7QUFDNUMscURBQWlEO0FBQ2pELDBEQUE4QjtBQUM5Qix1Q0FPa0I7QUFPTCxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQixJQUFJLEVBQUUsU0FBUztJQUNmLGNBQWMsRUFBRSxPQUFPO0lBQ3ZCLElBQUksRUFBRSxjQUFjO0lBQ3BCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsT0FBTyxFQUFFLE1BQU07Q0FDaEIsQ0FBQyxDQUFBO0FBRUYsU0FBZ0IsSUFBSTtJQUNsQixPQUFPOzs7Ozs7Ozs7Ozs7R0FZTixDQUFBO0FBQ0gsQ0FBQztBQWRELG9CQWNDO0FBRU0sS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFnQjtJQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFBLGNBQU8sRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUNoRSxNQUFNLGdCQUFnQixHQUFHLElBQUEsNkJBQW1CLEdBQUUsQ0FBQTtJQUU5QyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sSUFBQSxrQ0FBd0IsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtRQUM3QixNQUFNLElBQUksZ0JBQVEsQ0FBQztRQUNmLElBQUEsMkJBQVksRUFBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtLQUN0QztJQUVELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFBLDZCQUFtQixFQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLCtCQUFxQixDQUFDLENBQUE7SUFFckcsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1FBQ3hCLE1BQU0sSUFBSSxnQkFBUSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQywrQkFBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0tBQ3REO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMkJBQWlCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUUxRSxJQUFJLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3hELE1BQU0sSUFBQSw2QkFBbUIsRUFBQyxHQUFHLENBQUMsQ0FBQTtLQUMvQjtJQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXZDLE1BQU0sY0FBYyxHQUFHLElBQUEsbUJBQU0sR0FBTyxDQUFBO0lBRXBDLE1BQU0sSUFBQSxpQkFBTyxFQUFDO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixLQUFLO1FBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxQyxjQUFjO0tBQ2YsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7S0FDN0I7SUFFRCxNQUFNLGNBQWMsQ0FBQTtBQUl0QixDQUFDO0FBM0NELG9CQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgeyBDbGlDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cydcbmltcG9ydCB7IHRvU3RyaW5nTGlzdCB9IGZyb20gJy4uLy4uL3V0aWxzL291dC1tZXNzYWdlcydcbmltcG9ydCB7IGdldEFyZ3MgfSBmcm9tICcuLi8uLi91dGlscy9hcmdzJ1xuaW1wb3J0IHsgQ2xpRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy9lcnJvcidcbmltcG9ydCB7IGNvbXBpbGUgfSBmcm9tICdAZGNsL2RjbC1yb2xsdXAvY29tcGlsZSdcbmltcG9ydCBmdXR1cmUgZnJvbSAnZnAtZnV0dXJlJ1xuaW1wb3J0IHtcbiAgZ2V0UHJvamVjdFN0cnVjdHVyZSxcbiAgaW5zdGFsbERlcGVuZGVuY2llcyxcbiAgbmVlZHNEZXBlbmRlbmNpZXMsXG4gIHZhbGlkYXRlUHJvamVjdFN0cnVjdHVyZSxcbiAgdmFsaWRhdGVQYWNrYWdlSnNvbixcbiAgUkVRVUlSRURfUEFDS0FHRV9KU09OXG59IGZyb20gJy4vaGVscGVycydcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiBPbWl0PHR5cGVvZiBhcmdzLCAnXyc+XG4gIGNvbXBvbmVudHM6IFBpY2s8Q2xpQ29tcG9uZW50cywgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0td2F0Y2gnOiBCb29sZWFuLFxuICAnLXcnOiAnLS13YXRjaCcsXG4gICctLXByb2R1Y3Rpb24nOiBCb29sZWFuLFxuICAnLXAnOiAnLS1wcm9kdWN0aW9uJyxcbiAgJy0tc2tpcC1pbnN0YWxsJzogQm9vbGVhbixcbiAgJy0tZGlyJzogU3RyaW5nXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gaGVscCgpIHtcbiAgcmV0dXJuIGBcbiAgVXNhZ2U6ICdkY2wtY29tbWFuZHMgYnVpbGQgW29wdGlvbnNdJ1xuICAgIE9wdGlvbnM6J1xuICAgICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICBEaXNwbGF5cyBjb21wbGV0ZSBoZWxwXG4gICAgICAtdywgLS13YXRjaCAgICAgICAgICAgICAgIFdhdGNoIGZvciBmaWxlIGNoYW5nZXMgYW5kIGJ1aWxkIG9uIGNoYW5nZVxuICAgICAgLXAsIC0tcHJvZHVjdGlvbiAgICAgICAgICBCdWlsZCB3aXRob3V0IHNvdXJjZW1hcHNcbiAgICAgIC0tc2tpcC1pbnN0YWxsICAgICAgICAgICAgU2tpcCBpbnN0YWxsaW5nIGRlcGVuZGVuY2llc1xuICAgICAgLS1kaXIgICAgICAgICAgICAgICAgICAgICBQYXRoIHRvIGRpcmVjdG9yeSB0byBidWlsZFxuXG4gICAgRXhhbXBsZTpcbiAgICAtIEJ1aWxkIHlvdXIgc2NlbmU6XG4gICAgICAnJCBkY2wtY29tbWFuZHMgYnVpbGQnXG4gIGBcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGNvbnN0IHByb2plY3RTdHJ1Y3R1cmUgPSBnZXRQcm9qZWN0U3RydWN0dXJlKClcblxuICBjb25zdCBoYXNWYWxpZFByb2plY3RTdHJ1Y3R1cmUgPSBhd2FpdCB2YWxpZGF0ZVByb2plY3RTdHJ1Y3R1cmUob3B0aW9ucy5jb21wb25lbnRzLCBkaXIsIHByb2plY3RTdHJ1Y3R1cmUpXG5cbiAgaWYgKCFoYXNWYWxpZFByb2plY3RTdHJ1Y3R1cmUpIHtcbiAgICB0aHJvdyBuZXcgQ2xpRXJyb3IoYEludmFsaWQgc2NlbmUgc3RydWN0dXJlIGZvdW5kLiBSZXF1aXJlZCBmaWxlczpcbiAgICAgICR7dG9TdHJpbmdMaXN0KHByb2plY3RTdHJ1Y3R1cmUpfWApXG4gIH1cblxuICBjb25zdCBoYXNWYWxpZFBhY2thZ2VKc29uID0gYXdhaXQgdmFsaWRhdGVQYWNrYWdlSnNvbihvcHRpb25zLmNvbXBvbmVudHMsIGRpciwgUkVRVUlSRURfUEFDS0FHRV9KU09OKVxuXG4gIGlmICghaGFzVmFsaWRQYWNrYWdlSnNvbikge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcihgSW52YWxpZCBcInBhY2thZ2UuanNvblwiIGZpbGUuIFN0cnVjdHVyZSByZXF1aXJlZDpcbiAgICAgICR7SlNPTi5zdHJpbmdpZnkoUkVRVUlSRURfUEFDS0FHRV9KU09OLCBudWxsLCAyKX1gKVxuICB9XG5cbiAgY29uc3Qgc2hvdWxkSW5zdGFsbERlcHMgPSBhd2FpdCBuZWVkc0RlcGVuZGVuY2llcyhvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcblxuICBpZiAoc2hvdWxkSW5zdGFsbERlcHMgJiYgIW9wdGlvbnMuYXJnc1snLS1za2lwLWluc3RhbGwnXSkge1xuICAgIGF3YWl0IGluc3RhbGxEZXBlbmRlbmNpZXMoZGlyKVxuICB9XG5cbiAgY29uc3Qgd2F0Y2ggPSAhIW9wdGlvbnMuYXJnc1snLS13YXRjaCddXG5cbiAgY29uc3Qgd2F0Y2hpbmdGdXR1cmUgPSBmdXR1cmU8YW55PigpXG5cbiAgYXdhaXQgY29tcGlsZSh7XG4gICAgcHJvamVjdDogZGlyLFxuICAgIHdhdGNoLFxuICAgIHByb2R1Y3Rpb246ICEhb3B0aW9ucy5hcmdzWyctLXByb2R1Y3Rpb24nXSxcbiAgICB3YXRjaGluZ0Z1dHVyZVxuICB9KVxuXG4gIGlmICghd2F0Y2gpIHtcbiAgICB3YXRjaGluZ0Z1dHVyZS5yZXNvbHZlKG51bGwpXG4gIH1cblxuICBhd2FpdCB3YXRjaGluZ0Z1dHVyZVxuXG4gIC8vIHRyYWNrIHN0dWZmLi4uXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWNlbnRyYWxhbmQvY2xpL2Jsb2IvbWFpbi9zcmMvY29tbWFuZHMvYnVpbGQudHNcbn1cbiJdfQ==
@@ -2,20 +2,18 @@ import { resolve } from 'path'
2
2
 
3
3
  import { CliComponents } from '../../components'
4
4
  import { toStringList } from '../../utils/out-messages'
5
- import { succeed } from '../../utils/log'
6
5
  import { getArgs } from '../../utils/args'
7
6
  import { CliError } from '../../utils/error'
7
+ import { compile } from '@dcl/dcl-rollup/compile'
8
+ import future from 'fp-future'
8
9
  import {
9
10
  getProjectStructure,
10
- buildTypescript,
11
11
  installDependencies,
12
12
  needsDependencies,
13
13
  validateProjectStructure,
14
14
  validatePackageJson,
15
15
  REQUIRED_PACKAGE_JSON
16
16
  } from './helpers'
17
- import { main as handler } from '../../utils/handler'
18
- import { info } from 'console'
19
17
 
20
18
  interface Options {
21
19
  args: Omit<typeof args, '_'>
@@ -33,7 +31,7 @@ export const args = getArgs({
33
31
 
34
32
  export function help() {
35
33
  return `
36
- Usage: 'dcl build [options]'
34
+ Usage: 'dcl-commands build [options]'
37
35
  Options:'
38
36
  -h, --help Displays complete help
39
37
  -w, --watch Watch for file changes and build on change
@@ -43,11 +41,11 @@ export function help() {
43
41
 
44
42
  Example:
45
43
  - Build your scene:
46
- '$ dcl build'
44
+ '$ dcl-commands build'
47
45
  `
48
46
  }
49
47
 
50
- export const main = handler(async function main(options: Options) {
48
+ export async function main(options: Options) {
51
49
  const dir = resolve(process.cwd(), options.args['--dir'] || '.')
52
50
  const projectStructure = getProjectStructure()
53
51
 
@@ -58,8 +56,6 @@ export const main = handler(async function main(options: Options) {
58
56
  ${toStringList(projectStructure)}`)
59
57
  }
60
58
 
61
- succeed('Project has a valid structure')
62
-
63
59
  const hasValidPackageJson = await validatePackageJson(options.components, dir, REQUIRED_PACKAGE_JSON)
64
60
 
65
61
  if (!hasValidPackageJson) {
@@ -67,25 +63,29 @@ export const main = handler(async function main(options: Options) {
67
63
  ${JSON.stringify(REQUIRED_PACKAGE_JSON, null, 2)}`)
68
64
  }
69
65
 
70
- succeed('Project has a valid "package.json"')
71
-
72
66
  const shouldInstallDeps = await needsDependencies(options.components, dir)
73
67
 
74
68
  if (shouldInstallDeps && !options.args['--skip-install']) {
75
- info('Installing dependencies...')
76
69
  await installDependencies(dir)
77
70
  }
78
71
 
79
- succeed('Dependencies installed')
72
+ const watch = !!options.args['--watch']
80
73
 
81
- await buildTypescript({
82
- dir,
83
- watch: !!options.args['--watch'],
84
- production: !!options.args['--production']
74
+ const watchingFuture = future<any>()
75
+
76
+ await compile({
77
+ project: dir,
78
+ watch,
79
+ production: !!options.args['--production'],
80
+ watchingFuture
85
81
  })
86
82
 
87
- succeed('Project built successfully!')
83
+ if (!watch) {
84
+ watchingFuture.resolve(null)
85
+ }
86
+
87
+ await watchingFuture
88
88
 
89
89
  // track stuff...
90
90
  // https://github.com/decentraland/cli/blob/main/src/commands/build.ts
91
- })
91
+ }
@@ -12,5 +12,5 @@ export declare const args: import("arg").Result<{
12
12
  '--dir': StringConstructor;
13
13
  }>;
14
14
  export declare function help(): Promise<void>;
15
- export declare const main: (args: Options) => Promise<void>;
15
+ export declare function main(options: Options): Promise<void>;
16
16
  export {};
@@ -6,7 +6,6 @@ const args_1 = require("../../utils/args");
6
6
  const prompt_1 = require("../../utils/prompt");
7
7
  const fs_1 = require("../../utils/fs");
8
8
  const repos_1 = require("./repos");
9
- const handler_1 = require("../../utils/handler");
10
9
  exports.args = (0, args_1.getArgs)({
11
10
  '--yes': Boolean,
12
11
  '-y': '--yes',
@@ -14,7 +13,7 @@ exports.args = (0, args_1.getArgs)({
14
13
  });
15
14
  async function help() { }
16
15
  exports.help = help;
17
- exports.main = (0, handler_1.main)(async function main(options) {
16
+ async function main(options) {
18
17
  const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
19
18
  const isEmpty = await (0, fs_1.isDirectoryEmpty)(options.components, dir);
20
19
  const yes = options.args['--yes'];
@@ -29,7 +28,8 @@ exports.main = (0, handler_1.main)(async function main(options) {
29
28
  await (0, fs_1.extract)(zip, dir);
30
29
  await options.components.fs.unlink(zip);
31
30
  await moveFilesFromDirs(options.components, dir, contentFolders);
32
- });
31
+ }
32
+ exports.main = main;
33
33
  const moveFilesFromDir = async (components, dir, folder) => {
34
34
  const files = await components.fs.readdir(folder);
35
35
  await Promise.all(files.map(($) => {
@@ -44,4 +44,4 @@ const moveFilesFromDirs = async (components, dir, folders) => {
44
44
  return moveFilesFromDir(components, dir, folderPath);
45
45
  }));
46
46
  };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0M7QUFFcEMsMkNBQTBDO0FBQzFDLCtDQUE0QztBQUU1Qyx1Q0FBb0U7QUFFcEUsbUNBQXdDO0FBQ3hDLGlEQUFxRDtBQU94QyxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixPQUFPLEVBQUUsT0FBTztJQUNoQixJQUFJLEVBQUUsT0FBTztJQUNiLE9BQU8sRUFBRSxNQUFNO0NBQ2hCLENBQUMsQ0FBQTtBQUVLLEtBQUssVUFBVSxJQUFJLEtBQUksQ0FBQztBQUEvQixvQkFBK0I7QUFFbEIsUUFBQSxJQUFJLEdBQUcsSUFBQSxjQUFPLEVBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFnQjtJQUM5RCxNQUFNLEdBQUcsR0FBRyxJQUFBLGNBQU8sRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUNoRSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUEscUJBQWdCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMvRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRWpDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDcEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLGdCQUFPLEVBQUMscURBQXFELENBQUMsQ0FBQTtRQUVuRixJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU07S0FDcEI7SUFFRCxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQTtJQUM5QixNQUFNLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUEsV0FBTyxFQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSxhQUFRLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sSUFBQSxZQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZCLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0saUJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUE7QUFDbEUsQ0FBQyxDQUFDLENBQUE7QUFFRixNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBRSxVQUFxQyxFQUFFLEdBQVcsRUFBRSxNQUFjLEVBQUUsRUFBRTtJQUNwRyxNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDZCxNQUFNLFFBQVEsR0FBRyxJQUFBLGNBQU8sRUFBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbkMsT0FBTyxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBQSxjQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNELE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFBO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsVUFBcUMsRUFBRSxHQUFXLEVBQUUsT0FBaUIsRUFBRSxFQUFFO0lBQ3hHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDaEIsTUFBTSxVQUFVLEdBQUcsSUFBQSxjQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ2xDLE9BQU8sZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUN0RCxDQUFDLENBQUMsQ0FDSCxDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiwgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnXG5cbmltcG9ydCB7IGdldEFyZ3MgfSBmcm9tICcuLi8uLi91dGlscy9hcmdzJ1xuaW1wb3J0IHsgY29uZmlybSB9IGZyb20gJy4uLy4uL3V0aWxzL3Byb21wdCdcbmltcG9ydCB7IENsaUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJ1xuaW1wb3J0IHsgaXNEaXJlY3RvcnlFbXB0eSwgZG93bmxvYWQsIGV4dHJhY3QgfSBmcm9tICcuLi8uLi91dGlscy9mcydcblxuaW1wb3J0IHsgZ2V0IGFzIGdldFJlcG8gfSBmcm9tICcuL3JlcG9zJ1xuaW1wb3J0IHsgbWFpbiBhcyBoYW5kbGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGFuZGxlcidcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiB0eXBlb2YgYXJnc1xuICBjb21wb25lbnRzOiBQaWNrPENsaUNvbXBvbmVudHMsICdmZXRjaCcgfCAnZnMnPlxufVxuXG5leHBvcnQgY29uc3QgYXJncyA9IGdldEFyZ3Moe1xuICAnLS15ZXMnOiBCb29sZWFuLFxuICAnLXknOiAnLS15ZXMnLFxuICAnLS1kaXInOiBTdHJpbmdcbn0pXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoZWxwKCkge31cblxuZXhwb3J0IGNvbnN0IG1haW4gPSBoYW5kbGVyKGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGNvbnN0IGlzRW1wdHkgPSBhd2FpdCBpc0RpcmVjdG9yeUVtcHR5KG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuICBjb25zdCB5ZXMgPSBvcHRpb25zLmFyZ3NbJy0teWVzJ11cblxuICBpZiAoIWlzRW1wdHkgJiYgIXllcykge1xuICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGNvbmZpcm0oJ1RoZSBmb2xkZXIgc3BlY2lmaWVkIGlzIG5vdCBlbXB0eSwgY29udGludWUgYW55d2F5PycpXG5cbiAgICBpZiAoIWFuc3dlcikgcmV0dXJuXG4gIH1cblxuICBjb25zdCBzY2VuZSA9ICdzY2VuZS10ZW1wbGF0ZSdcbiAgY29uc3QgeyB1cmwsIGNvbnRlbnRGb2xkZXJzIH0gPSBnZXRSZXBvKHNjZW5lKVxuICBjb25zdCB6aXAgPSBhd2FpdCBkb3dubG9hZChvcHRpb25zLmNvbXBvbmVudHMsIHVybCwgam9pbihkaXIsIGAke3NjZW5lfS56aXBgKSlcbiAgYXdhaXQgZXh0cmFjdCh6aXAsIGRpcilcbiAgYXdhaXQgb3B0aW9ucy5jb21wb25lbnRzLmZzLnVubGluayh6aXApXG4gIGF3YWl0IG1vdmVGaWxlc0Zyb21EaXJzKG9wdGlvbnMuY29tcG9uZW50cywgZGlyLCBjb250ZW50Rm9sZGVycylcbn0pXG5cbmNvbnN0IG1vdmVGaWxlc0Zyb21EaXIgPSBhc3luYyAoY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPiwgZGlyOiBzdHJpbmcsIGZvbGRlcjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKGZvbGRlcilcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgZmlsZXMubWFwKCgkKSA9PiB7XG4gICAgICBjb25zdCBmaWxlUGF0aCA9IHJlc29sdmUoZm9sZGVyLCAkKVxuICAgICAgcmV0dXJuIGNvbXBvbmVudHMuZnMucmVuYW1lKGZpbGVQYXRoLCByZXNvbHZlKGRpciwgJCkpXG4gICAgfSlcbiAgKVxuICBhd2FpdCBjb21wb25lbnRzLmZzLnJtZGlyKGZvbGRlcilcbn1cblxuY29uc3QgbW92ZUZpbGVzRnJvbURpcnMgPSBhc3luYyAoY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPiwgZGlyOiBzdHJpbmcsIGZvbGRlcnM6IHN0cmluZ1tdKSA9PiB7XG4gIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGZvbGRlcnMubWFwKCgkKSA9PiB7XG4gICAgICBjb25zdCBmb2xkZXJQYXRoID0gcmVzb2x2ZShkaXIsICQpXG4gICAgICByZXR1cm4gbW92ZUZpbGVzRnJvbURpcihjb21wb25lbnRzLCBkaXIsIGZvbGRlclBhdGgpXG4gICAgfSlcbiAgKVxufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0M7QUFFcEMsMkNBQTBDO0FBQzFDLCtDQUE0QztBQUU1Qyx1Q0FBb0U7QUFFcEUsbUNBQXdDO0FBTzNCLFFBQUEsSUFBSSxHQUFHLElBQUEsY0FBTyxFQUFDO0lBQzFCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLElBQUksRUFBRSxPQUFPO0lBQ2IsT0FBTyxFQUFFLE1BQU07Q0FDaEIsQ0FBQyxDQUFBO0FBRUssS0FBSyxVQUFVLElBQUksS0FBSSxDQUFDO0FBQS9CLG9CQUErQjtBQUV4QixLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQWdCO0lBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSxxQkFBZ0IsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQy9ELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFakMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNwQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsZ0JBQU8sRUFBQyxxREFBcUQsQ0FBQyxDQUFBO1FBRW5GLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTTtLQUNwQjtJQUVELE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFBO0lBQzlCLE1BQU0sRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLEdBQUcsSUFBQSxXQUFPLEVBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFBLGFBQVEsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDOUUsTUFBTSxJQUFBLFlBQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDdkIsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkMsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQTtBQUNsRSxDQUFDO0FBakJELG9CQWlCQztBQUVELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLFVBQXFDLEVBQUUsR0FBVyxFQUFFLE1BQWMsRUFBRSxFQUFFO0lBQ3BHLE1BQU0sS0FBSyxHQUFHLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDakQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNkLE1BQU0sUUFBUSxHQUFHLElBQUEsY0FBTyxFQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNuQyxPQUFPLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFBLGNBQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN4RCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0QsTUFBTSxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNuQyxDQUFDLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxVQUFxQyxFQUFFLEdBQVcsRUFBRSxPQUFpQixFQUFFLEVBQUU7SUFDeEcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNoQixNQUFNLFVBQVUsR0FBRyxJQUFBLGNBQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEMsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQ3RELENBQUMsQ0FBQyxDQUNILENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luLCByZXNvbHZlIH0gZnJvbSAncGF0aCdcblxuaW1wb3J0IHsgZ2V0QXJncyB9IGZyb20gJy4uLy4uL3V0aWxzL2FyZ3MnXG5pbXBvcnQgeyBjb25maXJtIH0gZnJvbSAnLi4vLi4vdXRpbHMvcHJvbXB0J1xuaW1wb3J0IHsgQ2xpQ29tcG9uZW50cyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnXG5pbXBvcnQgeyBpc0RpcmVjdG9yeUVtcHR5LCBkb3dubG9hZCwgZXh0cmFjdCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZzJ1xuXG5pbXBvcnQgeyBnZXQgYXMgZ2V0UmVwbyB9IGZyb20gJy4vcmVwb3MnXG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgYXJnczogdHlwZW9mIGFyZ3NcbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZmV0Y2gnIHwgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0teWVzJzogQm9vbGVhbixcbiAgJy15JzogJy0teWVzJyxcbiAgJy0tZGlyJzogU3RyaW5nXG59KVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGVscCgpIHt9XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWluKG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgY29uc3QgZGlyID0gcmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBvcHRpb25zLmFyZ3NbJy0tZGlyJ10gfHwgJy4nKVxuICBjb25zdCBpc0VtcHR5ID0gYXdhaXQgaXNEaXJlY3RvcnlFbXB0eShvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcbiAgY29uc3QgeWVzID0gb3B0aW9ucy5hcmdzWyctLXllcyddXG5cbiAgaWYgKCFpc0VtcHR5ICYmICF5ZXMpIHtcbiAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBjb25maXJtKCdUaGUgZm9sZGVyIHNwZWNpZmllZCBpcyBub3QgZW1wdHksIGNvbnRpbnVlIGFueXdheT8nKVxuXG4gICAgaWYgKCFhbnN3ZXIpIHJldHVyblxuICB9XG5cbiAgY29uc3Qgc2NlbmUgPSAnc2NlbmUtdGVtcGxhdGUnXG4gIGNvbnN0IHsgdXJsLCBjb250ZW50Rm9sZGVycyB9ID0gZ2V0UmVwbyhzY2VuZSlcbiAgY29uc3QgemlwID0gYXdhaXQgZG93bmxvYWQob3B0aW9ucy5jb21wb25lbnRzLCB1cmwsIGpvaW4oZGlyLCBgJHtzY2VuZX0uemlwYCkpXG4gIGF3YWl0IGV4dHJhY3QoemlwLCBkaXIpXG4gIGF3YWl0IG9wdGlvbnMuY29tcG9uZW50cy5mcy51bmxpbmsoemlwKVxuICBhd2FpdCBtb3ZlRmlsZXNGcm9tRGlycyhvcHRpb25zLmNvbXBvbmVudHMsIGRpciwgY29udGVudEZvbGRlcnMpXG59XG5cbmNvbnN0IG1vdmVGaWxlc0Zyb21EaXIgPSBhc3luYyAoY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPiwgZGlyOiBzdHJpbmcsIGZvbGRlcjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkZGlyKGZvbGRlcilcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgZmlsZXMubWFwKCgkKSA9PiB7XG4gICAgICBjb25zdCBmaWxlUGF0aCA9IHJlc29sdmUoZm9sZGVyLCAkKVxuICAgICAgcmV0dXJuIGNvbXBvbmVudHMuZnMucmVuYW1lKGZpbGVQYXRoLCByZXNvbHZlKGRpciwgJCkpXG4gICAgfSlcbiAgKVxuICBhd2FpdCBjb21wb25lbnRzLmZzLnJtZGlyKGZvbGRlcilcbn1cblxuY29uc3QgbW92ZUZpbGVzRnJvbURpcnMgPSBhc3luYyAoY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZnMnPiwgZGlyOiBzdHJpbmcsIGZvbGRlcnM6IHN0cmluZ1tdKSA9PiB7XG4gIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGZvbGRlcnMubWFwKCgkKSA9PiB7XG4gICAgICBjb25zdCBmb2xkZXJQYXRoID0gcmVzb2x2ZShkaXIsICQpXG4gICAgICByZXR1cm4gbW92ZUZpbGVzRnJvbURpcihjb21wb25lbnRzLCBkaXIsIGZvbGRlclBhdGgpXG4gICAgfSlcbiAgKVxufVxuIl19
@@ -6,7 +6,6 @@ import { CliComponents } from '../../components'
6
6
  import { isDirectoryEmpty, download, extract } from '../../utils/fs'
7
7
 
8
8
  import { get as getRepo } from './repos'
9
- import { main as handler } from '../../utils/handler'
10
9
 
11
10
  interface Options {
12
11
  args: typeof args
@@ -21,7 +20,7 @@ export const args = getArgs({
21
20
 
22
21
  export async function help() {}
23
22
 
24
- export const main = handler(async function main(options: Options) {
23
+ export async function main(options: Options) {
25
24
  const dir = resolve(process.cwd(), options.args['--dir'] || '.')
26
25
  const isEmpty = await isDirectoryEmpty(options.components, dir)
27
26
  const yes = options.args['--yes']
@@ -38,7 +37,7 @@ export const main = handler(async function main(options: Options) {
38
37
  await extract(zip, dir)
39
38
  await options.components.fs.unlink(zip)
40
39
  await moveFilesFromDirs(options.components, dir, contentFolders)
41
- })
40
+ }
42
41
 
43
42
  const moveFilesFromDir = async (components: Pick<CliComponents, 'fs'>, dir: string, folder: string) => {
44
43
  const files = await components.fs.readdir(folder)
@@ -1,4 +1,6 @@
1
+ import { Lifecycle } from '@well-known-components/interfaces';
1
2
  import { CliComponents } from '../../components';
3
+ import { PreviewComponents } from './types';
2
4
  export declare function help(): string;
3
5
  interface Options {
4
6
  args: Omit<typeof args, '_'>;
@@ -14,5 +16,5 @@ export declare const args: import("arg").Result<{
14
16
  '--port': NumberConstructor;
15
17
  '-p': string;
16
18
  }>;
17
- export declare const main: (args: Options) => Promise<void>;
19
+ export declare function main(options: Options): Promise<Lifecycle.ComponentBasedProgram<PreviewComponents>>;
18
20
  export {};
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.main = exports.args = exports.help = void 0;
7
7
  const path_1 = require("path");
8
+ const fp_future_1 = __importDefault(require("fp-future"));
8
9
  const interfaces_1 = require("@well-known-components/interfaces");
9
10
  const rooms_1 = require("@dcl/mini-comms/dist/adapters/rooms");
10
11
  const env_config_provider_1 = require("@well-known-components/env-config-provider");
@@ -12,9 +13,7 @@ const http_server_1 = require("@well-known-components/http-server");
12
13
  const logger_1 = require("@well-known-components/logger");
13
14
  const metrics_1 = require("@well-known-components/metrics");
14
15
  const ws_1 = require("./ws");
15
- const fp_future_1 = __importDefault(require("fp-future"));
16
16
  const args_1 = require("../../utils/args");
17
- const handler_1 = require("../../utils/handler");
18
17
  const project_1 = require("./project");
19
18
  const port_1 = require("./port");
20
19
  const eth_1 = require("./eth");
@@ -30,14 +29,12 @@ exports.args = (0, args_1.getArgs)({
30
29
  '--port': Number,
31
30
  '-p': '--port'
32
31
  });
33
- exports.main = (0, handler_1.main)(async function main(options) {
32
+ async function main(options) {
34
33
  const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
35
34
  await (0, project_1.validateExistingProject)(options.components, dir);
36
35
  await (0, project_1.validateSceneOptions)(options.components, dir);
37
36
  const port = options.args['--port'] || (await (0, port_1.previewPort)());
38
- const startedFuture = (0, fp_future_1.default)();
39
- setTimeout(() => startedFuture.reject(new Error('Timed out starting the server')), 3000);
40
- await interfaces_1.Lifecycle.run({
37
+ const program = await interfaces_1.Lifecycle.run({
41
38
  async initComponents() {
42
39
  const metrics = (0, metrics_1.createTestMetricsComponent)(rooms_1.roomsMetrics);
43
40
  const config = (0, env_config_provider_1.createRecordConfigComponent)(Object.assign({ HTTP_SERVER_PORT: port.toString(), HTTP_SERVER_HOST: '0.0.0.0' }, process.env));
@@ -49,6 +46,13 @@ exports.main = (0, handler_1.main)(async function main(options) {
49
46
  logs,
50
47
  config
51
48
  });
49
+ const programClosed = (0, fp_future_1.default)();
50
+ const signaler = {
51
+ programClosed,
52
+ async stop() {
53
+ programClosed.resolve();
54
+ }
55
+ };
52
56
  return {
53
57
  logs,
54
58
  ethereumProvider: eth_1.providerInstance,
@@ -56,20 +60,16 @@ exports.main = (0, handler_1.main)(async function main(options) {
56
60
  config,
57
61
  metrics,
58
62
  server,
59
- ws
63
+ ws,
64
+ signaler
60
65
  };
61
66
  },
62
67
  async main({ components, startComponents }) {
63
- try {
64
- await (0, wire_1.wire)(dir, components, !!options.args['--watch']);
65
- await startComponents();
66
- startedFuture.resolve();
67
- }
68
- catch (err) {
69
- startedFuture.reject(err);
70
- }
68
+ await (0, wire_1.wire)(dir, components);
69
+ await startComponents();
71
70
  }
72
71
  });
73
- return;
74
- });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBOEI7QUFDOUIsa0VBQTZEO0FBQzdELCtEQUF3RjtBQUN4RixvRkFBd0Y7QUFDeEYsb0VBQTBFO0FBQzFFLDBEQUF5RTtBQUN6RSw0REFBMkU7QUFDM0UsNkJBQXdDO0FBQ3hDLDBEQUE4QjtBQUc5QiwyQ0FBMEM7QUFDMUMsaURBQXFEO0FBRXJELHVDQUF5RTtBQUN6RSxpQ0FBb0M7QUFDcEMsK0JBQXdDO0FBQ3hDLGlDQUE2QjtBQUU3QixTQUFnQixJQUFJO0lBQ2xCLE9BQU8sRUFBRSxDQUFBO0FBQ1gsQ0FBQztBQUZELG9CQUVDO0FBT1ksUUFBQSxJQUFJLEdBQUcsSUFBQSxjQUFPLEVBQUM7SUFDMUIsU0FBUyxFQUFFLE9BQU87SUFDbEIsSUFBSSxFQUFFLFNBQVM7SUFDZixPQUFPLEVBQUUsTUFBTTtJQUNmLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLElBQUksRUFBRSxRQUFRO0NBQ2YsQ0FBQyxDQUFBO0FBSVcsUUFBQSxJQUFJLEdBQUcsSUFBQSxjQUFPLEVBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFnQjtJQUM5RCxNQUFNLEdBQUcsR0FBRyxJQUFBLGNBQU8sRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUNoRSxNQUFNLElBQUEsaUNBQXVCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUN0RCxNQUFNLElBQUEsOEJBQW9CLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUVuRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFBLGtCQUFXLEdBQUUsQ0FBQyxDQUFBO0lBQzVELE1BQU0sYUFBYSxHQUFHLElBQUEsbUJBQU0sR0FBUSxDQUFBO0lBRXBDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUV4RixNQUFNLHNCQUFTLENBQUMsR0FBRyxDQUFvQjtRQUNyQyxLQUFLLENBQUMsY0FBYztZQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFBLG9DQUEwQixFQUFDLG9CQUFZLENBQUMsQ0FBQTtZQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFBLGlEQUEyQixrQkFDeEMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUNqQyxnQkFBZ0IsRUFBRSxTQUFTLElBQ3hCLE9BQU8sQ0FBQyxHQUFHLEVBQ2QsQ0FBQTtZQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxrQ0FBeUIsRUFBQyxFQUFFLENBQUMsQ0FBQTtZQUNoRCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsc0JBQWlCLEVBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQzVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxtQ0FBcUIsRUFBb0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUN4RyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsNEJBQW9CLEVBQUM7Z0JBQ3ZDLE9BQU87Z0JBQ1AsSUFBSTtnQkFDSixNQUFNO2FBQ1AsQ0FBQyxDQUFBO1lBRUYsT0FBTztnQkFDTCxJQUFJO2dCQUNKLGdCQUFnQixFQUFFLHNCQUFnQjtnQkFDbEMsS0FBSztnQkFDTCxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsTUFBTTtnQkFDTixFQUFFO2FBQ0gsQ0FBQTtRQUNILENBQUM7UUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtZQUN4QyxJQUFJO2dCQUNGLE1BQU0sSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO2dCQUN0RCxNQUFNLGVBQWUsRUFBRSxDQUFBO2dCQUN2QixhQUFhLENBQUMsT0FBTyxFQUFFLENBQUE7YUFDeEI7WUFBQyxPQUFPLEdBQVEsRUFBRTtnQkFDakIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUMxQjtRQUNILENBQUM7S0FDRixDQUFDLENBQUE7SUFFRixPQUFNO0FBQ1IsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCdcbmltcG9ydCB7IExpZmVjeWNsZSB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaW50ZXJmYWNlcydcbmltcG9ydCB7IHJvb21zTWV0cmljcywgY3JlYXRlUm9vbXNDb21wb25lbnQgfSBmcm9tICdAZGNsL21pbmktY29tbXMvZGlzdC9hZGFwdGVycy9yb29tcydcbmltcG9ydCB7IGNyZWF0ZVJlY29yZENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvZW52LWNvbmZpZy1wcm92aWRlcidcbmltcG9ydCB7IGNyZWF0ZVNlcnZlckNvbXBvbmVudCB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaHR0cC1zZXJ2ZXInXG5pbXBvcnQgeyBjcmVhdGVDb25zb2xlTG9nQ29tcG9uZW50IH0gZnJvbSAnQHdlbGwta25vd24tY29tcG9uZW50cy9sb2dnZXInXG5pbXBvcnQgeyBjcmVhdGVUZXN0TWV0cmljc0NvbXBvbmVudCB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvbWV0cmljcydcbmltcG9ydCB7IGNyZWF0ZVdzQ29tcG9uZW50IH0gZnJvbSAnLi93cydcbmltcG9ydCBmdXR1cmUgZnJvbSAnZnAtZnV0dXJlJ1xuXG5pbXBvcnQgeyBDbGlDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cydcbmltcG9ydCB7IGdldEFyZ3MgfSBmcm9tICcuLi8uLi91dGlscy9hcmdzJ1xuaW1wb3J0IHsgbWFpbiBhcyBoYW5kbGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGFuZGxlcidcbmltcG9ydCB7IFByZXZpZXdDb21wb25lbnRzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHZhbGlkYXRlRXhpc3RpbmdQcm9qZWN0LCB2YWxpZGF0ZVNjZW5lT3B0aW9ucyB9IGZyb20gJy4vcHJvamVjdCdcbmltcG9ydCB7IHByZXZpZXdQb3J0IH0gZnJvbSAnLi9wb3J0J1xuaW1wb3J0IHsgcHJvdmlkZXJJbnN0YW5jZSB9IGZyb20gJy4vZXRoJ1xuaW1wb3J0IHsgd2lyZSB9IGZyb20gJy4vd2lyZSdcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHAoKSB7XG4gIHJldHVybiBgYFxufVxuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIGFyZ3M6IE9taXQ8dHlwZW9mIGFyZ3MsICdfJz5cbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZmV0Y2gnIHwgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0td2F0Y2gnOiBCb29sZWFuLFxuICAnLXcnOiAnLS13YXRjaCcsXG4gICctLWRpcic6IFN0cmluZyxcbiAgJy0tcG9ydCc6IE51bWJlcixcbiAgJy1wJzogJy0tcG9ydCdcbn0pXG5cbi8vIGNvcHkvcGFzdGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL2NsaS9ibG9iLzMyZGU5NmJjZmM0ZWYxYzI2YzU1ODBjNzc2N2FkNmM4Y2FjM2IzNjcvc3JjL2xpYi9EZWNlbnRyYWxhbmQudHNcbi8vIFRPRE86IHJlZmFjdG9yIHRoaXMgc3R1ZmYgY29tcGxldGVseVxuZXhwb3J0IGNvbnN0IG1haW4gPSBoYW5kbGVyKGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGF3YWl0IHZhbGlkYXRlRXhpc3RpbmdQcm9qZWN0KG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuICBhd2FpdCB2YWxpZGF0ZVNjZW5lT3B0aW9ucyhvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcblxuICBjb25zdCBwb3J0ID0gb3B0aW9ucy5hcmdzWyctLXBvcnQnXSB8fCAoYXdhaXQgcHJldmlld1BvcnQoKSlcbiAgY29uc3Qgc3RhcnRlZEZ1dHVyZSA9IGZ1dHVyZTx2b2lkPigpXG5cbiAgc2V0VGltZW91dCgoKSA9PiBzdGFydGVkRnV0dXJlLnJlamVjdChuZXcgRXJyb3IoJ1RpbWVkIG91dCBzdGFydGluZyB0aGUgc2VydmVyJykpLCAzMDAwKVxuXG4gIGF3YWl0IExpZmVjeWNsZS5ydW48UHJldmlld0NvbXBvbmVudHM+KHtcbiAgICBhc3luYyBpbml0Q29tcG9uZW50cygpIHtcbiAgICAgIGNvbnN0IG1ldHJpY3MgPSBjcmVhdGVUZXN0TWV0cmljc0NvbXBvbmVudChyb29tc01ldHJpY3MpXG4gICAgICBjb25zdCBjb25maWcgPSBjcmVhdGVSZWNvcmRDb25maWdDb21wb25lbnQoe1xuICAgICAgICBIVFRQX1NFUlZFUl9QT1JUOiBwb3J0LnRvU3RyaW5nKCksXG4gICAgICAgIEhUVFBfU0VSVkVSX0hPU1Q6ICcwLjAuMC4wJyxcbiAgICAgICAgLi4ucHJvY2Vzcy5lbnZcbiAgICAgIH0pXG4gICAgICBjb25zdCBsb2dzID0gYXdhaXQgY3JlYXRlQ29uc29sZUxvZ0NvbXBvbmVudCh7fSlcbiAgICAgIGNvbnN0IHdzID0gYXdhaXQgY3JlYXRlV3NDb21wb25lbnQoeyBsb2dzIH0pXG4gICAgICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBjcmVhdGVTZXJ2ZXJDb21wb25lbnQ8UHJldmlld0NvbXBvbmVudHM+KHsgY29uZmlnLCBsb2dzLCB3czogd3Mud3MgfSwgeyBjb3JzOiB7fSB9KVxuICAgICAgY29uc3Qgcm9vbXMgPSBhd2FpdCBjcmVhdGVSb29tc0NvbXBvbmVudCh7XG4gICAgICAgIG1ldHJpY3MsXG4gICAgICAgIGxvZ3MsXG4gICAgICAgIGNvbmZpZ1xuICAgICAgfSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbG9ncyxcbiAgICAgICAgZXRoZXJldW1Qcm92aWRlcjogcHJvdmlkZXJJbnN0YW5jZSxcbiAgICAgICAgcm9vbXMsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgbWV0cmljcyxcbiAgICAgICAgc2VydmVyLFxuICAgICAgICB3c1xuICAgICAgfVxuICAgIH0sXG4gICAgYXN5bmMgbWFpbih7IGNvbXBvbmVudHMsIHN0YXJ0Q29tcG9uZW50cyB9KSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB3aXJlKGRpciwgY29tcG9uZW50cywgISFvcHRpb25zLmFyZ3NbJy0td2F0Y2gnXSlcbiAgICAgICAgYXdhaXQgc3RhcnRDb21wb25lbnRzKClcbiAgICAgICAgc3RhcnRlZEZ1dHVyZS5yZXNvbHZlKClcbiAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgIHN0YXJ0ZWRGdXR1cmUucmVqZWN0KGVycilcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuXG59KVxuIl19
72
+ return program;
73
+ }
74
+ exports.main = main;
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBOEI7QUFDOUIsMERBQThCO0FBQzlCLGtFQUE2RTtBQUM3RSwrREFBd0Y7QUFDeEYsb0ZBQXdGO0FBQ3hGLG9FQUEwRTtBQUMxRSwwREFBeUU7QUFDekUsNERBQTJFO0FBQzNFLDZCQUF3QztBQUd4QywyQ0FBMEM7QUFFMUMsdUNBQXlFO0FBQ3pFLGlDQUFvQztBQUNwQywrQkFBd0M7QUFDeEMsaUNBQTZCO0FBRTdCLFNBQWdCLElBQUk7SUFDbEIsT0FBTyxFQUFFLENBQUE7QUFDWCxDQUFDO0FBRkQsb0JBRUM7QUFPWSxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQixJQUFJLEVBQUUsU0FBUztJQUNmLE9BQU8sRUFBRSxNQUFNO0lBQ2YsUUFBUSxFQUFFLE1BQU07SUFDaEIsSUFBSSxFQUFFLFFBQVE7Q0FDZixDQUFDLENBQUE7QUFJSyxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQWdCO0lBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sSUFBQSxpQ0FBdUIsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sSUFBQSw4QkFBb0IsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBRW5ELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUEsa0JBQVcsR0FBRSxDQUFDLENBQUE7SUFFNUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxzQkFBUyxDQUFDLEdBQUcsQ0FBb0I7UUFDckQsS0FBSyxDQUFDLGNBQWM7WUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBQSxvQ0FBMEIsRUFBQyxvQkFBWSxDQUFDLENBQUE7WUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxpREFBMkIsa0JBQ3hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDakMsZ0JBQWdCLEVBQUUsU0FBUyxJQUN4QixPQUFPLENBQUMsR0FBRyxFQUNkLENBQUE7WUFDRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsa0NBQXlCLEVBQUMsRUFBRSxDQUFDLENBQUE7WUFDaEQsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLHNCQUFpQixFQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUM1QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsbUNBQXFCLEVBQW9CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDeEcsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFBLDRCQUFvQixFQUFDO2dCQUN2QyxPQUFPO2dCQUNQLElBQUk7Z0JBQ0osTUFBTTthQUNQLENBQUMsQ0FBQTtZQUVGLE1BQU0sYUFBYSxHQUFHLElBQUEsbUJBQU0sR0FBUSxDQUFBO1lBQ3BDLE1BQU0sUUFBUSxHQUF3QztnQkFDcEQsYUFBYTtnQkFDYixLQUFLLENBQUMsSUFBSTtvQkFHUixhQUFhLENBQUMsT0FBTyxFQUFFLENBQUE7Z0JBQ3pCLENBQUM7YUFDRixDQUFBO1lBRUQsT0FBTztnQkFDTCxJQUFJO2dCQUNKLGdCQUFnQixFQUFFLHNCQUFnQjtnQkFDbEMsS0FBSztnQkFDTCxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsTUFBTTtnQkFDTixFQUFFO2dCQUNGLFFBQVE7YUFDVCxDQUFBO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFO1lBQ3hDLE1BQU0sSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1lBQzNCLE1BQU0sZUFBZSxFQUFFLENBQUE7UUFDekIsQ0FBQztLQUNGLENBQUMsQ0FBQTtJQUVGLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFwREQsb0JBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgZnV0dXJlIGZyb20gJ2ZwLWZ1dHVyZSdcbmltcG9ydCB7IExpZmVjeWNsZSwgSUJhc2VDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2ludGVyZmFjZXMnXG5pbXBvcnQgeyByb29tc01ldHJpY3MsIGNyZWF0ZVJvb21zQ29tcG9uZW50IH0gZnJvbSAnQGRjbC9taW5pLWNvbW1zL2Rpc3QvYWRhcHRlcnMvcm9vbXMnXG5pbXBvcnQgeyBjcmVhdGVSZWNvcmRDb25maWdDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2Vudi1jb25maWctcHJvdmlkZXInXG5pbXBvcnQgeyBjcmVhdGVTZXJ2ZXJDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL2h0dHAtc2VydmVyJ1xuaW1wb3J0IHsgY3JlYXRlQ29uc29sZUxvZ0NvbXBvbmVudCB9IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvbG9nZ2VyJ1xuaW1wb3J0IHsgY3JlYXRlVGVzdE1ldHJpY3NDb21wb25lbnQgfSBmcm9tICdAd2VsbC1rbm93bi1jb21wb25lbnRzL21ldHJpY3MnXG5pbXBvcnQgeyBjcmVhdGVXc0NvbXBvbmVudCB9IGZyb20gJy4vd3MnXG5cbmltcG9ydCB7IENsaUNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJ1xuaW1wb3J0IHsgZ2V0QXJncyB9IGZyb20gJy4uLy4uL3V0aWxzL2FyZ3MnXG5pbXBvcnQgeyBJU2lnbmFsZXJDb21wb25lbnQsIFByZXZpZXdDb21wb25lbnRzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHZhbGlkYXRlRXhpc3RpbmdQcm9qZWN0LCB2YWxpZGF0ZVNjZW5lT3B0aW9ucyB9IGZyb20gJy4vcHJvamVjdCdcbmltcG9ydCB7IHByZXZpZXdQb3J0IH0gZnJvbSAnLi9wb3J0J1xuaW1wb3J0IHsgcHJvdmlkZXJJbnN0YW5jZSB9IGZyb20gJy4vZXRoJ1xuaW1wb3J0IHsgd2lyZSB9IGZyb20gJy4vd2lyZSdcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHAoKSB7XG4gIHJldHVybiBgYFxufVxuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIGFyZ3M6IE9taXQ8dHlwZW9mIGFyZ3MsICdfJz5cbiAgY29tcG9uZW50czogUGljazxDbGlDb21wb25lbnRzLCAnZmV0Y2gnIHwgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0td2F0Y2gnOiBCb29sZWFuLFxuICAnLXcnOiAnLS13YXRjaCcsXG4gICctLWRpcic6IFN0cmluZyxcbiAgJy0tcG9ydCc6IE51bWJlcixcbiAgJy1wJzogJy0tcG9ydCdcbn0pXG5cbi8vIGNvcHkvcGFzdGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL2NsaS9ibG9iLzMyZGU5NmJjZmM0ZWYxYzI2YzU1ODBjNzc2N2FkNmM4Y2FjM2IzNjcvc3JjL2xpYi9EZWNlbnRyYWxhbmQudHNcbi8vIFRPRE86IHJlZmFjdG9yIHRoaXMgc3R1ZmYgY29tcGxldGVseVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGF3YWl0IHZhbGlkYXRlRXhpc3RpbmdQcm9qZWN0KG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuICBhd2FpdCB2YWxpZGF0ZVNjZW5lT3B0aW9ucyhvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcblxuICBjb25zdCBwb3J0ID0gb3B0aW9ucy5hcmdzWyctLXBvcnQnXSB8fCAoYXdhaXQgcHJldmlld1BvcnQoKSlcblxuICBjb25zdCBwcm9ncmFtID0gYXdhaXQgTGlmZWN5Y2xlLnJ1bjxQcmV2aWV3Q29tcG9uZW50cz4oe1xuICAgIGFzeW5jIGluaXRDb21wb25lbnRzKCkge1xuICAgICAgY29uc3QgbWV0cmljcyA9IGNyZWF0ZVRlc3RNZXRyaWNzQ29tcG9uZW50KHJvb21zTWV0cmljcylcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGNyZWF0ZVJlY29yZENvbmZpZ0NvbXBvbmVudCh7XG4gICAgICAgIEhUVFBfU0VSVkVSX1BPUlQ6IHBvcnQudG9TdHJpbmcoKSxcbiAgICAgICAgSFRUUF9TRVJWRVJfSE9TVDogJzAuMC4wLjAnLFxuICAgICAgICAuLi5wcm9jZXNzLmVudlxuICAgICAgfSlcbiAgICAgIGNvbnN0IGxvZ3MgPSBhd2FpdCBjcmVhdGVDb25zb2xlTG9nQ29tcG9uZW50KHt9KVxuICAgICAgY29uc3Qgd3MgPSBhd2FpdCBjcmVhdGVXc0NvbXBvbmVudCh7IGxvZ3MgfSlcbiAgICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IGNyZWF0ZVNlcnZlckNvbXBvbmVudDxQcmV2aWV3Q29tcG9uZW50cz4oeyBjb25maWcsIGxvZ3MsIHdzOiB3cy53cyB9LCB7IGNvcnM6IHt9IH0pXG4gICAgICBjb25zdCByb29tcyA9IGF3YWl0IGNyZWF0ZVJvb21zQ29tcG9uZW50KHtcbiAgICAgICAgbWV0cmljcyxcbiAgICAgICAgbG9ncyxcbiAgICAgICAgY29uZmlnXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBwcm9ncmFtQ2xvc2VkID0gZnV0dXJlPHZvaWQ+KClcbiAgICAgIGNvbnN0IHNpZ25hbGVyOiBJQmFzZUNvbXBvbmVudCAmIElTaWduYWxlckNvbXBvbmVudCA9IHtcbiAgICAgICAgcHJvZ3JhbUNsb3NlZCxcbiAgICAgICAgYXN5bmMgc3RvcCgpIHtcbiAgICAgICAgICAvLyB0aGlzIHByb21pc2UgaXMgcmVzb2x2ZWQgdXBvbiBTSUdURVJNIG9yIFNJR0hVUFxuICAgICAgICAgIC8vIG9yIHdoZW4gcHJvZ3JhbS5zdG9wIGlzIGNhbGxlZFxuICAgICAgICAgIHByb2dyYW1DbG9zZWQucmVzb2x2ZSgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbG9ncyxcbiAgICAgICAgZXRoZXJldW1Qcm92aWRlcjogcHJvdmlkZXJJbnN0YW5jZSxcbiAgICAgICAgcm9vbXMsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgbWV0cmljcyxcbiAgICAgICAgc2VydmVyLFxuICAgICAgICB3cyxcbiAgICAgICAgc2lnbmFsZXJcbiAgICAgIH1cbiAgICB9LFxuICAgIGFzeW5jIG1haW4oeyBjb21wb25lbnRzLCBzdGFydENvbXBvbmVudHMgfSkge1xuICAgICAgYXdhaXQgd2lyZShkaXIsIGNvbXBvbmVudHMpXG4gICAgICBhd2FpdCBzdGFydENvbXBvbmVudHMoKVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gcHJvZ3JhbVxufVxuIl19
@@ -1,17 +1,16 @@
1
1
  import { resolve } from 'path'
2
- import { Lifecycle } from '@well-known-components/interfaces'
2
+ import future from 'fp-future'
3
+ import { Lifecycle, IBaseComponent } from '@well-known-components/interfaces'
3
4
  import { roomsMetrics, createRoomsComponent } from '@dcl/mini-comms/dist/adapters/rooms'
4
5
  import { createRecordConfigComponent } from '@well-known-components/env-config-provider'
5
6
  import { createServerComponent } from '@well-known-components/http-server'
6
7
  import { createConsoleLogComponent } from '@well-known-components/logger'
7
8
  import { createTestMetricsComponent } from '@well-known-components/metrics'
8
9
  import { createWsComponent } from './ws'
9
- import future from 'fp-future'
10
10
 
11
11
  import { CliComponents } from '../../components'
12
12
  import { getArgs } from '../../utils/args'
13
- import { main as handler } from '../../utils/handler'
14
- import { PreviewComponents } from './types'
13
+ import { ISignalerComponent, PreviewComponents } from './types'
15
14
  import { validateExistingProject, validateSceneOptions } from './project'
16
15
  import { previewPort } from './port'
17
16
  import { providerInstance } from './eth'
@@ -36,17 +35,14 @@ export const args = getArgs({
36
35
 
37
36
  // copy/paste from https://github.com/decentraland/cli/blob/32de96bcfc4ef1c26c5580c7767ad6c8cac3b367/src/lib/Decentraland.ts
38
37
  // TODO: refactor this stuff completely
39
- export const main = handler(async function main(options: Options) {
38
+ export async function main(options: Options) {
40
39
  const dir = resolve(process.cwd(), options.args['--dir'] || '.')
41
40
  await validateExistingProject(options.components, dir)
42
41
  await validateSceneOptions(options.components, dir)
43
42
 
44
43
  const port = options.args['--port'] || (await previewPort())
45
- const startedFuture = future<void>()
46
44
 
47
- setTimeout(() => startedFuture.reject(new Error('Timed out starting the server')), 3000)
48
-
49
- await Lifecycle.run<PreviewComponents>({
45
+ const program = await Lifecycle.run<PreviewComponents>({
50
46
  async initComponents() {
51
47
  const metrics = createTestMetricsComponent(roomsMetrics)
52
48
  const config = createRecordConfigComponent({
@@ -63,6 +59,16 @@ export const main = handler(async function main(options: Options) {
63
59
  config
64
60
  })
65
61
 
62
+ const programClosed = future<void>()
63
+ const signaler: IBaseComponent & ISignalerComponent = {
64
+ programClosed,
65
+ async stop() {
66
+ // this promise is resolved upon SIGTERM or SIGHUP
67
+ // or when program.stop is called
68
+ programClosed.resolve()
69
+ }
70
+ }
71
+
66
72
  return {
67
73
  logs,
68
74
  ethereumProvider: providerInstance,
@@ -70,19 +76,15 @@ export const main = handler(async function main(options: Options) {
70
76
  config,
71
77
  metrics,
72
78
  server,
73
- ws
79
+ ws,
80
+ signaler
74
81
  }
75
82
  },
76
83
  async main({ components, startComponents }) {
77
- try {
78
- await wire(dir, components, !!options.args['--watch'])
79
- await startComponents()
80
- startedFuture.resolve()
81
- } catch (err: any) {
82
- startedFuture.reject(err)
83
- }
84
+ await wire(dir, components)
85
+ await startComponents()
84
86
  }
85
87
  })
86
88
 
87
- return
88
- })
89
+ return program
90
+ }
@@ -10,4 +10,8 @@ export type PreviewComponents = {
10
10
  ethereumProvider: HTTPProvider;
11
11
  rooms: RoomComponent;
12
12
  ws: WebSocketComponent;
13
+ signaler: ISignalerComponent;
14
+ };
15
+ export type ISignalerComponent = {
16
+ programClosed: Promise<void>;
13
17
  };
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUxvZ2dlckNvbXBvbmVudCxcbiAgSU1ldHJpY3NDb21wb25lbnQsXG4gIElIdHRwU2VydmVyQ29tcG9uZW50LFxuICBJQ29uZmlnQ29tcG9uZW50XG59IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaW50ZXJmYWNlcydcbmltcG9ydCB7IEhUVFBQcm92aWRlciB9IGZyb20gJ2V0aC1jb25uZWN0J1xuaW1wb3J0IHsgUm9vbUNvbXBvbmVudCB9IGZyb20gJ0BkY2wvbWluaS1jb21tcy9kaXN0L2FkYXB0ZXJzL3Jvb21zJ1xuaW1wb3J0IHsgV2ViU29ja2V0Q29tcG9uZW50IH0gZnJvbSAnLi93cydcblxuZXhwb3J0IHR5cGUgUHJldmlld0NvbXBvbmVudHMgPSB7XG4gIGxvZ3M6IElMb2dnZXJDb21wb25lbnRcbiAgc2VydmVyOiBJSHR0cFNlcnZlckNvbXBvbmVudDxQcmV2aWV3Q29tcG9uZW50cz5cbiAgY29uZmlnOiBJQ29uZmlnQ29tcG9uZW50XG4gIG1ldHJpY3M6IElNZXRyaWNzQ29tcG9uZW50PGFueT5cbiAgZXRoZXJldW1Qcm92aWRlcjogSFRUUFByb3ZpZGVyXG4gIHJvb21zOiBSb29tQ29tcG9uZW50XG4gIHdzOiBXZWJTb2NrZXRDb21wb25lbnRcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUxvZ2dlckNvbXBvbmVudCxcbiAgSU1ldHJpY3NDb21wb25lbnQsXG4gIElIdHRwU2VydmVyQ29tcG9uZW50LFxuICBJQ29uZmlnQ29tcG9uZW50XG59IGZyb20gJ0B3ZWxsLWtub3duLWNvbXBvbmVudHMvaW50ZXJmYWNlcydcbmltcG9ydCB7IEhUVFBQcm92aWRlciB9IGZyb20gJ2V0aC1jb25uZWN0J1xuaW1wb3J0IHsgUm9vbUNvbXBvbmVudCB9IGZyb20gJ0BkY2wvbWluaS1jb21tcy9kaXN0L2FkYXB0ZXJzL3Jvb21zJ1xuaW1wb3J0IHsgV2ViU29ja2V0Q29tcG9uZW50IH0gZnJvbSAnLi93cydcblxuZXhwb3J0IHR5cGUgUHJldmlld0NvbXBvbmVudHMgPSB7XG4gIGxvZ3M6IElMb2dnZXJDb21wb25lbnRcbiAgc2VydmVyOiBJSHR0cFNlcnZlckNvbXBvbmVudDxQcmV2aWV3Q29tcG9uZW50cz5cbiAgY29uZmlnOiBJQ29uZmlnQ29tcG9uZW50XG4gIG1ldHJpY3M6IElNZXRyaWNzQ29tcG9uZW50PGFueT5cbiAgZXRoZXJldW1Qcm92aWRlcjogSFRUUFByb3ZpZGVyXG4gIHJvb21zOiBSb29tQ29tcG9uZW50XG4gIHdzOiBXZWJTb2NrZXRDb21wb25lbnRcbiAgc2lnbmFsZXI6IElTaWduYWxlckNvbXBvbmVudFxufVxuXG5leHBvcnQgdHlwZSBJU2lnbmFsZXJDb21wb25lbnQgPSB7XG4gIC8vIHByb2dyYW1DbG9zZWQgcmVzb2x2ZXMgd2hlbiB0aGUgY29tcG9uZW50IGlzIHN0b3BwZWRcbiAgcHJvZ3JhbUNsb3NlZDogUHJvbWlzZTx2b2lkPlxufVxuIl19