xs-dev 0.20.0 → 0.22.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 +13 -271
- package/build/commands/build.js +3 -2
- package/build/commands/run.js +3 -2
- package/build/toolbox/build/index.js +6 -2
- package/build/toolbox/setup/mac.js +25 -10
- package/build/toolbox/setup/moddable.js +9 -3
- package/build/toolbox/update/mac.js +25 -11
- package/build/types/toolbox/build/index.d.ts +2 -1
- package/build/types/toolbox/setup/moddable.d.ts +3 -0
- package/docs/src/components/PageContent/PageContent.astro +30 -31
- package/docs/src/env.d.ts +1 -0
- package/docs/src/pages/en/features/run.md +7 -0
- package/docs/src/pages/en/introduction.md +13 -10
- package/package.json +10 -9
package/README.md
CHANGED
|
@@ -2,27 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
The Moddable SDK and associated dev board tooling is incredibly empowering for embedded JS hardware development, however the set up process can be tedious to follow when getting started. This project aims to streamline the install and environment configuration requirements across platforms in just a few commands.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[Check out the documentation!](https://hipsterbrown.github.io/xs-dev/)
|
|
6
6
|
|
|
7
|
-
**
|
|
8
|
-
|
|
9
|
-
- [X] [Moddable SDK install & setup](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/Moddable%20SDK%20-%20Getting%20Started.md)
|
|
10
|
-
- [X] [ESP32 SDK setup](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/esp32.md)
|
|
11
|
-
- [X] [ESP8266 SDK setup](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/esp8266.md)
|
|
12
|
-
- [X] [WASM simulator](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/wasm.md)
|
|
13
|
-
- [X] [Raspberry Pi Pico](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/pico.md)
|
|
14
|
-
- [X] Update Moddable SDK
|
|
15
|
-
- [X] Project management, including dependencies
|
|
16
|
-
|
|
17
|
-
**Platform support:**
|
|
18
|
-
|
|
19
|
-
- [X] Mac
|
|
20
|
-
- [X] Windows (Beta support)
|
|
21
|
-
- [X] Linux
|
|
7
|
+
**This project is a work in progress and currently pre-1.0, so there may be breaking changes.**
|
|
22
8
|
|
|
23
9
|
## Requirements
|
|
24
10
|
|
|
25
|
-
[Node.js >=
|
|
11
|
+
[Node.js >= v14](https://nodejs.org/en/)
|
|
12
|
+
|
|
13
|
+
_If you've never installed Node.js before, check out the [getting started guide for xs-dev](https://hipsterbrown.github.io/xs-dev/en/guide/00-prepare#nodejs-package-manager-optional)._
|
|
26
14
|
|
|
27
15
|
**On Linux:**
|
|
28
16
|
|
|
@@ -34,277 +22,31 @@ Setup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/bionic/ssh-as
|
|
|
34
22
|
npm install -g xs-dev
|
|
35
23
|
```
|
|
36
24
|
|
|
37
|
-
## Update
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
npm update -g xs-dev
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Features
|
|
44
|
-
|
|
45
|
-
### Moddable SDK setup / update / teardown
|
|
46
|
-
|
|
47
|
-
This process mostly automates the instructions provided by Moddable's "Getting Started" documentation with a few exceptions:
|
|
48
|
-
|
|
49
|
-
- it will not install XCode, just ensures the command line tools are available
|
|
50
|
-
- the `moddable` git repo is cloned into `~/.local/share` instead of a new/existing `~/Projects` directory
|
|
51
|
-
- a symlink for `xsbug.app` is created in `/Applications` for easy access through Launchpad (on Mac)
|
|
52
|
-
|
|
53
|
-
Run script for initial setup:
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
xs-dev setup
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
Run script for updating SDK:
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
xs-dev update
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Remove all setup and environment changes with teardown command:
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
xs-dev teardown
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### ESP32 SDK install / setup
|
|
72
|
-
|
|
73
|
-
This process automates the instructions for downloading and building the esp-idf SDK tooling. This tooling will be placed in the `~/.local/share/esp32` directory, which will be created if it doesn't exist.
|
|
74
|
-
|
|
75
|
-
Run script for platform setup:
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
xs-dev setup --device=esp32
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
Run script to confirm the setup:
|
|
82
|
-
|
|
83
|
-
```
|
|
84
|
-
xs-dev run --example helloworld --device=esp32
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Flags:
|
|
88
|
-
|
|
89
|
-
- `device`: `esp8266` | `esp32` | `pico` | [any of the allowed platform identifiers](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) (defaults to current OS platform)
|
|
90
|
-
- `port`: path to port for connected device (defaults to: `UPLOAD_PORT` environment variable)
|
|
91
|
-
|
|
92
|
-
### ESP8266 SDK install / setup
|
|
93
|
-
|
|
94
|
-
This process automates the instructions for downloading all the dependencies for the ESP8266 RTOS SDK. These dependencies will be placed in the `~/.local/share/esp` directory, which will be created if it doesn't exist.
|
|
95
|
-
|
|
96
|
-
Run script for platform setup:
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
xs-dev setup --device=esp8266
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Run script to confirm the setup:
|
|
103
|
-
|
|
104
25
|
```
|
|
105
|
-
xs-dev
|
|
26
|
+
pnpm install -g xs-dev
|
|
106
27
|
```
|
|
107
28
|
|
|
108
|
-
Flags:
|
|
109
|
-
|
|
110
|
-
- `device`: `esp8266` | `esp32` | `pico` | [any of the allowed platform identifiers](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) (defaults to current OS platform)
|
|
111
|
-
- `port`: path to port for connected device (defaults to: `UPLOAD_PORT` environment variable)
|
|
112
|
-
|
|
113
|
-
### Wasm Simulator install / setup
|
|
114
|
-
|
|
115
|
-
This process automates the instructions for downloading all the dependencies for the [wasm simulator](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/wasm.md) and building the Moddable tooling. These dependencies will be placed in `~/.local/share/wasm`, which will be created if it doesn't exist.
|
|
116
|
-
|
|
117
|
-
Run script for platform setup:
|
|
118
|
-
|
|
119
29
|
```
|
|
120
|
-
xs-dev
|
|
30
|
+
yarn global add xs-dev
|
|
121
31
|
```
|
|
122
32
|
|
|
123
|
-
|
|
124
|
-
|
|
33
|
+
## Update to latest release
|
|
125
34
|
|
|
126
|
-
Run script to confirm the setup:
|
|
127
|
-
|
|
128
|
-
```
|
|
129
|
-
xs-dev run --example helloworld --device=wasm
|
|
130
35
|
```
|
|
131
|
-
|
|
132
|
-
### Raspberry Pi Pico SDK install / setup
|
|
133
|
-
|
|
134
|
-
This process automates the instructions for downloading all the dependencies for the Pico SDK. These dependencies will be placed in the `~/.local/share/pico` directory, which will be created if it doesn't exist. It will also include the [`picotool` CLI](https://github.com/raspberrypi/picotool) to help with scanning for connected devices.
|
|
135
|
-
|
|
136
|
-
Run script for platform setup:
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
xs-dev setup --device=pico
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
Run script to confirm the setup:
|
|
143
|
-
|
|
144
|
-
```
|
|
145
|
-
xs-dev run --example helloworld --device=pico
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Flags:
|
|
149
|
-
|
|
150
|
-
- `device`: `esp8266` | `esp32` | `pico` | [any of the allowed platform identifiers](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) (defaults to current OS platform)
|
|
151
|
-
- `port`: path to port for connected device (defaults to: `UPLOAD_PORT` environment variable)
|
|
152
|
-
|
|
153
|
-
### Run Moddable examples
|
|
154
|
-
|
|
155
|
-
While it is still possible to run the Moddable example projects in the documented workflow:
|
|
156
|
-
|
|
157
|
-
```
|
|
158
|
-
cd $MODDABLE/examples/<example directory>
|
|
159
|
-
mcconfig -d -m -p <platform here>
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
This tool aims to simplify that process.
|
|
163
|
-
|
|
164
|
-
List available examples:
|
|
165
|
-
```
|
|
166
|
-
xs-dev run --list-examples
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Run an example:
|
|
170
|
-
```
|
|
171
|
-
xs-dev run --example helloworld
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
Flags:
|
|
175
|
-
|
|
176
|
-
- `device`: `esp8266` | `esp32` | `pico` | [any of the allowed platform identifiers](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) (defaults to current OS platform)
|
|
177
|
-
- `port`: path to port for connected device (defaults to: `UPLOAD_PORT` environment variable)
|
|
178
|
-
|
|
179
|
-
## Project management
|
|
180
|
-
|
|
181
|
-
### Start a project
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
```
|
|
185
|
-
xs-dev init my-project
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
Creates a `main.js` and minimally configured `manifest.json` for running in the simulator.
|
|
189
|
-
|
|
190
|
-
Flags:
|
|
191
|
-
|
|
192
|
-
- `typescript`: includes typings and creates `main.ts` (experimental)
|
|
193
|
-
- `io`: includes [TC53 IO manifest](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/io/io.md)
|
|
194
|
-
- `example`: use [Moddable example project](https://github.com/Moddable-OpenSource/moddable/tree/public/examples) as base for new project
|
|
195
|
-
- `overwrite`: replace any existing directory of the same name
|
|
196
|
-
|
|
197
|
-
For the example flag, it can be used as a boolean to select a project from a list:
|
|
198
|
-
|
|
199
|
-
```
|
|
200
|
-
xs-dev init my-project --example
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
Or select from a filtered list of projects:
|
|
204
|
-
|
|
205
|
-
```
|
|
206
|
-
xs-dev init my-project --example http
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
Or if the complete example name is passed, it will be selected by default:
|
|
210
|
-
|
|
211
|
-
```
|
|
212
|
-
xs-dev init my-project --example network/mqtt/mqttbasic
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
### Build and run a project
|
|
216
|
-
|
|
217
|
-
In the project directory:
|
|
218
|
-
|
|
219
|
-
```
|
|
220
|
-
xs-dev run
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
When not in the project directory:
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
xs-dev run path/to/project
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
Flags:
|
|
230
|
-
|
|
231
|
-
- `device`: `esp8266` | `esp32` | `pico` | [any of the allowed platform identifiers](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) (defaults to current OS platform)
|
|
232
|
-
- `port`: path to port for connected device (defaults to: `UPLOAD_PORT` environment variable)
|
|
233
|
-
|
|
234
|
-
### Add a Moddable SDK module
|
|
235
|
-
|
|
236
|
-
```
|
|
237
|
-
xs-dev include network/wifi
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
Or select from available modules:
|
|
241
|
-
|
|
242
|
-
```
|
|
243
|
-
xs-dev include
|
|
244
|
-
xs-dev include files
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
Updates the `manifest.json` to include the module.
|
|
248
|
-
|
|
249
|
-
Flags:
|
|
250
|
-
|
|
251
|
-
- `device`: When this flag is present, the module is added to the `platforms` section for the specified device. When `device` is not provided, the module is added to the global manifest section to be used for all devices. For example, the following adds the module for use on `esp32` devices only:
|
|
252
|
-
|
|
253
|
-
```
|
|
254
|
-
xs-dev include files/flash --device esp32
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### Scan for available devices
|
|
258
|
-
|
|
259
|
-
If the default device discovery is having trouble finding the correct port when running a project, use this command to find available ports to pass through the `--port` flag:
|
|
260
|
-
|
|
261
|
-
```
|
|
262
|
-
$ xs-dev scan
|
|
263
|
-
|
|
264
|
-
✔ Found the following available devices!
|
|
265
|
-
Port Device Features
|
|
266
|
-
/dev/cu.usbserial-0001 ESP8266EX WiFi
|
|
267
|
-
/dev/cu.usbserial-DN02N5XK ESP32-D0WDQ6 (revision 0) WiFi, BT, Dual Core, Coding Scheme None
|
|
268
|
-
|
|
269
|
-
$ xs-dev run --port /dev/cu.usbserial-0001 --device esp8266
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
### Add a remote dependency (Coming soon)
|
|
274
|
-
|
|
275
|
-
```
|
|
276
|
-
xs-dev get dtex/j5e
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
Assumes the dependency is a GitHub repo, clones it to `~/.local/share`, creates an environment variable with the name of the repo, and updates the `manifest.json` with the path to that dependency.
|
|
280
|
-
|
|
281
|
-
To include a specific module for the installed dependency:
|
|
282
|
-
|
|
283
|
-
```
|
|
284
|
-
xs-dev include j5e/lib/led
|
|
36
|
+
npm update -g xs-dev
|
|
285
37
|
```
|
|
286
38
|
|
|
287
|
-
### Remove a Moddable SDK module
|
|
288
|
-
|
|
289
39
|
```
|
|
290
|
-
xs-dev
|
|
40
|
+
pnpm update -g xs-dev
|
|
291
41
|
```
|
|
292
42
|
|
|
293
|
-
Updates the `manifest.json` to remove the module.
|
|
294
|
-
|
|
295
|
-
Or remove all modules that contain a string. This removes all modules that contain `"wifi"`.
|
|
296
|
-
|
|
297
43
|
```
|
|
298
|
-
xs-dev
|
|
44
|
+
yarn global upgrade xs-dev
|
|
299
45
|
```
|
|
300
46
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
- `device`: When this flag is present, the module is removed from the `platforms` section for the specified device. When `device` is not provided, the module is removed from the global manifest section. For example, the following adds the module for use on `esp32` devices only:
|
|
47
|
+
## Features & Usage
|
|
304
48
|
|
|
305
|
-
|
|
306
|
-
xs-dev remove network/mqtt --device esp32
|
|
307
|
-
```
|
|
49
|
+
Check out the [docs](https://hipsterbrown.github.io/xs-dev/) to learn about using xs-dev and getting started with embedded JS development.
|
|
308
50
|
|
|
309
51
|
## Development
|
|
310
52
|
|
package/build/commands/build.js
CHANGED
|
@@ -8,7 +8,7 @@ const command = {
|
|
|
8
8
|
run: async ({ parameters, filesystem, build }) => {
|
|
9
9
|
var _a, _b, _c;
|
|
10
10
|
const currentPlatform = (0, os_1.type)().toLowerCase();
|
|
11
|
-
const { device = currentPlatform, port, example, listExamples = false, listDevices = false, mode = (_a = process.env.NODE_ENV) !== null && _a !== void 0 ? _a : 'development', output = '', deploy = false, } = parameters.options;
|
|
11
|
+
const { device = currentPlatform, port, example, listExamples = false, listDevices = false, mode = (_a = process.env.NODE_ENV) !== null && _a !== void 0 ? _a : 'development', output = '', deploy = false, config = {}, } = parameters.options;
|
|
12
12
|
const targetPlatform = (_b = devices_1.DEVICE_ALIAS[device]) !== null && _b !== void 0 ? _b : device;
|
|
13
13
|
const projectPath = filesystem.resolve((_c = parameters.first) !== null && _c !== void 0 ? _c : '.');
|
|
14
14
|
await build({
|
|
@@ -23,8 +23,9 @@ const command = {
|
|
|
23
23
|
outputDir: output !== ''
|
|
24
24
|
? filesystem.resolve(output)
|
|
25
25
|
: filesystem.resolve(String(process.env.MODDABLE), 'build'),
|
|
26
|
+
config,
|
|
26
27
|
});
|
|
27
28
|
},
|
|
28
29
|
};
|
|
29
30
|
exports.default = command;
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSwyQkFBeUM7QUFFekMsdURBQXdEO0FBZ0J4RCxNQUFNLE9BQU8sR0FBaUM7SUFDNUMsSUFBSSxFQUFFLE9BQU87SUFDYixXQUFXLEVBQUUsNENBQTRDO0lBQ3pELEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7O1FBQy9DLE1BQU0sZUFBZSxHQUFXLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7UUFDdEUsTUFBTSxFQUNKLE1BQU0sR0FBRyxlQUFlLEVBQ3hCLElBQUksRUFDSixPQUFPLEVBQ1AsWUFBWSxHQUFHLEtBQUssRUFDcEIsV0FBVyxHQUFHLEtBQUssRUFDbkIsSUFBSSxHQUFHLE1BQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFpQixtQ0FBSSxhQUFhLEVBQ3RELE1BQU0sR0FBRyxFQUFFLEVBQ1gsTUFBTSxHQUFHLEtBQUssRUFDZCxNQUFNLEdBQUcsRUFBRSxHQUNaLEdBQWlCLFVBQVUsQ0FBQyxPQUFPLENBQUE7UUFDcEMsTUFBTSxjQUFjLEdBQVcsTUFBQSxzQkFBWSxDQUFDLE1BQU0sQ0FBQyxtQ0FBSSxNQUFNLENBQUE7UUFDN0QsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFBLFVBQVUsQ0FBQyxLQUFLLG1DQUFJLEdBQUcsQ0FBQyxDQUFBO1FBRS9ELE1BQU0sS0FBSyxDQUFDO1lBQ1YsSUFBSTtZQUNKLFlBQVk7WUFDWixXQUFXO1lBQ1gsT0FBTztZQUNQLGNBQWM7WUFDZCxXQUFXO1lBQ1gsSUFBSTtZQUNKLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUN0QyxTQUFTLEVBQ1AsTUFBTSxLQUFLLEVBQUU7Z0JBQ1gsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUM1QixDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLENBQUM7WUFDL0QsTUFBTTtTQUNQLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRixDQUFBO0FBRUQsa0JBQWUsT0FBTyxDQUFBIn0=
|
package/build/commands/run.js
CHANGED
|
@@ -8,7 +8,7 @@ const command = {
|
|
|
8
8
|
run: async ({ parameters, filesystem, build }) => {
|
|
9
9
|
var _a, _b, _c;
|
|
10
10
|
const currentPlatform = (0, os_1.type)().toLowerCase();
|
|
11
|
-
const { device = currentPlatform, port, example, listExamples = false, listDevices = false, mode = (_a = process.env.NODE_ENV) !== null && _a !== void 0 ? _a : 'development', output = filesystem.resolve(String(process.env.MODDABLE), 'build'), } = parameters.options;
|
|
11
|
+
const { device = currentPlatform, port, example, listExamples = false, listDevices = false, mode = (_a = process.env.NODE_ENV) !== null && _a !== void 0 ? _a : 'development', output = filesystem.resolve(String(process.env.MODDABLE), 'build'), config = {}, } = parameters.options;
|
|
12
12
|
const targetPlatform = (_b = devices_1.DEVICE_ALIAS[device]) !== null && _b !== void 0 ? _b : device;
|
|
13
13
|
const projectPath = filesystem.resolve((_c = parameters.first) !== null && _c !== void 0 ? _c : '.');
|
|
14
14
|
await build({
|
|
@@ -21,8 +21,9 @@ const command = {
|
|
|
21
21
|
mode,
|
|
22
22
|
deployStatus: 'run',
|
|
23
23
|
outputDir: output,
|
|
24
|
+
config,
|
|
24
25
|
});
|
|
25
26
|
},
|
|
26
27
|
};
|
|
27
28
|
exports.default = command;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDJCQUF5QztBQUV6Qyx1REFBd0Q7QUFleEQsTUFBTSxPQUFPLEdBQWlDO0lBQzVDLElBQUksRUFBRSxLQUFLO0lBQ1gsV0FBVyxFQUFFLHdEQUF3RDtJQUNyRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFOztRQUMvQyxNQUFNLGVBQWUsR0FBVyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO1FBQ3RFLE1BQU0sRUFDSixNQUFNLEdBQUcsZUFBZSxFQUN4QixJQUFJLEVBQ0osT0FBTyxFQUNQLFlBQVksR0FBRyxLQUFLLEVBQ3BCLFdBQVcsR0FBRyxLQUFLLEVBQ25CLElBQUksR0FBRyxNQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBaUIsbUNBQUksYUFBYSxFQUN0RCxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLENBQUMsRUFDbEUsTUFBTSxHQUFHLEVBQUUsR0FDWixHQUFlLFVBQVUsQ0FBQyxPQUFPLENBQUE7UUFDbEMsTUFBTSxjQUFjLEdBQVcsTUFBQSxzQkFBWSxDQUFDLE1BQU0sQ0FBQyxtQ0FBSSxNQUFNLENBQUE7UUFDN0QsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFBLFVBQVUsQ0FBQyxLQUFLLG1DQUFJLEdBQUcsQ0FBQyxDQUFBO1FBRS9ELE1BQU0sS0FBSyxDQUFDO1lBQ1YsSUFBSTtZQUNKLFlBQVk7WUFDWixXQUFXO1lBQ1gsT0FBTztZQUNQLGNBQWM7WUFDZCxXQUFXO1lBQ1gsSUFBSTtZQUNKLFlBQVksRUFBRSxLQUFLO1lBQ25CLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLE1BQU07U0FDUCxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
|
|
@@ -11,7 +11,7 @@ const gluegun_1 = require("gluegun");
|
|
|
11
11
|
const choices_1 = require("../prompt/choices");
|
|
12
12
|
const moddable_1 = require("../setup/moddable");
|
|
13
13
|
const devices_1 = require("../prompt/devices");
|
|
14
|
-
async function build({ listDevices, port, example, listExamples, projectPath, targetPlatform, mode, deployStatus, outputDir, }) {
|
|
14
|
+
async function build({ listDevices, port, example, listExamples, projectPath, targetPlatform, mode, deployStatus, outputDir, config = {}, }) {
|
|
15
15
|
var _a, _b, _c, _d, _e, _f;
|
|
16
16
|
const OS = (0, os_1.type)().toLowerCase();
|
|
17
17
|
if (!(0, moddable_1.moddableExists)()) {
|
|
@@ -175,9 +175,13 @@ async function build({ listDevices, port, example, listExamples, projectPath, ta
|
|
|
175
175
|
configArgs.push('-d');
|
|
176
176
|
if (mode === 'production')
|
|
177
177
|
configArgs.push('-i');
|
|
178
|
+
Object.entries(config).forEach(([element, value]) => {
|
|
179
|
+
configArgs.push(`${element}="${value}"`);
|
|
180
|
+
});
|
|
178
181
|
await gluegun_1.system.exec(`mcconfig ${configArgs.join(' ')}`, {
|
|
179
182
|
cwd: projectPath,
|
|
180
183
|
process,
|
|
184
|
+
shell: true,
|
|
181
185
|
});
|
|
182
186
|
if (deployStatus === 'push') {
|
|
183
187
|
await gluegun_1.system.exec(`mcconfig -t deploy -p ${targetPlatform} -o ${outputDir}`, {
|
|
@@ -200,4 +204,4 @@ async function build({ listDevices, port, example, listExamples, projectPath, ta
|
|
|
200
204
|
}
|
|
201
205
|
}
|
|
202
206
|
exports.build = build;
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQkFBeUM7QUFDekMsa0VBQW1DO0FBQ25DLCtCQUFtQztBQUNuQyxxQ0FBMkQ7QUFDM0QsK0NBQTBEO0FBQzFELGdEQUFrRDtBQUNsRCwrQ0FBZ0Q7QUFrQnpDLEtBQUssVUFBVSxLQUFLLENBQUMsRUFDMUIsV0FBVyxFQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsWUFBWSxFQUNaLFdBQVcsRUFDWCxjQUFjLEVBQ2QsSUFBSSxFQUNKLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxHQUFHLEVBQUUsR0FDRDs7SUFDVixNQUFNLEVBQUUsR0FBRyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO0lBRWpELElBQUksQ0FBQyxJQUFBLHlCQUFjLEdBQUUsRUFBRTtRQUNyQixlQUFLLENBQUMsS0FBSyxDQUNULHlEQUF5RCxzQkFBWSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FDbEcsQ0FBQTtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDaEI7SUFFRCxJQUFJLFdBQVcsRUFBRTtRQUNmLE1BQU0sT0FBTyxHQUFHO1lBQ2QsS0FBSztZQUNMLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixPQUFPO1lBQ1Asb0JBQW9CO1lBQ3BCLGVBQWU7WUFDZixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLG9CQUFvQjtZQUNwQixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLDBCQUEwQjtZQUMxQixtQkFBbUI7WUFDbkIsd0JBQXdCO1lBQ3hCLGtCQUFrQjtZQUNsQixjQUFj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
|
|
@@ -48,16 +48,31 @@ async function default_1({ targetBranch }) {
|
|
|
48
48
|
await gluegun_1.system.spawn(`git clone ${constants_1.MODDABLE_REPO} ${constants_1.INSTALL_PATH} --depth 1 --branch ${release.tag_name} --single-branch`);
|
|
49
49
|
gluegun_1.filesystem.dir(BIN_PATH);
|
|
50
50
|
gluegun_1.filesystem.dir(DEBUG_BIN_PATH);
|
|
51
|
-
const isArm = os_1.default.arch() === 'arm64';
|
|
52
|
-
const assetName = isArm
|
|
53
|
-
? 'moddable-tools-mac64arm.zip'
|
|
54
|
-
: 'moddable-tools-mac64.zip';
|
|
55
51
|
spinner.info('Downloading release tools');
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
try {
|
|
53
|
+
const universalAssetName = `moddable-tools-macuniversal.zip`;
|
|
54
|
+
await (0, moddable_1.downloadReleaseTools)({
|
|
55
|
+
writePath: BIN_PATH,
|
|
56
|
+
assetName: universalAssetName,
|
|
57
|
+
release,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (error instanceof moddable_1.MissingReleaseAssetError) {
|
|
62
|
+
const isArm = os_1.default.arch() === 'arm64';
|
|
63
|
+
const assetName = isArm
|
|
64
|
+
? 'moddable-tools-mac64arm.zip'
|
|
65
|
+
: 'moddable-tools-mac64.zip';
|
|
66
|
+
await (0, moddable_1.downloadReleaseTools)({
|
|
67
|
+
writePath: BIN_PATH,
|
|
68
|
+
assetName,
|
|
69
|
+
release,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
61
76
|
const tools = (_a = gluegun_1.filesystem.list(BIN_PATH)) !== null && _a !== void 0 ? _a : [];
|
|
62
77
|
await Promise.all(tools.map(async (tool) => {
|
|
63
78
|
if (tool.endsWith('.app')) {
|
|
@@ -115,4 +130,4 @@ async function default_1({ targetBranch }) {
|
|
|
115
130
|
spinner.succeed('Moddable SDK successfully set up! Start a new terminal session and run the "helloworld example": xs-dev run --example helloworld');
|
|
116
131
|
}
|
|
117
132
|
exports.default = default_1;
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvbWFjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUNBQW1EO0FBQ25ELDRDQUFtQjtBQUNuQiwrQkFBZ0M7QUFDaEMsMkJBQTBCO0FBQzFCLDJDQU1vQjtBQUNwQixnRUFBdUM7QUFDdkMseUNBSW1CO0FBR25CLE1BQU0sWUFBWSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxVQUFLLENBQUMsQ0FBQTtBQUV0QixLQUFLLG9CQUFXLEVBQUUsWUFBWSxFQUFhOztJQUN4RCxlQUFLLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUE7SUFFdkMsTUFBTSxRQUFRLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQ2pDLHdCQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQUE7SUFDRCxNQUFNLGNBQWMsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDdkMsd0JBQVksRUFDWixPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxPQUFPLENBQ1IsQ0FBQTtJQUNELE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUNsQyx3QkFBWSxFQUNaLE9BQU8sRUFDUCxXQUFXLEVBQ1gsS0FBSyxDQUNOLENBQUE7SUFFRCxNQUFNLFlBQVksR0FBRyxJQUFBLDBCQUFjLEdBQUUsQ0FBQTtJQUVyQyx1REFBdUQ7SUFDdkQsSUFBSTtRQUNGLE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtLQUNyQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsZUFBSyxDQUFDLEtBQUssQ0FDVCw0RkFBNEYsQ0FDN0YsQ0FBQTtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDaEI7SUFFRCxNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFD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
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.downloadReleaseTools = exports.fetchLatestRelease = exports.getModdableVersion = exports.moddableExists = void 0;
|
|
6
|
+
exports.downloadReleaseTools = exports.MissingReleaseAssetError = exports.fetchLatestRelease = exports.getModdableVersion = exports.moddableExists = void 0;
|
|
7
7
|
const os_1 = require("os");
|
|
8
8
|
const stream_1 = require("stream");
|
|
9
9
|
const util_1 = require("util");
|
|
@@ -58,10 +58,16 @@ async function fetchLatestRelease() {
|
|
|
58
58
|
return latestRelease;
|
|
59
59
|
}
|
|
60
60
|
exports.fetchLatestRelease = fetchLatestRelease;
|
|
61
|
+
class MissingReleaseAssetError extends Error {
|
|
62
|
+
constructor(assetName) {
|
|
63
|
+
super(`Unabled to find release asset matching ${assetName}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.MissingReleaseAssetError = MissingReleaseAssetError;
|
|
61
67
|
async function downloadReleaseTools({ writePath, assetName, release, }) {
|
|
62
68
|
const moddableTools = release.assets.find(({ name }) => name === assetName);
|
|
63
69
|
if (moddableTools === undefined) {
|
|
64
|
-
throw new
|
|
70
|
+
throw new MissingReleaseAssetError(assetName);
|
|
65
71
|
}
|
|
66
72
|
const zipWriter = (0, unzip_stream_1.Extract)({
|
|
67
73
|
path: writePath,
|
|
@@ -73,4 +79,4 @@ async function downloadReleaseTools({ writePath, assetName, release, }) {
|
|
|
73
79
|
await finishedPromise(zipWriter);
|
|
74
80
|
}
|
|
75
81
|
exports.downloadReleaseTools = downloadReleaseTools;
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9tb2RkYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQkFBeUM7QUFDekMsbUNBQWlDO0FBQ2pDLCtCQUFnQztBQUNoQyxxQ0FBNEM7QUFDNUMsd0NBQWdFO0FBQ2hFLCtDQUFvRDtBQUNwRCxrREFBeUI7QUFDekIsMkNBQTBDO0FBRTFDLCtDQUFnRDtBQUVoRCxNQUFNLGVBQWUsR0FBRyxJQUFBLGdCQUFTLEVBQUMsaUJBQVEsQ0FBQyxDQUFBO0FBRTNDLFNBQWdCLGNBQWM7SUFDNUIsTUFBTSxFQUFFLEdBQUcsSUFBQSxTQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtJQUNqRCxNQUFNLFdBQVcsR0FBRyxzQkFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3BDLE1BQU0sWUFBWSxHQUFHLG9CQUFVLENBQUMsTUFBTSxDQUNwQyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyx3QkFBWSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUN6RSxDQUFBO0lBQ0QsTUFBTSxVQUFVLEdBQUcsb0JBQVUsQ0FBQyxNQUFNLENBQ2xDLG9CQUFVLENBQUMsT0FBTyxDQUFDLHdCQUFZLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQ3ZFLENBQUE7SUFDRCxPQUFPLENBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUztRQUNsQyxvQkFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUs7UUFDakQsWUFBWSxLQUFLLEtBQUs7UUFDdEIsVUFBVSxLQUFLLEtBQUssQ0FDckIsQ0FBQTtBQUNILENBQUM7QUFmRCx3Q0FlQztBQUVNLEtBQUssVUFBVSxrQkFBa0I7SUFDdEMsSUFBSSxjQUFj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
|
|
@@ -37,16 +37,30 @@ async function default_1({ targetBranch }) {
|
|
|
37
37
|
await gluegun_1.system.spawn(`git clone ${constants_1.MODDABLE_REPO} ${constants_1.INSTALL_PATH} --depth 1 --branch ${latestRelease.tag_name} --single-branch`);
|
|
38
38
|
gluegun_1.filesystem.dir(BIN_PATH);
|
|
39
39
|
gluegun_1.filesystem.dir(DEBUG_BIN_PATH);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
try {
|
|
41
|
+
const universalAssetName = `moddable-tools-macuniversal.zip`;
|
|
42
|
+
await (0, moddable_1.downloadReleaseTools)({
|
|
43
|
+
writePath: BIN_PATH,
|
|
44
|
+
assetName: universalAssetName,
|
|
45
|
+
release: latestRelease,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (error instanceof moddable_1.MissingReleaseAssetError) {
|
|
50
|
+
const isArm = os_1.default.arch() === 'arm64';
|
|
51
|
+
const assetName = isArm
|
|
52
|
+
? 'moddable-tools-mac64arm.zip'
|
|
53
|
+
: 'moddable-tools-mac64.zip';
|
|
54
|
+
await (0, moddable_1.downloadReleaseTools)({
|
|
55
|
+
writePath: BIN_PATH,
|
|
56
|
+
assetName,
|
|
57
|
+
release: latestRelease,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
50
64
|
spinner.info('Updating tool permissions');
|
|
51
65
|
const tools = (_a = gluegun_1.filesystem.list(BIN_PATH)) !== null && _a !== void 0 ? _a : [];
|
|
52
66
|
await Promise.all(tools.map(async (tool) => {
|
|
@@ -90,4 +104,4 @@ async function default_1({ targetBranch }) {
|
|
|
90
104
|
}
|
|
91
105
|
}
|
|
92
106
|
exports.default = default_1;
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2xib3gvdXBkYXRlL21hYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUFtQjtBQUNuQiwrQkFBZ0M7QUFDaEMsMkJBQTBCO0FBQzFCLHFDQUFtRDtBQUNuRCxrREFBZ0U7QUFDaEUsZ0RBSzBCO0FBRzFCLE1BQU0sWUFBWSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxVQUFLLENBQUMsQ0FBQTtBQUV0QixLQUFLLG9CQUFXLEVBQUUsWUFBWSxFQUFhOztJQUN4RCxlQUFLLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUE7SUFFdEMsNEJBQTRCO0lBQzVCLElBQUksQ0FBQyxJQUFBLHlCQUFjLEdBQUUsRUFBRTtRQUNyQixlQUFLLENBQUMsS0FBSyxDQUNULG9FQUFvRSxDQUNyRSxDQUFBO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtJQUVELElBQUksWUFBWSxLQUFLLGdCQUFnQixFQUFFO1FBQ3JDLDJCQUEyQjtRQUMzQixNQUFNLFVBQVUsR0FBVyxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN0RCxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRO1NBQzFCLENBQUMsQ0FBQTtRQUNGLHlCQUF5QjtRQUN6QixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUEsNkJBQWtCLEdBQUUsQ0FBQTtRQUVoRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQ2hELGVBQUssQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtZQUNqRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2hCO1FBRUQsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQzVCLE9BQU8sQ0FBQyxLQUFLLENB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
|
|
@@ -9,5 +9,6 @@ export interface BuildArgs {
|
|
|
9
9
|
mode: 'development' | 'production';
|
|
10
10
|
deployStatus: DeployStatus;
|
|
11
11
|
outputDir: string;
|
|
12
|
+
config?: Record<string, string>;
|
|
12
13
|
}
|
|
13
|
-
export declare function build({ listDevices, port, example, listExamples, projectPath, targetPlatform, mode, deployStatus, outputDir, }: BuildArgs): Promise<void>;
|
|
14
|
+
export declare function build({ listDevices, port, example, listExamples, projectPath, targetPlatform, mode, deployStatus, outputDir, config, }: BuildArgs): Promise<void>;
|
|
@@ -4,6 +4,9 @@ export declare function getModdableVersion(): Promise<string | null>;
|
|
|
4
4
|
declare type ExtractFromArray<Item extends readonly unknown[]> = Item extends Readonly<Array<infer ItemType>> ? ItemType : never;
|
|
5
5
|
declare type GitHubRelease = ExtractFromArray<RestEndpointMethodTypes['repos']['listReleases']['response']['data']>;
|
|
6
6
|
export declare function fetchLatestRelease(): Promise<GitHubRelease>;
|
|
7
|
+
export declare class MissingReleaseAssetError extends Error {
|
|
8
|
+
constructor(assetName: string);
|
|
9
|
+
}
|
|
7
10
|
interface DownloadToolsArgs {
|
|
8
11
|
writePath: string;
|
|
9
12
|
assetName: string;
|
|
@@ -1,41 +1,40 @@
|
|
|
1
1
|
---
|
|
2
|
-
import MoreMenu from '../RightSidebar/MoreMenu.astro'
|
|
3
|
-
import TableOfContents from '../RightSidebar/TableOfContents.tsx'
|
|
2
|
+
import MoreMenu from '../RightSidebar/MoreMenu.astro'
|
|
3
|
+
import TableOfContents from '../RightSidebar/TableOfContents.tsx'
|
|
4
4
|
|
|
5
|
-
const { content, githubEditUrl } = Astro.props
|
|
6
|
-
const title = content.title
|
|
7
|
-
const headers = content.astro.headers;
|
|
5
|
+
const { content, githubEditUrl } = Astro.props
|
|
6
|
+
const title = content.title
|
|
8
7
|
---
|
|
9
8
|
|
|
10
9
|
<article id="article" class="content">
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
<section class="main-section">
|
|
11
|
+
<h1 class="content-title" id="overview">{title}</h1>
|
|
12
|
+
<slot />
|
|
13
|
+
</section>
|
|
14
|
+
<nav class="block sm:hidden">
|
|
15
|
+
<MoreMenu editHref={githubEditUrl} />
|
|
16
|
+
</nav>
|
|
18
17
|
</article>
|
|
19
18
|
|
|
20
19
|
<style>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
20
|
+
.content {
|
|
21
|
+
padding: 0;
|
|
22
|
+
max-width: 75ch;
|
|
23
|
+
width: 100%;
|
|
24
|
+
height: 100%;
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
}
|
|
28
|
+
.content > section {
|
|
29
|
+
margin-bottom: 4rem;
|
|
30
|
+
}
|
|
31
|
+
.block {
|
|
32
|
+
display: block;
|
|
33
|
+
}
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
@media (min-width: 50em) {
|
|
36
|
+
.sm\:hidden {
|
|
37
|
+
display: none;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
41
40
|
</style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="astro/client" />
|
|
@@ -62,6 +62,13 @@ xs-dev run --port /dev/cu.usbserial-0001 --device esp8266
|
|
|
62
62
|
|
|
63
63
|
_This value can be discovered using the [`scan`](./scan) command._
|
|
64
64
|
|
|
65
|
+
## Set `mc/config` arguments
|
|
66
|
+
|
|
67
|
+
Use the `--config` flag to provide [config arguments](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/tools/tools.md#arguments) to the `mc/config` module. This mechanism is often used to configure Wi-Fi credentials when running on a device:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
xs-dev run --example network/http/httpgetjson --device esp32 --config.ssid=mySSID --config.password="a secret"
|
|
71
|
+
```
|
|
65
72
|
|
|
66
73
|
## Building projects for release
|
|
67
74
|
|
|
@@ -10,28 +10,31 @@ CLI for automating the setup and usage of [Moddable XS tools](https://github.com
|
|
|
10
10
|
|
|
11
11
|
The Moddable SDK and associated dev board tooling is incredibly empowering for embedded JS hardware development, however the set up process can be tedious to follow when getting started. This project aims to streamline the installation and environment configuration requirements across platforms in just a few commands.
|
|
12
12
|
|
|
13
|
-
**This project is a work in progress and
|
|
13
|
+
**This project is a work in progress and currently pre-1.0, so there may be breaking changes.**
|
|
14
14
|
|
|
15
15
|
**Features:**
|
|
16
16
|
|
|
17
|
-
- [X] [Moddable SDK setup](
|
|
18
|
-
- [X] [SDK updates](
|
|
19
|
-
- [X] [Teardown](
|
|
20
|
-
- [X] [Device discovery](
|
|
21
|
-
- [X] [Project creation](
|
|
22
|
-
- [X] [Run a project or example](
|
|
23
|
-
- [X] [SDK module management](
|
|
17
|
+
- [X] [Moddable SDK setup](/xs-dev/en/features/setup)
|
|
18
|
+
- [X] [SDK updates](/xs-dev/en/features/update)
|
|
19
|
+
- [X] [Teardown](/xs-dev/en/features/teardown)
|
|
20
|
+
- [X] [Device discovery](/xs-dev/en/features/scan)
|
|
21
|
+
- [X] [Project creation](/xs-dev/en/features/init)
|
|
22
|
+
- [X] [Run a project or example](/xs-dev/en/features/run)
|
|
23
|
+
- [X] [SDK module management](/xs-dev/en/features/include)
|
|
24
|
+
- [X] [Get dev environment info](/xs-dev/en/features/doctor)
|
|
24
25
|
- [ ] Third-party dependency management ([coming soon](https://github.com/HipsterBrown/xs-dev/issues/49))
|
|
25
26
|
|
|
26
27
|
**Platform support:**
|
|
27
28
|
|
|
28
29
|
- [X] Mac
|
|
29
|
-
- [
|
|
30
|
+
- [-] Windows (currently in beta)
|
|
30
31
|
- [X] Linux
|
|
31
32
|
|
|
32
33
|
## Requirements
|
|
33
34
|
|
|
34
|
-
[Node.js >=
|
|
35
|
+
[Node.js >= v14](https://nodejs.org/en/)
|
|
36
|
+
|
|
37
|
+
_If you've never installed Node.js before, check out the [getting started guide for xs-dev](/xs-dev/en/guide/00-prepare#nodejs-package-manager-optional)._
|
|
35
38
|
|
|
36
39
|
**On Linux:**
|
|
37
40
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xs-dev",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.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
|
"bin": {
|
|
@@ -31,21 +31,21 @@
|
|
|
31
31
|
"windows-shortcuts": "^0.1.6"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@astrojs/lit": "^1.
|
|
35
|
-
"@astrojs/mdx": "^0.
|
|
36
|
-
"@astrojs/preact": "^
|
|
37
|
-
"@astrojs/sitemap": "^1.0.
|
|
38
|
-
"@astrojs/tailwind": "^
|
|
34
|
+
"@astrojs/lit": "^1.1.2",
|
|
35
|
+
"@astrojs/mdx": "^0.16.0",
|
|
36
|
+
"@astrojs/preact": "^2.0.2",
|
|
37
|
+
"@astrojs/sitemap": "^1.0.1",
|
|
38
|
+
"@astrojs/tailwind": "^3.0.1",
|
|
39
39
|
"@changesets/cli": "^2.19.0",
|
|
40
40
|
"@types/jest": "^27.4.0",
|
|
41
|
-
"@types/node": "^
|
|
41
|
+
"@types/node": "^18.11.19",
|
|
42
42
|
"@types/serve-handler": "^6.1.1",
|
|
43
43
|
"@types/tar-fs": "^2.0.1",
|
|
44
44
|
"@types/unzip-stream": "^0.3.1",
|
|
45
45
|
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
|
46
46
|
"@typescript-eslint/parser": "^4.33.0",
|
|
47
47
|
"@webcomponents/template-shadowroot": "^0.1.0",
|
|
48
|
-
"astro": "^
|
|
48
|
+
"astro": "^2.0.6",
|
|
49
49
|
"eslint": "^7.32.0",
|
|
50
50
|
"eslint-config-prettier": "^8.3.0",
|
|
51
51
|
"eslint-config-standard-with-typescript": "^21.0.1",
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
"preact-render-to-string": "^5.2.0",
|
|
60
60
|
"prettier": "^2.5.1",
|
|
61
61
|
"rollup": "^2.78.1",
|
|
62
|
+
"tailwindcss": "^3.0.24",
|
|
62
63
|
"ts-jest": "^27.1.2",
|
|
63
64
|
"ts-node": "^10.9.1",
|
|
64
65
|
"typescript": "^4.7.3"
|
|
@@ -68,7 +69,7 @@
|
|
|
68
69
|
"testEnvironment": "node"
|
|
69
70
|
},
|
|
70
71
|
"volta": {
|
|
71
|
-
"node": "18.
|
|
72
|
+
"node": "18.14.0"
|
|
72
73
|
},
|
|
73
74
|
"prettier": {
|
|
74
75
|
"semi": false,
|