xs-dev 0.38.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/package.json +13 -3
- package/build/src/commands/doctor.js +4 -3
- package/build/src/commands/init.js +3 -3
- package/build/src/commands/remove.js +2 -2
- package/build/src/commands/setup.js +21 -7
- package/build/src/toolbox/setup/ejectfix.js +29 -26
- package/build/src/toolbox/setup/esp32/linux.js +7 -3
- package/build/src/toolbox/setup/esp32/mac.js +5 -3
- package/build/src/toolbox/setup/esp32/windows.js +4 -2
- package/build/src/toolbox/setup/esp32.js +18 -8
- package/build/src/toolbox/setup/esp8266/linux.js +10 -4
- package/build/src/toolbox/setup/esp8266/mac.js +5 -3
- package/build/src/toolbox/setup/esp8266/windows.js +10 -9
- package/build/src/toolbox/setup/esp8266.js +16 -10
- package/build/src/toolbox/setup/lin.js +19 -7
- package/build/src/toolbox/setup/mac.js +14 -9
- package/build/src/toolbox/setup/moddable.js +35 -28
- package/build/src/toolbox/setup/nrf52/windows.js +5 -3
- package/build/src/toolbox/setup/nrf52.js +12 -10
- package/build/src/toolbox/setup/pico/linux.js +6 -2
- package/build/src/toolbox/setup/pico/mac.js +4 -2
- package/build/src/toolbox/setup/pico.js +10 -4
- package/build/src/toolbox/setup/wasm.js +7 -5
- package/build/src/toolbox/setup/windows.js +21 -14
- package/build/src/toolbox/system/__tests__/errors.test.js +163 -0
- package/build/src/toolbox/system/__tests__/exec.test.js +130 -0
- package/build/src/toolbox/system/errors.js +106 -0
- package/build/src/toolbox/system/exec.js +34 -28
- package/build/src/toolbox/system/packages.js +29 -26
- package/build/src/toolbox/system/python.js +11 -4
- package/build/src/toolbox/update/esp32.js +6 -4
- package/build/src/toolbox/update/lin.js +8 -2
- package/build/src/toolbox/update/mac.js +8 -2
- package/build/types/src/toolbox/setup/ejectfix.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp32/linux.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp32/mac.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp32/windows.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp32.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp8266/linux.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp8266/mac.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp8266/windows.d.ts +3 -2
- package/build/types/src/toolbox/setup/esp8266.d.ts +2 -1
- package/build/types/src/toolbox/setup/lin.d.ts +2 -1
- package/build/types/src/toolbox/setup/mac.d.ts +2 -1
- package/build/types/src/toolbox/setup/moddable.d.ts +4 -3
- package/build/types/src/toolbox/setup/nrf52/windows.d.ts +2 -1
- package/build/types/src/toolbox/setup/nrf52.d.ts +2 -1
- package/build/types/src/toolbox/setup/pico/linux.d.ts +2 -1
- package/build/types/src/toolbox/setup/pico/mac.d.ts +2 -1
- package/build/types/src/toolbox/setup/pico.d.ts +2 -1
- package/build/types/src/toolbox/setup/wasm.d.ts +2 -1
- package/build/types/src/toolbox/setup/windows.d.ts +3 -2
- package/build/types/src/toolbox/system/__tests__/errors.test.d.ts +1 -0
- package/build/types/src/toolbox/system/__tests__/exec.test.d.ts +1 -0
- package/build/types/src/toolbox/system/errors.d.ts +51 -0
- package/build/types/src/toolbox/system/exec.d.ts +6 -5
- package/build/types/src/toolbox/system/packages.d.ts +3 -2
- package/build/types/src/toolbox/system/python.d.ts +2 -1
- package/build/types/src/types.d.ts +10 -0
- package/package.json +13 -3
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.detectPython = detectPython;
|
|
4
4
|
exports.getPythonVersion = getPythonVersion;
|
|
5
5
|
const gluegun_1 = require("gluegun");
|
|
6
|
+
const errors_1 = require("./errors");
|
|
6
7
|
function detectPython() {
|
|
7
8
|
if (gluegun_1.system.which('python') !== null)
|
|
8
9
|
return 'python';
|
|
@@ -12,9 +13,15 @@ function detectPython() {
|
|
|
12
13
|
}
|
|
13
14
|
async function getPythonVersion() {
|
|
14
15
|
const python = detectPython();
|
|
15
|
-
if (python
|
|
16
|
-
return (
|
|
16
|
+
if (python === null) {
|
|
17
|
+
return (0, errors_1.failure)('Python not available on this system');
|
|
17
18
|
}
|
|
18
|
-
return
|
|
19
|
+
return await (0, errors_1.wrapAsync)(async () => {
|
|
20
|
+
const output = await gluegun_1.system.run(`${python} --version`);
|
|
21
|
+
const version = output.split(' ').pop()?.trim();
|
|
22
|
+
if (typeof version !== 'undefined')
|
|
23
|
+
return version;
|
|
24
|
+
throw new Error('Python version not found.');
|
|
25
|
+
});
|
|
19
26
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc3lzdGVtL3B5dGhvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLG9DQUlDO0FBRUQsNENBWUM7QUF0QkQscUNBQWdDO0FBRWhDLHFDQUE2QztBQUU3QyxTQUFnQixZQUFZO0lBQzFCLElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSTtRQUFFLE9BQU8sUUFBUSxDQUFBO0lBQ3BELElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSTtRQUFFLE9BQU8sU0FBUyxDQUFBO0lBQ3RELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVNLEtBQUssVUFBVSxnQkFBZ0I7SUFDcEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxFQUFFLENBQUE7SUFDN0IsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxJQUFBLGdCQUFPLEVBQUMscUNBQXFDLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRUQsT0FBTyxNQUFNLElBQUEsa0JBQVMsRUFBQyxLQUFLLElBQUksRUFBRTtRQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLGdCQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxZQUFZLENBQUMsQ0FBQTtRQUN0RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFBO1FBQy9DLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVztZQUFFLE9BQU8sT0FBTyxDQUFBO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtJQUM5QyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMifQ==
|
|
@@ -13,6 +13,7 @@ const mac_1 = require("../setup/esp32/mac");
|
|
|
13
13
|
const linux_1 = require("../setup/esp32/linux");
|
|
14
14
|
const esp32_1 = require("../setup/esp32");
|
|
15
15
|
const exec_1 = require("../system/exec");
|
|
16
|
+
const errors_1 = require("../system/errors");
|
|
16
17
|
async function default_1() {
|
|
17
18
|
const OS = (0, os_1.type)().toLowerCase();
|
|
18
19
|
const ESP_BRANCH_V4 = 'v4.4.3';
|
|
@@ -37,15 +38,16 @@ async function default_1() {
|
|
|
37
38
|
// 2. update local esp-idf repo
|
|
38
39
|
if (gluegun_1.filesystem.exists(IDF_PATH) === 'dir') {
|
|
39
40
|
spinner.start('Updating esp-idf repo');
|
|
40
|
-
const
|
|
41
|
+
const moddableVersionResult = await (0, moddable_1.getModdableVersion)();
|
|
42
|
+
const moddableVersion = (0, errors_1.unwrapOr)(moddableVersionResult, '');
|
|
41
43
|
const expectedEspIdfVersion = await (0, esp32_1.getExpectedEspIdfVersion)();
|
|
42
44
|
const branch = expectedEspIdfVersion ??
|
|
43
45
|
(moddableVersion.includes('branch') ||
|
|
44
|
-
gluegun_1.semver.satisfies(moddableVersion
|
|
46
|
+
gluegun_1.semver.satisfies(moddableVersion, '>= 4.2.x')
|
|
45
47
|
? ESP_BRANCH_V5
|
|
46
48
|
: ESP_BRANCH_V4);
|
|
47
49
|
if (branch === ESP_BRANCH_V5 &&
|
|
48
|
-
!gluegun_1.semver.satisfies(moddableVersion
|
|
50
|
+
!gluegun_1.semver.satisfies(moddableVersion, '>= 4.3.8')) {
|
|
49
51
|
spinner.fail('Latest Moddable SDK is required before updating ESP-IDF. Run `xs-dev update` before trying again.');
|
|
50
52
|
process.exit(1);
|
|
51
53
|
}
|
|
@@ -101,4 +103,4 @@ async function default_1() {
|
|
|
101
103
|
If there is trouble finding the correct port, pass the "--port" flag to the above command with the path to the "/dev.cu.*" that matches your device.
|
|
102
104
|
`);
|
|
103
105
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNwMzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC91cGRhdGUvZXNwMzIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFXQSw0QkFpSUM7QUE1SUQscUNBQXFFO0FBQ3JFLDJCQUF5QztBQUN6QyxrREFBbUU7QUFDbkUsZ0RBQXNFO0FBQ3RFLGdFQUF1QztBQUN2Qyw0Q0FBa0U7QUFDbEUsZ0RBQXNFO0FBQ3RFLDBDQUF5RDtBQUN6RCx5Q0FBa0Q7QUFDbEQsNkNBQTJDO0FBRTVCLEtBQUs7SUFDbEIsTUFBTSxFQUFFLEdBQUcsSUFBQSxTQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUN2QyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUE7SUFDOUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFBO0lBQzVCLE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDMUQsTUFBTSxRQUFRLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBRXpELE1BQU0sSUFBQSx3QkFBaUIsR0FBRSxDQUFBO0lBRXpCLE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUE7SUFFeEMsNEJBQTRCO0lBQzVCLElBQUksQ0FBQyxJQUFBLHlCQUFjLEdBQUUsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysb0VBQW9FLENBQ3JFLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO0lBQ2hELElBQ0Usb0JBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxD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
|
|
@@ -11,6 +11,7 @@ const gluegun_1 = require("gluegun");
|
|
|
11
11
|
const constants_1 = require("../setup/constants");
|
|
12
12
|
const moddable_1 = require("../setup/moddable");
|
|
13
13
|
const exec_1 = require("../system/exec");
|
|
14
|
+
const errors_1 = require("../system/errors");
|
|
14
15
|
const chmodPromise = (0, util_1.promisify)(fs_1.chmod);
|
|
15
16
|
async function default_1({ branch, release, interactive, }) {
|
|
16
17
|
await (0, exec_1.sourceEnvironment)();
|
|
@@ -28,7 +29,12 @@ async function default_1({ branch, release, interactive, }) {
|
|
|
28
29
|
cwd: process.env.MODDABLE,
|
|
29
30
|
});
|
|
30
31
|
// get latest release tag
|
|
31
|
-
const
|
|
32
|
+
const remoteReleaseResult = await (0, moddable_1.fetchRelease)(release);
|
|
33
|
+
if ((0, errors_1.isFailure)(remoteReleaseResult)) {
|
|
34
|
+
gluegun_1.print.error(`Failed to fetch release: ${remoteReleaseResult.error}`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
const remoteRelease = (0, errors_1.unwrap)(remoteReleaseResult);
|
|
32
38
|
if (currentTag.trim() === remoteRelease.tag_name) {
|
|
33
39
|
gluegun_1.print.success('Moddable SDK already up to date!');
|
|
34
40
|
process.exit(0);
|
|
@@ -126,4 +132,4 @@ async function default_1({ branch, release, interactive, }) {
|
|
|
126
132
|
gluegun_1.print.success('Moddable SDK successfully updated! Start the xsbug.app and run the "helloworld example": xs-dev run --example helloworld');
|
|
127
133
|
}
|
|
128
134
|
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvdXBkYXRlL2xpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWdCQSw0QkFxTkM7QUFyT0QsNENBQW1CO0FBQ25CLCtCQUFnQztBQUNoQywyQkFBMEI7QUFDMUIscUNBQTJEO0FBQzNELGtEQUFnRjtBQUVoRixnREFJMEI7QUFDMUIseUNBQWdFO0FBQ2hFLDZDQUFvRDtBQUVwRCxNQUFNLFlBQVksR0FBRyxJQUFBLGdCQUFTLEVBQUMsVUFBSyxDQUFDLENBQUE7QUFFdEIsS0FBSyxvQkFBVyxFQUM3QixNQUFNLEVBQ04sT0FBTyxFQUNQLFdBQVcsR0FDRDtJQUNWLE1BQU0sSUFBQSx3QkFBaUIsR0FBRSxDQUFBO0lBRXpCLDRCQUE0QjtJQUM1QixJQUFJLENBQUMsSUFBQSx5QkFBYyxHQUFFLEVBQUUsQ0FBQztRQUN0QixlQUFLLENBQUMsS0FBSyxDQUNULG9FQUFvRSxDQUNyRSxDQUFBO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBRUQsZUFBSyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0lBRXRDLE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUNsQyx3QkFBWSxFQUNaLE9BQU8sRUFDUCxXQUFXLEVBQ1gsS0FBSyxDQUNOLENBQUE7SUFDRCxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUE7SUFFeEIsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN2RSwyQkFBMkI7UUFDM0IsTUFBTSxVQUFVLEdBQVcsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDdEQsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUTtTQUMxQixDQUFDLENB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
|
|
@@ -11,6 +11,7 @@ const gluegun_1 = require("gluegun");
|
|
|
11
11
|
const constants_1 = require("../setup/constants");
|
|
12
12
|
const moddable_1 = require("../setup/moddable");
|
|
13
13
|
const exec_1 = require("../system/exec");
|
|
14
|
+
const errors_1 = require("../system/errors");
|
|
14
15
|
const chmodPromise = (0, util_1.promisify)(fs_1.chmod);
|
|
15
16
|
async function default_1({ branch, release, interactive, }) {
|
|
16
17
|
gluegun_1.print.info('Checking for SDK changes');
|
|
@@ -27,7 +28,12 @@ async function default_1({ branch, release, interactive, }) {
|
|
|
27
28
|
cwd: process.env.MODDABLE,
|
|
28
29
|
});
|
|
29
30
|
// get release tag
|
|
30
|
-
const
|
|
31
|
+
const remoteReleaseResult = await (0, moddable_1.fetchRelease)(release);
|
|
32
|
+
if ((0, errors_1.isFailure)(remoteReleaseResult)) {
|
|
33
|
+
gluegun_1.print.error(`Failed to fetch release: ${remoteReleaseResult.error}`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
const remoteRelease = (0, errors_1.unwrap)(remoteReleaseResult);
|
|
31
37
|
if (currentTag.trim() === remoteRelease.tag_name) {
|
|
32
38
|
gluegun_1.print.success('Moddable SDK already up to date!');
|
|
33
39
|
process.exit(0);
|
|
@@ -134,4 +140,4 @@ async function default_1({ branch, release, interactive, }) {
|
|
|
134
140
|
spinner.succeed('Moddable SDK successfully updated! Start the xsbug.app and run the "helloworld example": xs-dev run --example helloworld');
|
|
135
141
|
}
|
|
136
142
|
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvdXBkYXRlL21hYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWlCQSw0QkF3TUM7QUF6TkQsNENBQW1CO0FBQ25CLCtCQUFnQztBQUNoQywyQkFBMEI7QUFDMUIscUNBQTJEO0FBQzNELGtEQUFnRjtBQUNoRixnREFLMEI7QUFFMUIseUNBQWtEO0FBQ2xELDZDQUFvRDtBQUVwRCxNQUFNLFlBQVksR0FBRyxJQUFBLGdCQUFTLEVBQUMsVUFBSyxDQUFDLENBQUE7QUFFdEIsS0FBSyxvQkFBVyxFQUM3QixNQUFNLEVBQ04sT0FBTyxFQUNQLFdBQVcsR0FDRDtJQUNWLGVBQUssQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtJQUV0QyxNQUFNLElBQUEsd0JBQWlCLEdBQUUsQ0FBQTtJQUV6Qiw0QkFBNEI7SUFDNUIsSUFBSSxDQUFDLElBQUEseUJBQWMsR0FBRSxFQUFFLENBQUM7UUFDdEIsZUFBSyxDQUFDLEtBQUssQ0FDVCxvRUFBb0UsQ0FDckUsQ0FBQTtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQTtJQUV4QixJQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3ZFLDJCQUEyQjtRQUMzQixNQUFNLFVBQVUsR0FBVyxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN0RCxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRO1NBQzFCLENBQUMsQ0FBQTtRQUNGLGtCQUFrQjtRQUNsQixNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSx1QkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3ZELElBQUksSUFB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
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Result } from '../../types';
|
|
2
|
+
export default function (): Promise<Result<void>>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { GluegunPrint } from 'gluegun';
|
|
2
|
-
|
|
2
|
+
import type { Result } from '../../../types';
|
|
3
|
+
export declare function installDeps(spinner: ReturnType<GluegunPrint['spin']>): Promise<Result<void>>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { GluegunPrint } from 'gluegun';
|
|
2
|
-
|
|
2
|
+
import type { Result } from '../../../types';
|
|
3
|
+
export declare function installDeps(spinner: ReturnType<GluegunPrint['spin']>): Promise<Result<void>>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { GluegunPrint } from 'gluegun';
|
|
2
|
-
|
|
2
|
+
import type { Result } from '../../../types';
|
|
3
|
+
export declare function installDeps(spinner: ReturnType<GluegunPrint['spin']>, ESP32_DIR: string, IDF_PATH: string): Promise<Result<void>>;
|
|
3
4
|
export declare function esp32Exists(): boolean;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { GluegunPrint } from 'gluegun';
|
|
2
|
-
|
|
2
|
+
import type { SetupResult } from '../../../types';
|
|
3
|
+
export declare function installDeps(spinner: ReturnType<GluegunPrint['spin']>): Promise<SetupResult>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { GluegunPrint } from 'gluegun';
|
|
2
|
-
|
|
2
|
+
import type { SetupResult } from '../../../types';
|
|
3
|
+
export declare function installDeps(spinner: ReturnType<GluegunPrint['spin']>): Promise<SetupResult>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { GluegunPrint } from 'gluegun';
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
2
|
+
import type { SetupResult } from '../../../types';
|
|
3
|
+
export declare function installPython(spinner: ReturnType<GluegunPrint['spin']>): Promise<SetupResult>;
|
|
4
|
+
export declare function installDeps(spinner: ReturnType<GluegunPrint['spin']>, ESP_DIR: string): Promise<SetupResult>;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { SetupResult } from '../../types';
|
|
2
|
+
export default function (): Promise<SetupResult>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { PlatformSetupArgs } from './types';
|
|
2
|
-
|
|
2
|
+
import type { SetupResult } from '../../types';
|
|
3
|
+
export default function ({ sourceRepo, branch, release, interactive, }: PlatformSetupArgs): Promise<SetupResult>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { PlatformSetupArgs } from './types';
|
|
2
|
-
|
|
2
|
+
import type { SetupResult } from '../../types';
|
|
3
|
+
export default function ({ sourceRepo, branch, release, interactive, }: PlatformSetupArgs): Promise<SetupResult>;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type RestEndpointMethodTypes } from '@octokit/rest';
|
|
2
|
+
import type { Result } from '../../types';
|
|
2
3
|
export declare function moddableExists(): boolean;
|
|
3
|
-
export declare function getModdableVersion(): Promise<string
|
|
4
|
+
export declare function getModdableVersion(): Promise<Result<string>>;
|
|
4
5
|
type ExtractFromArray<Item extends readonly unknown[]> = Item extends Readonly<Array<infer ItemType>> ? ItemType : never;
|
|
5
6
|
type GitHubRelease = ExtractFromArray<RestEndpointMethodTypes['repos']['listReleases']['response']['data']>;
|
|
6
|
-
export declare function fetchRelease(release: 'latest' | string): Promise<GitHubRelease
|
|
7
|
+
export declare function fetchRelease(release: 'latest' | string): Promise<Result<GitHubRelease>>;
|
|
7
8
|
export declare class MissingReleaseAssetError extends Error {
|
|
8
9
|
constructor(assetName: string);
|
|
9
10
|
}
|
|
@@ -12,5 +13,5 @@ interface DownloadToolsArgs {
|
|
|
12
13
|
assetName: string;
|
|
13
14
|
release: GitHubRelease;
|
|
14
15
|
}
|
|
15
|
-
export declare function downloadReleaseTools({ writePath, assetName, release, }: DownloadToolsArgs): Promise<void
|
|
16
|
+
export declare function downloadReleaseTools({ writePath, assetName, release, }: DownloadToolsArgs): Promise<Result<void>>;
|
|
16
17
|
export {};
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { type GluegunPrint } from 'gluegun';
|
|
2
|
-
|
|
2
|
+
import type { SetupResult } from '../../../types';
|
|
3
|
+
export declare function installPython(spinner: ReturnType<GluegunPrint['spin']>): Promise<SetupResult>;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { SetupResult } from '../../types';
|
|
2
|
+
export default function (): Promise<SetupResult>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { GluegunPrint } from 'gluegun';
|
|
2
|
-
|
|
2
|
+
import type { SetupResult } from '../../../types';
|
|
3
|
+
export declare function installDeps(spinner: ReturnType<GluegunPrint['spin']>): Promise<SetupResult>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { type GluegunPrint } from 'gluegun';
|
|
2
|
-
|
|
2
|
+
import type { SetupResult } from '../../../types';
|
|
3
|
+
export declare function installDeps(spinner: ReturnType<GluegunPrint['spin']>): Promise<SetupResult>;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { SetupResult } from '../../types';
|
|
2
|
+
export default function (): Promise<SetupResult>;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { SetupResult } from '../../types';
|
|
2
|
+
export default function (): Promise<SetupResult>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type GluegunPrint } from 'gluegun';
|
|
2
2
|
import type { PlatformSetupArgs } from './types';
|
|
3
|
+
import type { Result, SetupResult } from '../../types';
|
|
3
4
|
export declare function setEnv(name: string, permanentValue: string, envValue?: string): Promise<void>;
|
|
4
5
|
export declare function addToPath(path: string): Promise<void>;
|
|
5
6
|
export declare function openModdableCommandPrompt(): Promise<void>;
|
|
6
|
-
export declare function ensureModdableCommandPrompt(spinner: ReturnType<GluegunPrint['spin']>): Promise<void
|
|
7
|
-
export default function ({ sourceRepo, branch, release, interactive, }: PlatformSetupArgs): Promise<
|
|
7
|
+
export declare function ensureModdableCommandPrompt(spinner: ReturnType<GluegunPrint['spin']>): Promise<Result<void>>;
|
|
8
|
+
export default function ({ sourceRepo, branch, release, interactive, }: PlatformSetupArgs): Promise<SetupResult>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Result } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a successful result
|
|
4
|
+
*/
|
|
5
|
+
export declare function success<T>(data: T): Result<T>;
|
|
6
|
+
/**
|
|
7
|
+
* Creates a successful result with no data (void)
|
|
8
|
+
*/
|
|
9
|
+
export declare function successVoid(): Result<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Creates a failed result with error message
|
|
12
|
+
*/
|
|
13
|
+
export declare function failure<T = never>(error: string): Result<T>;
|
|
14
|
+
/**
|
|
15
|
+
* Wraps a function that might throw in a Result type
|
|
16
|
+
*/
|
|
17
|
+
export declare function wrapAsync<T>(fn: () => Promise<T>): Promise<Result<T>>;
|
|
18
|
+
/**
|
|
19
|
+
* Wraps a synchronous function that might throw in a Result type
|
|
20
|
+
*/
|
|
21
|
+
export declare function wrapSync<T>(fn: () => T): Result<T>;
|
|
22
|
+
/**
|
|
23
|
+
* Checks if a Result is successful
|
|
24
|
+
*/
|
|
25
|
+
export declare function isSuccess<T>(result: Result<T>): result is {
|
|
26
|
+
success: true;
|
|
27
|
+
data: T;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Checks if a Result is a failure
|
|
31
|
+
*/
|
|
32
|
+
export declare function isFailure<T>(result: Result<T>): result is {
|
|
33
|
+
success: false;
|
|
34
|
+
error: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Gets data from a successful result or throws if failed
|
|
38
|
+
*/
|
|
39
|
+
export declare function unwrap<T>(result: Result<T>): T;
|
|
40
|
+
/**
|
|
41
|
+
* Gets data from a successful result or returns default value if failed
|
|
42
|
+
*/
|
|
43
|
+
export declare function unwrapOr<T>(result: Result<T>, defaultValue: T): T;
|
|
44
|
+
/**
|
|
45
|
+
* Maps the data of a successful result, or passes through the error
|
|
46
|
+
*/
|
|
47
|
+
export declare function mapResult<T, U>(result: Result<T>, fn: (data: T) => U): Result<U>;
|
|
48
|
+
/**
|
|
49
|
+
* Chains Result operations together
|
|
50
|
+
*/
|
|
51
|
+
export declare function flatMapResult<T, U>(result: Result<T>, fn: (data: T) => Result<U>): Result<U>;
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
+
import type { Result } from '../../types';
|
|
1
2
|
/**
|
|
2
3
|
* Ensure command can be run with sudo,
|
|
3
4
|
* first attempting as non-interactive before falling back to ssh-askpass prompt
|
|
4
5
|
**/
|
|
5
|
-
export declare function execWithSudo(command: string, options?: Record<string, unknown>): Promise<void
|
|
6
|
+
export declare function execWithSudo(command: string, options?: Record<string, unknown>): Promise<Result<void>>;
|
|
6
7
|
/**
|
|
7
8
|
* Use Policykit pkexec to run the command as an admin user
|
|
8
9
|
*/
|
|
9
|
-
export declare function pkexec(command: string, options?: Record<string, unknown>): Promise<void
|
|
10
|
+
export declare function pkexec(command: string, options?: Record<string, unknown>): Promise<Result<void>>;
|
|
10
11
|
/**
|
|
11
12
|
* Set updated env from user shell as process.env
|
|
12
13
|
*/
|
|
13
|
-
export declare function sourceEnvironment(): Promise<void
|
|
14
|
+
export declare function sourceEnvironment(): Promise<Result<void>>;
|
|
14
15
|
/**
|
|
15
16
|
* Set updated env from IDF_PATH/export.sh as process.env
|
|
16
17
|
*/
|
|
17
|
-
export declare function sourceIdf(): Promise<void
|
|
18
|
+
export declare function sourceIdf(): Promise<Result<void>>;
|
|
18
19
|
/**
|
|
19
20
|
* Set updated env from IDF_PYTHON_ENV_PATH as process.env
|
|
20
21
|
*/
|
|
21
|
-
export declare function sourceIdfPythonEnv(): Promise<void
|
|
22
|
+
export declare function sourceIdfPythonEnv(): Promise<Result<void>>;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Dependency } from './types';
|
|
2
|
+
import type { Result } from '../../types';
|
|
2
3
|
/**
|
|
3
4
|
* Check if the list of dependencies are installed on the system.
|
|
4
5
|
**/
|
|
5
|
-
export declare function findMissingDependencies(dependencies: Dependency[]): Promise<Dependency[]
|
|
6
|
+
export declare function findMissingDependencies(dependencies: Dependency[]): Promise<Result<Dependency[]>>;
|
|
6
7
|
/**
|
|
7
8
|
* Attempt to install packages on the linux platform.
|
|
8
9
|
**/
|
|
9
|
-
export declare function installPackages(packages: Dependency[]): Promise<void
|
|
10
|
+
export declare function installPackages(packages: Dependency[]): Promise<Result<void>>;
|
|
@@ -2,6 +2,16 @@ import type { GluegunToolbox } from 'gluegun';
|
|
|
2
2
|
import type { PlatformSetupArgs, SetupArgs } from './toolbox/setup/types';
|
|
3
3
|
import type { BuildArgs } from './toolbox/build/index';
|
|
4
4
|
export type Device = 'darwin' | 'mac' | 'linux' | 'lin' | 'windows_nt' | 'windows' | 'win' | 'esp8266' | 'esp32' | 'wasm' | 'pico' | 'nrf52';
|
|
5
|
+
export type Result<T, E = string> = {
|
|
6
|
+
success: true;
|
|
7
|
+
data: T;
|
|
8
|
+
} | {
|
|
9
|
+
success: false;
|
|
10
|
+
error: E;
|
|
11
|
+
};
|
|
12
|
+
export type SetupResult = Result<void>;
|
|
13
|
+
export type BuildResult = Result<string>;
|
|
14
|
+
export type UpdateResult = Result<void>;
|
|
5
15
|
export interface XSDevToolbox extends GluegunToolbox {
|
|
6
16
|
setup: Record<Device, (() => Promise<void>) | ((args: SetupArgs | PlatformSetupArgs) => Promise<void>)>;
|
|
7
17
|
update: Record<Device, (() => Promise<void>) | ((args: SetupArgs) => Promise<void>)>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xs-dev",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "CLI for automating the setup and usage of Moddable XS tools",
|
|
5
5
|
"types": "build/types/types.d.ts",
|
|
6
6
|
"engines": {
|
|
@@ -98,7 +98,10 @@
|
|
|
98
98
|
},
|
|
99
99
|
"jest": {
|
|
100
100
|
"preset": "ts-jest",
|
|
101
|
-
"testEnvironment": "node"
|
|
101
|
+
"testEnvironment": "node",
|
|
102
|
+
"testPathIgnorePatterns": [
|
|
103
|
+
"<rootDir>/build/"
|
|
104
|
+
]
|
|
102
105
|
},
|
|
103
106
|
"volta": {
|
|
104
107
|
"node": "18.14.0"
|
|
@@ -113,7 +116,14 @@
|
|
|
113
116
|
"ejs@<3.1.7": ">=3.1.7",
|
|
114
117
|
"axios@>=0.8.1 <1.6.0": ">=1.6.0",
|
|
115
118
|
"minimatch@<3.0.5": ">=3.0.5"
|
|
116
|
-
}
|
|
119
|
+
},
|
|
120
|
+
"onlyBuiltDependencies": [
|
|
121
|
+
"@serialport/bindings-cpp",
|
|
122
|
+
"esbuild",
|
|
123
|
+
"node-liblzma",
|
|
124
|
+
"sharp",
|
|
125
|
+
"usb"
|
|
126
|
+
]
|
|
117
127
|
},
|
|
118
128
|
"author": "HipsterBrown <headhipster@hipsterbrown.com>",
|
|
119
129
|
"auto": {
|