@dcl/sdk 7.0.6-4197739270.commit-db87ed8 → 7.0.6-4217957637.commit-a393ef7
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.
- package/package.json +6 -30
- package/cli/commands/build/helpers.d.ts +0 -21
- package/cli/commands/build/helpers.js +0 -50
- package/cli/commands/build/helpers.ts +0 -89
- package/cli/commands/build/index.d.ts +0 -19
- package/cli/commands/build/index.js +0 -69
- package/cli/commands/build/index.ts +0 -91
- package/cli/commands/init/index.d.ts +0 -17
- package/cli/commands/init/index.js +0 -51
- package/cli/commands/init/index.ts +0 -67
- package/cli/commands/init/repos.d.ts +0 -9
- package/cli/commands/init/repos.js +0 -12
- package/cli/commands/init/repos.ts +0 -17
- package/cli/commands/preview/bff.d.ts +0 -3
- package/cli/commands/preview/bff.js +0 -54
- package/cli/commands/preview/bff.ts +0 -63
- package/cli/commands/preview/catalyst.d.ts +0 -5
- package/cli/commands/preview/catalyst.js +0 -24
- package/cli/commands/preview/catalyst.ts +0 -31
- package/cli/commands/preview/coordinates.d.ts +0 -20
- package/cli/commands/preview/coordinates.js +0 -90
- package/cli/commands/preview/coordinates.ts +0 -146
- package/cli/commands/preview/endpoints.d.ts +0 -10
- package/cli/commands/preview/endpoints.js +0 -455
- package/cli/commands/preview/endpoints.ts +0 -568
- package/cli/commands/preview/eth.d.ts +0 -2
- package/cli/commands/preview/eth.js +0 -6
- package/cli/commands/preview/eth.ts +0 -3
- package/cli/commands/preview/index.d.ts +0 -20
- package/cli/commands/preview/index.js +0 -100
- package/cli/commands/preview/index.ts +0 -98
- package/cli/commands/preview/port.d.ts +0 -1
- package/cli/commands/preview/port.js +0 -21
- package/cli/commands/preview/port.ts +0 -15
- package/cli/commands/preview/project.d.ts +0 -14
- package/cli/commands/preview/project.js +0 -77
- package/cli/commands/preview/project.ts +0 -112
- package/cli/commands/preview/types.d.ts +0 -18
- package/cli/commands/preview/types.js +0 -3
- package/cli/commands/preview/types.ts +0 -26
- package/cli/commands/preview/wire.d.ts +0 -2
- package/cli/commands/preview/wire.js +0 -66
- package/cli/commands/preview/wire.ts +0 -70
- package/cli/commands/preview/ws.d.ts +0 -7
- package/cli/commands/preview/ws.js +0 -16
- package/cli/commands/preview/ws.ts +0 -24
- package/cli/commands/start/index.d.ts +0 -29
- package/cli/commands/start/index.js +0 -126
- package/cli/commands/start/index.ts +0 -145
- package/cli/components/fetch.d.ts +0 -5
- package/cli/components/fetch.js +0 -34
- package/cli/components/fetch.ts +0 -11
- package/cli/components/fs.d.ts +0 -12
- package/cli/components/fs.js +0 -69
- package/cli/components/fs.ts +0 -62
- package/cli/components/index.d.ts +0 -7
- package/cli/components/index.js +0 -13
- package/cli/components/index.ts +0 -14
- package/cli/index.d.ts +0 -7
- package/cli/index.js +0 -76
- package/cli/index.ts +0 -85
- package/cli/utils/args.d.ts +0 -10
- package/cli/utils/args.js +0 -16
- package/cli/utils/args.ts +0 -18
- package/cli/utils/commands.d.ts +0 -3
- package/cli/utils/commands.js +0 -24
- package/cli/utils/commands.ts +0 -28
- package/cli/utils/dcl-ignore.d.ts +0 -4
- package/cli/utils/dcl-ignore.js +0 -44
- package/cli/utils/dcl-ignore.ts +0 -45
- package/cli/utils/error.d.ts +0 -2
- package/cli/utils/error.js +0 -7
- package/cli/utils/error.ts +0 -1
- package/cli/utils/exec.d.ts +0 -8
- package/cli/utils/exec.js +0 -32
- package/cli/utils/exec.ts +0 -42
- package/cli/utils/fs.d.ts +0 -10
- package/cli/utils/fs.js +0 -26
- package/cli/utils/fs.ts +0 -41
- package/cli/utils/log.d.ts +0 -5
- package/cli/utils/log.js +0 -29
- package/cli/utils/log.ts +0 -39
- package/cli/utils/object.d.ts +0 -9
- package/cli/utils/object.js +0 -45
- package/cli/utils/object.ts +0 -62
- package/cli/utils/out-messages.d.ts +0 -1
- package/cli/utils/out-messages.js +0 -8
- package/cli/utils/out-messages.ts +0 -3
package/package.json
CHANGED
@@ -1,18 +1,14 @@
|
|
1
1
|
{
|
2
2
|
"name": "@dcl/sdk",
|
3
|
-
"version": "7.0.6-
|
3
|
+
"version": "7.0.6-4217957637.commit-a393ef7",
|
4
4
|
"description": "",
|
5
5
|
"main": "./index.js",
|
6
6
|
"typings": "./index.d.ts",
|
7
7
|
"types": "./index.d.ts",
|
8
8
|
"scripts": {
|
9
9
|
"build": "tsc -p tsconfig.json",
|
10
|
-
"build:cli": "tsc -p tsconfig.cli.json",
|
11
10
|
"start": "npm run build && tsc -p tsconfig.json --watch"
|
12
11
|
},
|
13
|
-
"bin": {
|
14
|
-
"sdk-commands": "./cli/index.js"
|
15
|
-
},
|
16
12
|
"keywords": [],
|
17
13
|
"tsdoc": {
|
18
14
|
"tsdocFlavor": "AEDoc"
|
@@ -20,32 +16,12 @@
|
|
20
16
|
"author": "Decentraland",
|
21
17
|
"license": "Apache-2.0",
|
22
18
|
"dependencies": {
|
23
|
-
"@dcl/
|
24
|
-
"@dcl/ecs": "7.0.6-4197739270.commit-db87ed8",
|
19
|
+
"@dcl/ecs": "7.0.6-4217957637.commit-a393ef7",
|
25
20
|
"@dcl/ecs-math": "2.0.1-20221129185242.commit-40495c1",
|
26
21
|
"@dcl/explorer": "1.0.81966-20230215010724.commit-64eb73f",
|
27
|
-
"@dcl/js-runtime": "7.0.6-
|
28
|
-
"@dcl/
|
29
|
-
"@dcl/
|
30
|
-
"@dcl/react-ecs": "7.0.6-4197739270.commit-db87ed8",
|
31
|
-
"@dcl/schemas": "6.10.0",
|
32
|
-
"@well-known-components/env-config-provider": "^1.2.0",
|
33
|
-
"@well-known-components/http-server": "^2.0.0-20230216161243.commit-bfe3f0a",
|
34
|
-
"@well-known-components/logger": "^3.1.2",
|
35
|
-
"@well-known-components/metrics": "^2.0.1",
|
36
|
-
"arg": "5.0.2",
|
37
|
-
"chokidar": "^3.5.3",
|
38
|
-
"colorette": "^2.0.19",
|
39
|
-
"extract-zip": "2.0.1",
|
40
|
-
"ignore": "^5.2.4",
|
41
|
-
"node-fetch": "^2.6.8",
|
42
|
-
"open": "^8.4.0",
|
43
|
-
"portfinder": "^1.0.32",
|
44
|
-
"undici": "^5.19.1"
|
45
|
-
},
|
46
|
-
"devDependencies": {
|
47
|
-
"@types/node-fetch": "^2.6.1",
|
48
|
-
"@types/ws": "^8.5.4"
|
22
|
+
"@dcl/js-runtime": "7.0.6-4217957637.commit-a393ef7",
|
23
|
+
"@dcl/react-ecs": "7.0.6-4217957637.commit-a393ef7",
|
24
|
+
"@dcl/sdk-commands": "7.0.0-4217957637.commit-a393ef7"
|
49
25
|
},
|
50
26
|
"minCliVersion": "3.14.1",
|
51
27
|
"typedoc": {
|
@@ -54,5 +30,5 @@
|
|
54
30
|
"displayName": "SDK",
|
55
31
|
"tsconfig": "./tsconfig.json"
|
56
32
|
},
|
57
|
-
"commit": "
|
33
|
+
"commit": "a393ef72d7ad52edf0a4c2f49ad2e22668c7a88d"
|
58
34
|
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { IFileSystemComponent } from '../../components/fs';
|
2
|
-
import { Dict } from '../../utils/object';
|
3
|
-
export declare const REQUIRED_FILES: {
|
4
|
-
PACKAGE_JSON: string;
|
5
|
-
TS_CONFIG_JSON: string;
|
6
|
-
SCENE_JSON: string;
|
7
|
-
};
|
8
|
-
export declare const REQUIRED_PACKAGE_JSON: {};
|
9
|
-
export declare const getProjectStructure: () => string[];
|
10
|
-
export declare const validateProjectStructure: (components: {
|
11
|
-
fs: IFileSystemComponent;
|
12
|
-
}, dir: string, fileList: string[]) => Promise<boolean>;
|
13
|
-
export declare const validatePackageJson: (components: {
|
14
|
-
fs: IFileSystemComponent;
|
15
|
-
}, dir: string, deps: Dict) => Promise<boolean>;
|
16
|
-
export declare function needsDependencies(components: {
|
17
|
-
fs: IFileSystemComponent;
|
18
|
-
}, dir: string): Promise<boolean>;
|
19
|
-
export declare const npm: string;
|
20
|
-
export declare function installDependencies(dir: string): Promise<void>;
|
21
|
-
export declare function npmRun(cwd: string, command: string, ...args: string[]): Promise<void>;
|
@@ -1,50 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
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
|
-
const path_1 = require("path");
|
5
|
-
const exec_1 = require("../../utils/exec");
|
6
|
-
const log_1 = require("../../utils/log");
|
7
|
-
const object_1 = require("../../utils/object");
|
8
|
-
exports.REQUIRED_FILES = {
|
9
|
-
PACKAGE_JSON: 'package.json',
|
10
|
-
TS_CONFIG_JSON: 'tsconfig.json',
|
11
|
-
SCENE_JSON: 'scene.json'
|
12
|
-
};
|
13
|
-
exports.REQUIRED_PACKAGE_JSON = {};
|
14
|
-
const getProjectStructure = () => Object.values(exports.REQUIRED_FILES);
|
15
|
-
exports.getProjectStructure = getProjectStructure;
|
16
|
-
const validateProjectStructure = async (components, dir, fileList) => {
|
17
|
-
const files = await components.fs.readdir(dir);
|
18
|
-
const requiredFiles = new Set(fileList);
|
19
|
-
for (let i = 0; i < files.length && requiredFiles.size > 0; i++) {
|
20
|
-
if (requiredFiles.has(files[i])) {
|
21
|
-
requiredFiles.delete(files[i]);
|
22
|
-
}
|
23
|
-
}
|
24
|
-
return requiredFiles.size === 0;
|
25
|
-
};
|
26
|
-
exports.validateProjectStructure = validateProjectStructure;
|
27
|
-
const validatePackageJson = async (components, dir, deps) => {
|
28
|
-
const packageJson = JSON.parse(await components.fs.readFile((0, path_1.resolve)(dir, exports.REQUIRED_FILES.PACKAGE_JSON), 'utf-8'));
|
29
|
-
return (0, object_1.hasPrimitiveKeys)(packageJson, deps);
|
30
|
-
};
|
31
|
-
exports.validatePackageJson = validatePackageJson;
|
32
|
-
async function needsDependencies(components, dir) {
|
33
|
-
const nodeModulesPath = (0, path_1.resolve)(dir, 'node_modules');
|
34
|
-
const hasNodeModulesFolder = await components.fs.directoryExists(nodeModulesPath);
|
35
|
-
const isNodeModulesEmpty = hasNodeModulesFolder && (await components.fs.readdir(nodeModulesPath)).length === 0;
|
36
|
-
return !hasNodeModulesFolder || isNodeModulesEmpty;
|
37
|
-
}
|
38
|
-
exports.needsDependencies = needsDependencies;
|
39
|
-
exports.npm = /^win/.test(process.platform) ? 'npm.cmd' : 'npm';
|
40
|
-
async function installDependencies(dir) {
|
41
|
-
(0, log_1.info)('Installing dependencies...');
|
42
|
-
await (0, exec_1.exec)(dir, exports.npm, ['install']);
|
43
|
-
(0, log_1.succeed)('Dependencies installed');
|
44
|
-
}
|
45
|
-
exports.installDependencies = installDependencies;
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQThCO0FBRzlCLDJDQUF1QztBQUN2Qyx5Q0FBK0M7QUFDL0MsK0NBQTJEO0FBSzlDLFFBQUEsY0FBYyxHQUFHO0lBQzVCLFlBQVksRUFBRSxjQUFjO0lBQzVCLGNBQWMsRUFBRSxlQUFlO0lBQy9CLFVBQVUsRUFBRSxZQUFZO0NBQ3pCLENBQUE7QUFLWSxRQUFBLHFCQUFxQixHQUFHLEVBQUUsQ0FBQTtBQUtoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsc0JBQWMsQ0FBQyxDQUFBO0FBQXpELFFBQUEsbUJBQW1CLHVCQUFzQztBQUsvRCxNQUFNLHdCQUF3QixHQUFHLEtBQUssRUFDM0MsVUFBd0MsRUFDeEMsR0FBVyxFQUNYLFFBQWtCLEVBQ0EsRUFBRTtJQUNwQixNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzlDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQy9ELElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQixhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQy9CO0tBQ0Y7SUFFRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFBO0FBQ2pDLENBQUMsQ0FBQTtBQWZZLFFBQUEsd0JBQXdCLDRCQWVwQztBQUtNLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxFQUN0QyxVQUF3QyxFQUN4QyxHQUFXLEVBQ1gsSUFBVSxFQUNRLEVBQUU7SUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxzQkFBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDaEgsT0FBTyxJQUFBLHlCQUFnQixFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUM1QyxDQUFDLENBQUE7QUFQWSxRQUFBLG1CQUFtQix1QkFPL0I7QUFLTSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsVUFBd0MsRUFBRSxHQUFXO0lBQzNGLE1BQU0sZUFBZSxHQUFHLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNwRCxNQUFNLG9CQUFvQixHQUFHLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDakYsTUFBTSxrQkFBa0IsR0FBRyxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFBO0lBRTlHLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxrQkFBa0IsQ0FBQTtBQUNwRCxDQUFDO0FBTkQsOENBTUM7QUFHWSxRQUFBLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFLN0QsS0FBSyxVQUFVLG1CQUFtQixDQUFDLEdBQVc7SUFDbkQsSUFBQSxVQUFJLEVBQUMsNEJBQTRCLENBQUMsQ0FBQTtJQUVsQyxNQUFNLElBQUEsV0FBSSxFQUFDLEdBQUcsRUFBRSxXQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLElBQUEsYUFBTyxFQUFDLHdCQUF3QixDQUFDLENBQUE7QUFDbkMsQ0FBQztBQUxELGtEQUtDO0FBS00sS0FBSyxVQUFVLE1BQU0sQ0FBQyxHQUFXLEVBQUUsT0FBZSxFQUFFLEdBQUcsSUFBYztJQUUxRSxNQUFNLElBQUEsV0FBSSxFQUFDLEdBQUcsRUFBRSxXQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBVSxFQUFFLENBQUMsQ0FBQTtBQUNoRyxDQUFDO0FBSEQsd0JBR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCdcblxuaW1wb3J0IHsgSUZpbGVTeXN0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2ZzJ1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJy4uLy4uL3V0aWxzL2V4ZWMnXG5pbXBvcnQgeyBpbmZvLCBzdWNjZWVkIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9nJ1xuaW1wb3J0IHsgRGljdCwgaGFzUHJpbWl0aXZlS2V5cyB9IGZyb20gJy4uLy4uL3V0aWxzL29iamVjdCdcblxuLyoqXG4gKiBSZXF1aXJlZCBwcm9qZWN0IGRpcnMvZmlsZXNcbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX0ZJTEVTID0ge1xuICBQQUNLQUdFX0pTT046ICdwYWNrYWdlLmpzb24nLFxuICBUU19DT05GSUdfSlNPTjogJ3RzY29uZmlnLmpzb24nLFxuICBTQ0VORV9KU09OOiAnc2NlbmUuanNvbidcbn1cblxuLyoqXG4gKiBSZXF1aXJlZCBcInBhY2thZ2UuanNvblwiIHN0cnVjdHVyZVxuICovXG5leHBvcnQgY29uc3QgUkVRVUlSRURfUEFDS0FHRV9KU09OID0ge31cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSByZXF1aXJlZCBmaWxlcyBmb3IgYSBwcm9qZWN0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQcm9qZWN0U3RydWN0dXJlID0gKCkgPT4gT2JqZWN0LnZhbHVlcyhSRVFVSVJFRF9GSUxFUylcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb2plY3QgZm9sbG93cyBhIHZhbGlkIHNjZW5lIHN0cnVjdHVyZVxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQcm9qZWN0U3RydWN0dXJlID0gYXN5bmMgKFxuICBjb21wb25lbnRzOiB7IGZzOiBJRmlsZVN5c3RlbUNvbXBvbmVudCB9LFxuICBkaXI6IHN0cmluZyxcbiAgZmlsZUxpc3Q6IHN0cmluZ1tdXG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgZmlsZXMgPSBhd2FpdCBjb21wb25lbnRzLmZzLnJlYWRkaXIoZGlyKVxuICBjb25zdCByZXF1aXJlZEZpbGVzID0gbmV3IFNldChmaWxlTGlzdClcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aCAmJiByZXF1aXJlZEZpbGVzLnNpemUgPiAwOyBpKyspIHtcbiAgICBpZiAocmVxdWlyZWRGaWxlcy5oYXMoZmlsZXNbaV0pKSB7XG4gICAgICByZXF1aXJlZEZpbGVzLmRlbGV0ZShmaWxlc1tpXSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVxdWlyZWRGaWxlcy5zaXplID09PSAwXG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9qZWN0J3MgXCJwYWNrYWdlLmpzb25cIiBpcyB2YWxpZFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYWNrYWdlSnNvbiA9IGFzeW5jIChcbiAgY29tcG9uZW50czogeyBmczogSUZpbGVTeXN0ZW1Db21wb25lbnQgfSxcbiAgZGlyOiBzdHJpbmcsXG4gIGRlcHM6IERpY3Rcbik6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UoYXdhaXQgY29tcG9uZW50cy5mcy5yZWFkRmlsZShyZXNvbHZlKGRpciwgUkVRVUlSRURfRklMRVMuUEFDS0FHRV9KU09OKSwgJ3V0Zi04JykpXG4gIHJldHVybiBoYXNQcmltaXRpdmVLZXlzKHBhY2thZ2VKc29uLCBkZXBzKVxufVxuXG4vKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9qZWN0IGNvbnRhaW5zIGFuIGVtcHR5IG5vZGVfbW9kdWxlcyBmb2xkZXJcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5lZWRzRGVwZW5kZW5jaWVzKGNvbXBvbmVudHM6IHsgZnM6IElGaWxlU3lzdGVtQ29tcG9uZW50IH0sIGRpcjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IG5vZGVNb2R1bGVzUGF0aCA9IHJlc29sdmUoZGlyLCAnbm9kZV9tb2R1bGVzJylcbiAgY29uc3QgaGFzTm9kZU1vZHVsZXNGb2xkZXIgPSBhd2FpdCBjb21wb25lbnRzLmZzLmRpcmVjdG9yeUV4aXN0cyhub2RlTW9kdWxlc1BhdGgpXG4gIGNvbnN0IGlzTm9kZU1vZHVsZXNFbXB0eSA9IGhhc05vZGVNb2R1bGVzRm9sZGVyICYmIChhd2FpdCBjb21wb25lbnRzLmZzLnJlYWRkaXIobm9kZU1vZHVsZXNQYXRoKSkubGVuZ3RoID09PSAwXG5cbiAgcmV0dXJuICFoYXNOb2RlTW9kdWxlc0ZvbGRlciB8fCBpc05vZGVNb2R1bGVzRW1wdHlcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBjb25zdCBucG0gPSAvXndpbi8udGVzdChwcm9jZXNzLnBsYXRmb3JtKSA/ICducG0uY21kJyA6ICducG0nXG5cbi8qXG4gKiBSdW5zIFwibnBtIGluc3RhbGxcIiBmb3IgZGVzaXJlZCBwcm9qZWN0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGluZm8oJ0luc3RhbGxpbmcgZGVwZW5kZW5jaWVzLi4uJylcbiAgLy8gVE9ETzogdGVzdCBpbiB3aW5kb3dzXG4gIGF3YWl0IGV4ZWMoZGlyLCBucG0sIFsnaW5zdGFsbCddKVxuICBzdWNjZWVkKCdEZXBlbmRlbmNpZXMgaW5zdGFsbGVkJylcbn1cblxuLyoqXG4gKiBSdW4gTlBNIGNvbW1hbmRzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBucG1SdW4oY3dkOiBzdHJpbmcsIGNvbW1hbmQ6IHN0cmluZywgLi4uYXJnczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gVE9ETzogdGVzdCBpbiB3aW5kb3dzXG4gIGF3YWl0IGV4ZWMoY3dkLCBucG0sIFsncnVuJywgY29tbWFuZCwgJy0tc2lsZW50JywgJy0tJywgLi4uYXJnc10sIHsgZW52OiBwcm9jZXNzLmVudiBhcyBhbnkgfSlcbn1cbiJdfQ==
|
@@ -1,89 +0,0 @@
|
|
1
|
-
import { resolve } from 'path'
|
2
|
-
|
3
|
-
import { IFileSystemComponent } from '../../components/fs'
|
4
|
-
import { exec } from '../../utils/exec'
|
5
|
-
import { info, succeed } from '../../utils/log'
|
6
|
-
import { Dict, hasPrimitiveKeys } from '../../utils/object'
|
7
|
-
|
8
|
-
/**
|
9
|
-
* Required project dirs/files
|
10
|
-
*/
|
11
|
-
export const REQUIRED_FILES = {
|
12
|
-
PACKAGE_JSON: 'package.json',
|
13
|
-
TS_CONFIG_JSON: 'tsconfig.json',
|
14
|
-
SCENE_JSON: 'scene.json'
|
15
|
-
}
|
16
|
-
|
17
|
-
/**
|
18
|
-
* Required "package.json" structure
|
19
|
-
*/
|
20
|
-
export const REQUIRED_PACKAGE_JSON = {}
|
21
|
-
|
22
|
-
/**
|
23
|
-
* Returns the required files for a project
|
24
|
-
*/
|
25
|
-
export const getProjectStructure = () => Object.values(REQUIRED_FILES)
|
26
|
-
|
27
|
-
/**
|
28
|
-
* Returns true if the project follows a valid scene structure
|
29
|
-
*/
|
30
|
-
export const validateProjectStructure = async (
|
31
|
-
components: { fs: IFileSystemComponent },
|
32
|
-
dir: string,
|
33
|
-
fileList: string[]
|
34
|
-
): Promise<boolean> => {
|
35
|
-
const files = await components.fs.readdir(dir)
|
36
|
-
const requiredFiles = new Set(fileList)
|
37
|
-
|
38
|
-
for (let i = 0; i < files.length && requiredFiles.size > 0; i++) {
|
39
|
-
if (requiredFiles.has(files[i])) {
|
40
|
-
requiredFiles.delete(files[i])
|
41
|
-
}
|
42
|
-
}
|
43
|
-
|
44
|
-
return requiredFiles.size === 0
|
45
|
-
}
|
46
|
-
|
47
|
-
/**
|
48
|
-
* Returns true if the project's "package.json" is valid
|
49
|
-
*/
|
50
|
-
export const validatePackageJson = async (
|
51
|
-
components: { fs: IFileSystemComponent },
|
52
|
-
dir: string,
|
53
|
-
deps: Dict
|
54
|
-
): Promise<boolean> => {
|
55
|
-
const packageJson = JSON.parse(await components.fs.readFile(resolve(dir, REQUIRED_FILES.PACKAGE_JSON), 'utf-8'))
|
56
|
-
return hasPrimitiveKeys(packageJson, deps)
|
57
|
-
}
|
58
|
-
|
59
|
-
/*
|
60
|
-
* Returns true if the project contains an empty node_modules folder
|
61
|
-
*/
|
62
|
-
export async function needsDependencies(components: { fs: IFileSystemComponent }, dir: string): Promise<boolean> {
|
63
|
-
const nodeModulesPath = resolve(dir, 'node_modules')
|
64
|
-
const hasNodeModulesFolder = await components.fs.directoryExists(nodeModulesPath)
|
65
|
-
const isNodeModulesEmpty = hasNodeModulesFolder && (await components.fs.readdir(nodeModulesPath)).length === 0
|
66
|
-
|
67
|
-
return !hasNodeModulesFolder || isNodeModulesEmpty
|
68
|
-
}
|
69
|
-
|
70
|
-
/* istanbul ignore next */
|
71
|
-
export const npm = /^win/.test(process.platform) ? 'npm.cmd' : 'npm'
|
72
|
-
|
73
|
-
/*
|
74
|
-
* Runs "npm install" for desired project
|
75
|
-
*/
|
76
|
-
export async function installDependencies(dir: string): Promise<void> {
|
77
|
-
info('Installing dependencies...')
|
78
|
-
// TODO: test in windows
|
79
|
-
await exec(dir, npm, ['install'])
|
80
|
-
succeed('Dependencies installed')
|
81
|
-
}
|
82
|
-
|
83
|
-
/**
|
84
|
-
* Run NPM commands
|
85
|
-
*/
|
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 })
|
89
|
-
}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import { CliComponents } from '../../components';
|
2
|
-
interface Options {
|
3
|
-
args: Omit<typeof args, '_'>;
|
4
|
-
components: Pick<CliComponents, 'fs'>;
|
5
|
-
}
|
6
|
-
export declare const args: import("arg").Result<{
|
7
|
-
'--help': BooleanConstructor;
|
8
|
-
'-h': string;
|
9
|
-
} & {
|
10
|
-
'--watch': BooleanConstructor;
|
11
|
-
'-w': string;
|
12
|
-
'--production': BooleanConstructor;
|
13
|
-
'-p': string;
|
14
|
-
'--skip-install': BooleanConstructor;
|
15
|
-
'--dir': StringConstructor;
|
16
|
-
}>;
|
17
|
-
export declare function help(): string;
|
18
|
-
export declare function main(options: Options): Promise<void>;
|
19
|
-
export {};
|
@@ -1,69 +0,0 @@
|
|
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.main = exports.help = exports.args = void 0;
|
7
|
-
const path_1 = require("path");
|
8
|
-
const out_messages_1 = require("../../utils/out-messages");
|
9
|
-
const args_1 = require("../../utils/args");
|
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"));
|
13
|
-
const helpers_1 = require("./helpers");
|
14
|
-
exports.args = (0, args_1.getArgs)({
|
15
|
-
'--watch': Boolean,
|
16
|
-
'-w': '--watch',
|
17
|
-
'--production': Boolean,
|
18
|
-
'-p': '--production',
|
19
|
-
'--skip-install': Boolean,
|
20
|
-
'--dir': String
|
21
|
-
});
|
22
|
-
function help() {
|
23
|
-
return `
|
24
|
-
Usage: 'dcl-commands build [options]'
|
25
|
-
Options:'
|
26
|
-
-h, --help Displays complete help
|
27
|
-
-w, --watch Watch for file changes and build on change
|
28
|
-
-p, --production Build without sourcemaps
|
29
|
-
--skip-install Skip installing dependencies
|
30
|
-
--dir Path to directory to build
|
31
|
-
|
32
|
-
Example:
|
33
|
-
- Build your scene:
|
34
|
-
'$ dcl-commands build'
|
35
|
-
`;
|
36
|
-
}
|
37
|
-
exports.help = help;
|
38
|
-
async function main(options) {
|
39
|
-
const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
|
40
|
-
const projectStructure = (0, helpers_1.getProjectStructure)();
|
41
|
-
const hasValidProjectStructure = await (0, helpers_1.validateProjectStructure)(options.components, dir, projectStructure);
|
42
|
-
if (!hasValidProjectStructure) {
|
43
|
-
throw new error_1.CliError(`Invalid scene structure found. Required files:
|
44
|
-
${(0, out_messages_1.toStringList)(projectStructure)}`);
|
45
|
-
}
|
46
|
-
const hasValidPackageJson = await (0, helpers_1.validatePackageJson)(options.components, dir, helpers_1.REQUIRED_PACKAGE_JSON);
|
47
|
-
if (!hasValidPackageJson) {
|
48
|
-
throw new error_1.CliError(`Invalid "package.json" file. Structure required:
|
49
|
-
${JSON.stringify(helpers_1.REQUIRED_PACKAGE_JSON, null, 2)}`);
|
50
|
-
}
|
51
|
-
const shouldInstallDeps = await (0, helpers_1.needsDependencies)(options.components, dir);
|
52
|
-
if (shouldInstallDeps && !options.args['--skip-install']) {
|
53
|
-
await (0, helpers_1.installDependencies)(dir);
|
54
|
-
}
|
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
|
62
|
-
});
|
63
|
-
if (!watch) {
|
64
|
-
watchingFuture.resolve(null);
|
65
|
-
}
|
66
|
-
await watchingFuture;
|
67
|
-
}
|
68
|
-
exports.main = main;
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBOEI7QUFHOUIsMkRBQXVEO0FBQ3ZELDJDQUEwQztBQUMxQyw2Q0FBNEM7QUFDNUMscURBQWlEO0FBQ2pELDBEQUE4QjtBQUM5Qix1Q0FPa0I7QUFPTCxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQixJQUFJLEVBQUUsU0FBUztJQUNmLGNBQWMsRUFBRSxPQUFPO0lBQ3ZCLElBQUksRUFBRSxjQUFjO0lBQ3BCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsT0FBTyxFQUFFLE1BQU07Q0FDaEIsQ0FBQyxDQUFBO0FBRUYsU0FBZ0IsSUFBSTtJQUNsQixPQUFPOzs7Ozs7Ozs7Ozs7R0FZTixDQUFBO0FBQ0gsQ0FBQztBQWRELG9CQWNDO0FBRU0sS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFnQjtJQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFBLGNBQU8sRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUNoRSxNQUFNLGdCQUFnQixHQUFHLElBQUEsNkJBQW1CLEdBQUUsQ0FBQTtJQUU5QyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sSUFBQSxrQ0FBd0IsRUFBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtRQUM3QixNQUFNLElBQUksZ0JBQVEsQ0FBQztRQUNmLElBQUEsMkJBQVksRUFBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtLQUN0QztJQUVELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFBLDZCQUFtQixFQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLCtCQUFxQixDQUFDLENBQUE7SUFFckcsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1FBQ3hCLE1BQU0sSUFBSSxnQkFBUSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQywrQkFBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0tBQ3REO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMkJBQWlCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUUxRSxJQUFJLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3hELE1BQU0sSUFBQSw2QkFBbUIsRUFBQyxHQUFHLENBQUMsQ0FBQTtLQUMvQjtJQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXZDLE1BQU0sY0FBYyxHQUFHLElBQUEsbUJBQU0sR0FBTyxDQUFBO0lBRXBDLE1BQU0sSUFBQSxpQkFBTyxFQUFDO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixLQUFLO1FBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxQyxjQUFjO0tBQ2YsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7S0FDN0I7SUFFRCxNQUFNLGNBQWMsQ0FBQTtBQUl0QixDQUFDO0FBM0NELG9CQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgeyBDbGlDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cydcbmltcG9ydCB7IHRvU3RyaW5nTGlzdCB9IGZyb20gJy4uLy4uL3V0aWxzL291dC1tZXNzYWdlcydcbmltcG9ydCB7IGdldEFyZ3MgfSBmcm9tICcuLi8uLi91dGlscy9hcmdzJ1xuaW1wb3J0IHsgQ2xpRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy9lcnJvcidcbmltcG9ydCB7IGNvbXBpbGUgfSBmcm9tICdAZGNsL2RjbC1yb2xsdXAvY29tcGlsZSdcbmltcG9ydCBmdXR1cmUgZnJvbSAnZnAtZnV0dXJlJ1xuaW1wb3J0IHtcbiAgZ2V0UHJvamVjdFN0cnVjdHVyZSxcbiAgaW5zdGFsbERlcGVuZGVuY2llcyxcbiAgbmVlZHNEZXBlbmRlbmNpZXMsXG4gIHZhbGlkYXRlUHJvamVjdFN0cnVjdHVyZSxcbiAgdmFsaWRhdGVQYWNrYWdlSnNvbixcbiAgUkVRVUlSRURfUEFDS0FHRV9KU09OXG59IGZyb20gJy4vaGVscGVycydcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiBPbWl0PHR5cGVvZiBhcmdzLCAnXyc+XG4gIGNvbXBvbmVudHM6IFBpY2s8Q2xpQ29tcG9uZW50cywgJ2ZzJz5cbn1cblxuZXhwb3J0IGNvbnN0IGFyZ3MgPSBnZXRBcmdzKHtcbiAgJy0td2F0Y2gnOiBCb29sZWFuLFxuICAnLXcnOiAnLS13YXRjaCcsXG4gICctLXByb2R1Y3Rpb24nOiBCb29sZWFuLFxuICAnLXAnOiAnLS1wcm9kdWN0aW9uJyxcbiAgJy0tc2tpcC1pbnN0YWxsJzogQm9vbGVhbixcbiAgJy0tZGlyJzogU3RyaW5nXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gaGVscCgpIHtcbiAgcmV0dXJuIGBcbiAgVXNhZ2U6ICdkY2wtY29tbWFuZHMgYnVpbGQgW29wdGlvbnNdJ1xuICAgIE9wdGlvbnM6J1xuICAgICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICBEaXNwbGF5cyBjb21wbGV0ZSBoZWxwXG4gICAgICAtdywgLS13YXRjaCAgICAgICAgICAgICAgIFdhdGNoIGZvciBmaWxlIGNoYW5nZXMgYW5kIGJ1aWxkIG9uIGNoYW5nZVxuICAgICAgLXAsIC0tcHJvZHVjdGlvbiAgICAgICAgICBCdWlsZCB3aXRob3V0IHNvdXJjZW1hcHNcbiAgICAgIC0tc2tpcC1pbnN0YWxsICAgICAgICAgICAgU2tpcCBpbnN0YWxsaW5nIGRlcGVuZGVuY2llc1xuICAgICAgLS1kaXIgICAgICAgICAgICAgICAgICAgICBQYXRoIHRvIGRpcmVjdG9yeSB0byBidWlsZFxuXG4gICAgRXhhbXBsZTpcbiAgICAtIEJ1aWxkIHlvdXIgc2NlbmU6XG4gICAgICAnJCBkY2wtY29tbWFuZHMgYnVpbGQnXG4gIGBcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGNvbnN0IHByb2plY3RTdHJ1Y3R1cmUgPSBnZXRQcm9qZWN0U3RydWN0dXJlKClcblxuICBjb25zdCBoYXNWYWxpZFByb2plY3RTdHJ1Y3R1cmUgPSBhd2FpdCB2YWxpZGF0ZVByb2plY3RTdHJ1Y3R1cmUob3B0aW9ucy5jb21wb25lbnRzLCBkaXIsIHByb2plY3RTdHJ1Y3R1cmUpXG5cbiAgaWYgKCFoYXNWYWxpZFByb2plY3RTdHJ1Y3R1cmUpIHtcbiAgICB0aHJvdyBuZXcgQ2xpRXJyb3IoYEludmFsaWQgc2NlbmUgc3RydWN0dXJlIGZvdW5kLiBSZXF1aXJlZCBmaWxlczpcbiAgICAgICR7dG9TdHJpbmdMaXN0KHByb2plY3RTdHJ1Y3R1cmUpfWApXG4gIH1cblxuICBjb25zdCBoYXNWYWxpZFBhY2thZ2VKc29uID0gYXdhaXQgdmFsaWRhdGVQYWNrYWdlSnNvbihvcHRpb25zLmNvbXBvbmVudHMsIGRpciwgUkVRVUlSRURfUEFDS0FHRV9KU09OKVxuXG4gIGlmICghaGFzVmFsaWRQYWNrYWdlSnNvbikge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcihgSW52YWxpZCBcInBhY2thZ2UuanNvblwiIGZpbGUuIFN0cnVjdHVyZSByZXF1aXJlZDpcbiAgICAgICR7SlNPTi5zdHJpbmdpZnkoUkVRVUlSRURfUEFDS0FHRV9KU09OLCBudWxsLCAyKX1gKVxuICB9XG5cbiAgY29uc3Qgc2hvdWxkSW5zdGFsbERlcHMgPSBhd2FpdCBuZWVkc0RlcGVuZGVuY2llcyhvcHRpb25zLmNvbXBvbmVudHMsIGRpcilcblxuICBpZiAoc2hvdWxkSW5zdGFsbERlcHMgJiYgIW9wdGlvbnMuYXJnc1snLS1za2lwLWluc3RhbGwnXSkge1xuICAgIGF3YWl0IGluc3RhbGxEZXBlbmRlbmNpZXMoZGlyKVxuICB9XG5cbiAgY29uc3Qgd2F0Y2ggPSAhIW9wdGlvbnMuYXJnc1snLS13YXRjaCddXG5cbiAgY29uc3Qgd2F0Y2hpbmdGdXR1cmUgPSBmdXR1cmU8YW55PigpXG5cbiAgYXdhaXQgY29tcGlsZSh7XG4gICAgcHJvamVjdDogZGlyLFxuICAgIHdhdGNoLFxuICAgIHByb2R1Y3Rpb246ICEhb3B0aW9ucy5hcmdzWyctLXByb2R1Y3Rpb24nXSxcbiAgICB3YXRjaGluZ0Z1dHVyZVxuICB9KVxuXG4gIGlmICghd2F0Y2gpIHtcbiAgICB3YXRjaGluZ0Z1dHVyZS5yZXNvbHZlKG51bGwpXG4gIH1cblxuICBhd2FpdCB3YXRjaGluZ0Z1dHVyZVxuXG4gIC8vIHRyYWNrIHN0dWZmLi4uXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWNlbnRyYWxhbmQvY2xpL2Jsb2IvbWFpbi9zcmMvY29tbWFuZHMvYnVpbGQudHNcbn1cbiJdfQ==
|
@@ -1,91 +0,0 @@
|
|
1
|
-
import { resolve } from 'path'
|
2
|
-
|
3
|
-
import { CliComponents } from '../../components'
|
4
|
-
import { toStringList } from '../../utils/out-messages'
|
5
|
-
import { getArgs } from '../../utils/args'
|
6
|
-
import { CliError } from '../../utils/error'
|
7
|
-
import { compile } from '@dcl/dcl-rollup/compile'
|
8
|
-
import future from 'fp-future'
|
9
|
-
import {
|
10
|
-
getProjectStructure,
|
11
|
-
installDependencies,
|
12
|
-
needsDependencies,
|
13
|
-
validateProjectStructure,
|
14
|
-
validatePackageJson,
|
15
|
-
REQUIRED_PACKAGE_JSON
|
16
|
-
} from './helpers'
|
17
|
-
|
18
|
-
interface Options {
|
19
|
-
args: Omit<typeof args, '_'>
|
20
|
-
components: Pick<CliComponents, 'fs'>
|
21
|
-
}
|
22
|
-
|
23
|
-
export const args = getArgs({
|
24
|
-
'--watch': Boolean,
|
25
|
-
'-w': '--watch',
|
26
|
-
'--production': Boolean,
|
27
|
-
'-p': '--production',
|
28
|
-
'--skip-install': Boolean,
|
29
|
-
'--dir': String
|
30
|
-
})
|
31
|
-
|
32
|
-
export function help() {
|
33
|
-
return `
|
34
|
-
Usage: 'dcl-commands build [options]'
|
35
|
-
Options:'
|
36
|
-
-h, --help Displays complete help
|
37
|
-
-w, --watch Watch for file changes and build on change
|
38
|
-
-p, --production Build without sourcemaps
|
39
|
-
--skip-install Skip installing dependencies
|
40
|
-
--dir Path to directory to build
|
41
|
-
|
42
|
-
Example:
|
43
|
-
- Build your scene:
|
44
|
-
'$ dcl-commands build'
|
45
|
-
`
|
46
|
-
}
|
47
|
-
|
48
|
-
export async function main(options: Options) {
|
49
|
-
const dir = resolve(process.cwd(), options.args['--dir'] || '.')
|
50
|
-
const projectStructure = getProjectStructure()
|
51
|
-
|
52
|
-
const hasValidProjectStructure = await validateProjectStructure(options.components, dir, projectStructure)
|
53
|
-
|
54
|
-
if (!hasValidProjectStructure) {
|
55
|
-
throw new CliError(`Invalid scene structure found. Required files:
|
56
|
-
${toStringList(projectStructure)}`)
|
57
|
-
}
|
58
|
-
|
59
|
-
const hasValidPackageJson = await validatePackageJson(options.components, dir, REQUIRED_PACKAGE_JSON)
|
60
|
-
|
61
|
-
if (!hasValidPackageJson) {
|
62
|
-
throw new CliError(`Invalid "package.json" file. Structure required:
|
63
|
-
${JSON.stringify(REQUIRED_PACKAGE_JSON, null, 2)}`)
|
64
|
-
}
|
65
|
-
|
66
|
-
const shouldInstallDeps = await needsDependencies(options.components, dir)
|
67
|
-
|
68
|
-
if (shouldInstallDeps && !options.args['--skip-install']) {
|
69
|
-
await installDependencies(dir)
|
70
|
-
}
|
71
|
-
|
72
|
-
const watch = !!options.args['--watch']
|
73
|
-
|
74
|
-
const watchingFuture = future<any>()
|
75
|
-
|
76
|
-
await compile({
|
77
|
-
project: dir,
|
78
|
-
watch,
|
79
|
-
production: !!options.args['--production'],
|
80
|
-
watchingFuture
|
81
|
-
})
|
82
|
-
|
83
|
-
if (!watch) {
|
84
|
-
watchingFuture.resolve(null)
|
85
|
-
}
|
86
|
-
|
87
|
-
await watchingFuture
|
88
|
-
|
89
|
-
// track stuff...
|
90
|
-
// https://github.com/decentraland/cli/blob/main/src/commands/build.ts
|
91
|
-
}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
import { CliComponents } from '../../components';
|
2
|
-
interface Options {
|
3
|
-
args: typeof args;
|
4
|
-
components: Pick<CliComponents, 'fetch' | 'fs'>;
|
5
|
-
}
|
6
|
-
export declare const args: import("arg").Result<{
|
7
|
-
'--help': BooleanConstructor;
|
8
|
-
'-h': string;
|
9
|
-
} & {
|
10
|
-
'--yes': BooleanConstructor;
|
11
|
-
'-y': string;
|
12
|
-
'--dir': StringConstructor;
|
13
|
-
'--skip-install': BooleanConstructor;
|
14
|
-
}>;
|
15
|
-
export declare function help(): Promise<void>;
|
16
|
-
export declare function main(options: Options): Promise<void>;
|
17
|
-
export {};
|
@@ -1,51 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.main = exports.help = exports.args = void 0;
|
4
|
-
const path_1 = require("path");
|
5
|
-
const args_1 = require("../../utils/args");
|
6
|
-
const error_1 = require("../../utils/error");
|
7
|
-
const fs_1 = require("../../utils/fs");
|
8
|
-
const repos_1 = require("./repos");
|
9
|
-
const helpers_1 = require("../build/helpers");
|
10
|
-
exports.args = (0, args_1.getArgs)({
|
11
|
-
'--yes': Boolean,
|
12
|
-
'-y': '--yes',
|
13
|
-
'--dir': String,
|
14
|
-
'--skip-install': Boolean
|
15
|
-
});
|
16
|
-
async function help() { }
|
17
|
-
exports.help = help;
|
18
|
-
async function main(options) {
|
19
|
-
const dir = (0, path_1.resolve)(process.cwd(), options.args['--dir'] || '.');
|
20
|
-
const isEmpty = await (0, fs_1.isDirectoryEmpty)(options.components, dir);
|
21
|
-
const yes = options.args['--yes'];
|
22
|
-
if (!isEmpty && !yes) {
|
23
|
-
throw new error_1.CliError('The target directory specified is not empty. Run this command with --yes to override.');
|
24
|
-
}
|
25
|
-
const scene = 'scene-template';
|
26
|
-
const { url, contentFolders } = (0, repos_1.get)(scene);
|
27
|
-
const zip = await (0, fs_1.download)(options.components, url, (0, path_1.join)(dir, `${scene}.zip`));
|
28
|
-
await (0, fs_1.extract)(zip, dir);
|
29
|
-
await options.components.fs.unlink(zip);
|
30
|
-
await moveFilesFromDirs(options.components, dir, contentFolders);
|
31
|
-
const shouldInstallDeps = await (0, helpers_1.needsDependencies)(options.components, dir);
|
32
|
-
if (shouldInstallDeps && !options.args['--skip-install']) {
|
33
|
-
await (0, helpers_1.installDependencies)(dir);
|
34
|
-
}
|
35
|
-
}
|
36
|
-
exports.main = main;
|
37
|
-
const moveFilesFromDir = async (components, dir, folder) => {
|
38
|
-
const files = await components.fs.readdir(folder);
|
39
|
-
await Promise.all(files.map(($) => {
|
40
|
-
const filePath = (0, path_1.resolve)(folder, $);
|
41
|
-
return components.fs.rename(filePath, (0, path_1.resolve)(dir, $));
|
42
|
-
}));
|
43
|
-
await components.fs.rmdir(folder);
|
44
|
-
};
|
45
|
-
const moveFilesFromDirs = async (components, dir, folders) => {
|
46
|
-
await Promise.all(folders.map(($) => {
|
47
|
-
const folderPath = (0, path_1.resolve)(dir, $);
|
48
|
-
return moveFilesFromDir(components, dir, folderPath);
|
49
|
-
}));
|
50
|
-
};
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0M7QUFFcEMsMkNBQTBDO0FBQzFDLDZDQUE0QztBQUU1Qyx1Q0FBb0U7QUFFcEUsbUNBQXdDO0FBQ3hDLDhDQUF5RTtBQU81RCxRQUFBLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQztJQUMxQixPQUFPLEVBQUUsT0FBTztJQUNoQixJQUFJLEVBQUUsT0FBTztJQUNiLE9BQU8sRUFBRSxNQUFNO0lBQ2YsZ0JBQWdCLEVBQUUsT0FBTztDQUMxQixDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsSUFBSSxLQUFJLENBQUM7QUFBL0Isb0JBQStCO0FBRXhCLEtBQUssVUFBVSxJQUFJLENBQUMsT0FBZ0I7SUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFPLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7SUFDaEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLHFCQUFnQixFQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDL0QsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUVqQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxnQkFBUSxDQUFDLHVGQUF1RixDQUFDLENBQUE7S0FDNUc7SUFHRCxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQTtJQUM5QixNQUFNLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUEsV0FBTyxFQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSxhQUFRLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sSUFBQSxZQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZCLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0saUJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFHaEUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMkJBQWlCLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMxRSxJQUFJLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3hELE1BQU0sSUFBQSw2QkFBbUIsRUFBQyxHQUFHLENBQUMsQ0FBQTtLQUMvQjtBQUNILENBQUM7QUF0QkQsb0JBc0JDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsVUFBcUMsRUFBRSxHQUFXLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDcEcsTUFBTSxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNqRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ2QsTUFBTSxRQUFRLEdBQUcsSUFBQSxjQUFPLEVBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ25DLE9BQU8sVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3hELENBQUMsQ0FBQyxDQUNILENBQUE7SUFDRCxNQUFNLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ25DLENBQUMsQ0FBQTtBQUVELE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLFVBQXFDLEVBQUUsR0FBVyxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUN4RyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNsQyxPQUFPLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDdEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4sIHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgeyBnZXRBcmdzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJncydcbmltcG9ydCB7IENsaUVycm9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvZXJyb3InXG5pbXBvcnQgeyBDbGlDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cydcbmltcG9ydCB7IGlzRGlyZWN0b3J5RW1wdHksIGRvd25sb2FkLCBleHRyYWN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvZnMnXG5cbmltcG9ydCB7IGdldCBhcyBnZXRSZXBvIH0gZnJvbSAnLi9yZXBvcydcbmltcG9ydCB7IGluc3RhbGxEZXBlbmRlbmNpZXMsIG5lZWRzRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vYnVpbGQvaGVscGVycydcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBhcmdzOiB0eXBlb2YgYXJnc1xuICBjb21wb25lbnRzOiBQaWNrPENsaUNvbXBvbmVudHMsICdmZXRjaCcgfCAnZnMnPlxufVxuXG5leHBvcnQgY29uc3QgYXJncyA9IGdldEFyZ3Moe1xuICAnLS15ZXMnOiBCb29sZWFuLFxuICAnLXknOiAnLS15ZXMnLFxuICAnLS1kaXInOiBTdHJpbmcsXG4gICctLXNraXAtaW5zdGFsbCc6IEJvb2xlYW5cbn0pXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoZWxwKCkge31cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBkaXIgPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMuYXJnc1snLS1kaXInXSB8fCAnLicpXG4gIGNvbnN0IGlzRW1wdHkgPSBhd2FpdCBpc0RpcmVjdG9yeUVtcHR5KG9wdGlvbnMuY29tcG9uZW50cywgZGlyKVxuICBjb25zdCB5ZXMgPSBvcHRpb25zLmFyZ3NbJy0teWVzJ11cblxuICBpZiAoIWlzRW1wdHkgJiYgIXllcykge1xuICAgIHRocm93IG5ldyBDbGlFcnJvcignVGhlIHRhcmdldCBkaXJlY3Rvcnkgc3BlY2lmaWVkIGlzIG5vdCBlbXB0eS4gUnVuIHRoaXMgY29tbWFuZCB3aXRoIC0teWVzIHRvIG92ZXJyaWRlLicpXG4gIH1cblxuICAvLyBkb3dubG9hZCBhbmQgZXh0cmFjdCB0ZW1wbGF0ZSBwcm9qZWN0XG4gIGNvbnN0IHNjZW5lID0gJ3NjZW5lLXRlbXBsYXRlJ1xuICBjb25zdCB7IHVybCwgY29udGVudEZvbGRlcnMgfSA9IGdldFJlcG8oc2NlbmUpXG4gIGNvbnN0IHppcCA9IGF3YWl0IGRvd25sb2FkKG9wdGlvbnMuY29tcG9uZW50cywgdXJsLCBqb2luKGRpciwgYCR7c2NlbmV9LnppcGApKVxuICBhd2FpdCBleHRyYWN0KHppcCwgZGlyKVxuICBhd2FpdCBvcHRpb25zLmNvbXBvbmVudHMuZnMudW5saW5rKHppcClcbiAgYXdhaXQgbW92ZUZpbGVzRnJvbURpcnMob3B0aW9ucy5jb21wb25lbnRzLCBkaXIsIGNvbnRlbnRGb2xkZXJzKVxuXG4gIC8vIG5wbSBpbnN0YWxsXG4gIGNvbnN0IHNob3VsZEluc3RhbGxEZXBzID0gYXdhaXQgbmVlZHNEZXBlbmRlbmNpZXMob3B0aW9ucy5jb21wb25lbnRzLCBkaXIpXG4gIGlmIChzaG91bGRJbnN0YWxsRGVwcyAmJiAhb3B0aW9ucy5hcmdzWyctLXNraXAtaW5zdGFsbCddKSB7XG4gICAgYXdhaXQgaW5zdGFsbERlcGVuZGVuY2llcyhkaXIpXG4gIH1cbn1cblxuY29uc3QgbW92ZUZpbGVzRnJvbURpciA9IGFzeW5jIChjb21wb25lbnRzOiBQaWNrPENsaUNvbXBvbmVudHMsICdmcyc+LCBkaXI6IHN0cmluZywgZm9sZGVyOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZmlsZXMgPSBhd2FpdCBjb21wb25lbnRzLmZzLnJlYWRkaXIoZm9sZGVyKVxuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBmaWxlcy5tYXAoKCQpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZShmb2xkZXIsICQpXG4gICAgICByZXR1cm4gY29tcG9uZW50cy5mcy5yZW5hbWUoZmlsZVBhdGgsIHJlc29sdmUoZGlyLCAkKSlcbiAgICB9KVxuICApXG4gIGF3YWl0IGNvbXBvbmVudHMuZnMucm1kaXIoZm9sZGVyKVxufVxuXG5jb25zdCBtb3ZlRmlsZXNGcm9tRGlycyA9IGFzeW5jIChjb21wb25lbnRzOiBQaWNrPENsaUNvbXBvbmVudHMsICdmcyc+LCBkaXI6IHN0cmluZywgZm9sZGVyczogc3RyaW5nW10pID0+IHtcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgZm9sZGVycy5tYXAoKCQpID0+IHtcbiAgICAgIGNvbnN0IGZvbGRlclBhdGggPSByZXNvbHZlKGRpciwgJClcbiAgICAgIHJldHVybiBtb3ZlRmlsZXNGcm9tRGlyKGNvbXBvbmVudHMsIGRpciwgZm9sZGVyUGF0aClcbiAgICB9KVxuICApXG59XG4iXX0=
|
@@ -1,67 +0,0 @@
|
|
1
|
-
import { join, resolve } from 'path'
|
2
|
-
|
3
|
-
import { getArgs } from '../../utils/args'
|
4
|
-
import { CliError } from '../../utils/error'
|
5
|
-
import { CliComponents } from '../../components'
|
6
|
-
import { isDirectoryEmpty, download, extract } from '../../utils/fs'
|
7
|
-
|
8
|
-
import { get as getRepo } from './repos'
|
9
|
-
import { installDependencies, needsDependencies } from '../build/helpers'
|
10
|
-
|
11
|
-
interface Options {
|
12
|
-
args: typeof args
|
13
|
-
components: Pick<CliComponents, 'fetch' | 'fs'>
|
14
|
-
}
|
15
|
-
|
16
|
-
export const args = getArgs({
|
17
|
-
'--yes': Boolean,
|
18
|
-
'-y': '--yes',
|
19
|
-
'--dir': String,
|
20
|
-
'--skip-install': Boolean
|
21
|
-
})
|
22
|
-
|
23
|
-
export async function help() {}
|
24
|
-
|
25
|
-
export async function main(options: Options) {
|
26
|
-
const dir = resolve(process.cwd(), options.args['--dir'] || '.')
|
27
|
-
const isEmpty = await isDirectoryEmpty(options.components, dir)
|
28
|
-
const yes = options.args['--yes']
|
29
|
-
|
30
|
-
if (!isEmpty && !yes) {
|
31
|
-
throw new CliError('The target directory specified is not empty. Run this command with --yes to override.')
|
32
|
-
}
|
33
|
-
|
34
|
-
// download and extract template project
|
35
|
-
const scene = 'scene-template'
|
36
|
-
const { url, contentFolders } = getRepo(scene)
|
37
|
-
const zip = await download(options.components, url, join(dir, `${scene}.zip`))
|
38
|
-
await extract(zip, dir)
|
39
|
-
await options.components.fs.unlink(zip)
|
40
|
-
await moveFilesFromDirs(options.components, dir, contentFolders)
|
41
|
-
|
42
|
-
// npm install
|
43
|
-
const shouldInstallDeps = await needsDependencies(options.components, dir)
|
44
|
-
if (shouldInstallDeps && !options.args['--skip-install']) {
|
45
|
-
await installDependencies(dir)
|
46
|
-
}
|
47
|
-
}
|
48
|
-
|
49
|
-
const moveFilesFromDir = async (components: Pick<CliComponents, 'fs'>, dir: string, folder: string) => {
|
50
|
-
const files = await components.fs.readdir(folder)
|
51
|
-
await Promise.all(
|
52
|
-
files.map(($) => {
|
53
|
-
const filePath = resolve(folder, $)
|
54
|
-
return components.fs.rename(filePath, resolve(dir, $))
|
55
|
-
})
|
56
|
-
)
|
57
|
-
await components.fs.rmdir(folder)
|
58
|
-
}
|
59
|
-
|
60
|
-
const moveFilesFromDirs = async (components: Pick<CliComponents, 'fs'>, dir: string, folders: string[]) => {
|
61
|
-
await Promise.all(
|
62
|
-
folders.map(($) => {
|
63
|
-
const folderPath = resolve(dir, $)
|
64
|
-
return moveFilesFromDir(components, dir, folderPath)
|
65
|
-
})
|
66
|
-
)
|
67
|
-
}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.get = void 0;
|
4
|
-
const REPOS = {
|
5
|
-
'scene-template': {
|
6
|
-
url: 'https://github.com/decentraland/sdk7-scene-template/archive/refs/heads/main.zip',
|
7
|
-
contentFolders: ['sdk7-scene-template-main']
|
8
|
-
}
|
9
|
-
};
|
10
|
-
const get = (scene) => REPOS[scene];
|
11
|
-
exports.get = get;
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXBvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFTQSxNQUFNLEtBQUssR0FBVTtJQUNuQixnQkFBZ0IsRUFBRTtRQUNoQixHQUFHLEVBQUUsaUZBQWlGO1FBQ3RGLGNBQWMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO0tBQzdDO0NBQ0YsQ0FBQTtBQUVNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBWSxFQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQWxELFFBQUEsR0FBRyxPQUErQyIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgU2NlbmUgPSAnc2NlbmUtdGVtcGxhdGUnXG5cbnR5cGUgUmVwb3MgPSB7XG4gIFtrZXkgaW4gU2NlbmVdOiB7XG4gICAgdXJsOiBzdHJpbmdcbiAgICBjb250ZW50Rm9sZGVyczogc3RyaW5nW11cbiAgfVxufVxuXG5jb25zdCBSRVBPUzogUmVwb3MgPSB7XG4gICdzY2VuZS10ZW1wbGF0ZSc6IHtcbiAgICB1cmw6ICdodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL3Nkazctc2NlbmUtdGVtcGxhdGUvYXJjaGl2ZS9yZWZzL2hlYWRzL21haW4uemlwJyxcbiAgICBjb250ZW50Rm9sZGVyczogWydzZGs3LXNjZW5lLXRlbXBsYXRlLW1haW4nXVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBnZXQgPSAoc2NlbmU6IFNjZW5lKTogUmVwb3NbU2NlbmVdID0+IFJFUE9TW3NjZW5lXVxuIl19
|
@@ -1,17 +0,0 @@
|
|
1
|
-
type Scene = 'scene-template'
|
2
|
-
|
3
|
-
type Repos = {
|
4
|
-
[key in Scene]: {
|
5
|
-
url: string
|
6
|
-
contentFolders: string[]
|
7
|
-
}
|
8
|
-
}
|
9
|
-
|
10
|
-
const REPOS: Repos = {
|
11
|
-
'scene-template': {
|
12
|
-
url: 'https://github.com/decentraland/sdk7-scene-template/archive/refs/heads/main.zip',
|
13
|
-
contentFolders: ['sdk7-scene-template-main']
|
14
|
-
}
|
15
|
-
}
|
16
|
-
|
17
|
-
export const get = (scene: Scene): Repos[Scene] => REPOS[scene]
|