Skip to content

Commit d96c414

Browse files
authored
Add browser support (#79)
* Add host object and factor out fs * refactor and pull out http * refactor the language service * More fs refactor * monorepo init * Refactor into two packages * remove extra dependency * Add browser package * More host refactoring * Remove more native dependencies * rename packages * Update github action workflow * fox wprkflow * fix imports and add build step names * Add semantic-release-monorepo * update readme * Update package.json * Update gitignore * remove gitignored files
1 parent 7e6c318 commit d96c414

40 files changed

+6662
-1692
lines changed

.github/workflows/build.yml

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,28 @@ jobs:
1818
uses: actions/setup-node@v2
1919
with:
2020
node-version: ${{ matrix.node-version }}
21-
- uses: bahmutov/npm-install@v1
22-
- run: npm run compile
23-
- run: npx semantic-release
21+
- name: yarn install
22+
uses: bahmutov/npm-install@v1
23+
with:
24+
install-command: yarn install
25+
- name: Compile makecode-core
26+
run: yarn compile
27+
working-directory: packages/makecode-core
28+
- name: Compile makecode-node
29+
run: yarn compile
30+
working-directory: packages/makecode-node
31+
- name: Compile makecode-browser
32+
run: yarn compile
33+
working-directory: packages/makecode-browser
34+
- name: semantic-release makecode-core
35+
run: npx semantic-release -e semantic-release-monorepo
36+
working-directory: packages/makecode-core
37+
- name: semantic-release makecode-node
38+
run: npx semantic-release -e semantic-release-monorepo
39+
working-directory: packages/makecode-node
40+
- name: semantic-release makecode-browser
41+
run: npx semantic-release -e semantic-release-monorepo
42+
working-directory: packages/makecode-browser
2443
env:
2544
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2645
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ node_modules
55
pxt_modules
66
*.vsix
77
src/simloaderfiles.ts
8+
packages/makecode-core/src/simloaderfiles.ts
9+
packages/makecode-browser/src/workerFiles.ts

README.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,10 +243,21 @@ mkc -c mkc-arcade.json
243243

244244
This section describes how to build mkc itself.
245245

246+
mkc is split into three packages:
247+
248+
1. makecode-core - which contains most of the functionality/shared code
249+
2. makecode-node - which contains the node CLI (this is the package that is installed via `npm install makecode`)
250+
3. makecode-browser - which contains a browser implementation of the mkc language service
251+
252+
### Building
253+
246254
- install node.js
247-
- run `yarn install`
248-
- start the build: `yarn watch`
249-
- run `node path/to/pxt-mkc/makecode` in your project folder
255+
- run `yarn install` from the root of this repo (this will also link the local packages)
256+
- start the build watch in makecode-core and makecode-node:
257+
- (run these in separate terminals)
258+
- `cd packages/makecode-core && yarn watch`
259+
- `cd packages/makecode-node && yarn watch`
260+
- run `node path/to/pxt-mkc/packages/makecode-node/makecode` in your project folder
250261

251262
If you want to test out changes in pxt, first run the build as usual, and then replace
252263
`$HOME/.pxt/mkc-cache/https_58__47__47_<your-editor>-pxtworker.js`

package.json

Lines changed: 9 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,11 @@
1+
12
{
2-
"name": "makecode",
3-
"version": "0.34.6",
4-
"description": "MakeCode (PXT) - web-cached build tool",
5-
"keywords": [
6-
"TypeScript",
7-
"JavaScript",
8-
"education",
9-
"microbit",
10-
"arcade",
11-
"makecode"
12-
],
13-
"repository": {
14-
"type": "git",
15-
"url": "https://github.com/microsoft/pxt-mkc"
16-
},
17-
"author": "",
18-
"license": "MIT",
19-
"homepage": "https://makecode.com/docs",
20-
"files": [
21-
"README.md",
22-
"built/*",
23-
"external/*",
24-
"makecode"
25-
],
26-
"preferGlobal": true,
27-
"bin": {
28-
"makecode": "./makecode",
29-
"mkc": "./makecode"
30-
},
31-
"engines": {
32-
"node": ">= 11.0.0"
33-
},
34-
"scripts": {
35-
"compile": "tsc -p simloader && node simloader/build.js && tsc -p ./",
36-
"watch": "tsc -p simloader && node simloader/build.js && tsc -watch -p ./",
37-
"sim": "tsc -p simloader && node simloader/build.js"
38-
},
39-
"main": "built/mkc.js",
40-
"devDependencies": {
41-
"@semantic-release/git": "^10.0.0",
42-
"@semantic-release/github": "^8.0.1",
43-
"@semantic-release/npm": "^8.0.0",
44-
"@semantic-release/release-notes-generator": "^10.0.2",
45-
"@types/glob": "^7.1.4",
46-
"@types/node": "^16.10.3",
47-
"@types/semver": "^7.3.9",
48-
"semantic-release": "^18.0.0",
49-
"typescript": "^4.4.3"
50-
},
51-
"dependencies": {
52-
"chalk": "^4.1.2",
53-
"commander": "^8.2.0",
54-
"glob": "^7.2.0",
55-
"node-fetch": "^2.0.0",
56-
"node-watch": "^0.7.2",
57-
"semver": "^7.3.7"
58-
},
59-
"release": {
60-
"branch": "master",
61-
"plugins": [
62-
"@semantic-release/commit-analyzer",
63-
"@semantic-release/release-notes-generator",
64-
[
65-
"@semantic-release/github",
66-
{
67-
"successComment": false,
68-
"failComment": false
69-
}
70-
],
71-
"@semantic-release/npm",
72-
[
73-
"@semantic-release/git",
74-
{
75-
"assets": [
76-
"package.json",
77-
"package-lock.json"
78-
]
79-
}
80-
]
3+
"private": true,
4+
"scripts": {
5+
},
6+
"devDependencies": {
7+
},
8+
"workspaces": [
9+
"packages/*"
8110
]
82-
}
83-
}
11+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
{
2+
"name": "makecode-browser",
3+
"version": "0.0.1",
4+
"description": "MakeCode (PXT) - web-cached build tool",
5+
"keywords": [
6+
"TypeScript",
7+
"JavaScript",
8+
"education",
9+
"microbit",
10+
"arcade",
11+
"makecode"
12+
],
13+
"repository": {
14+
"type": "git",
15+
"url": "https://github.com/microsoft/pxt-mkc"
16+
},
17+
"author": "",
18+
"license": "MIT",
19+
"homepage": "https://github.com/microsoft/pxt-mkc",
20+
"files": [
21+
"README.md",
22+
"built/*",
23+
"external/*",
24+
"makecode"
25+
],
26+
"preferGlobal": false,
27+
"engines": {
28+
"node": ">= 14.0.0"
29+
},
30+
"scripts": {
31+
"compile": "tsc -p worker && node worker/build.js && tsc -p ./",
32+
"watch": "tsc -p worker && node worker/build.js && tsc -watch -p ./"
33+
},
34+
"main": "built/mkc.js",
35+
"devDependencies": {
36+
"@semantic-release/git": "^10.0.0",
37+
"@semantic-release/github": "^8.0.1",
38+
"@semantic-release/npm": "^8.0.0",
39+
"@semantic-release/release-notes-generator": "^10.0.2",
40+
"semantic-release": "^18.0.0",
41+
"semantic-release-monorepo": "^7.0.5",
42+
"typescript": "^4.4.3"
43+
},
44+
"dependencies": {
45+
"makecode-core": "^0.0.1"
46+
},
47+
"release": {
48+
"branch": "master",
49+
"plugins": [
50+
"@semantic-release/commit-analyzer",
51+
"@semantic-release/release-notes-generator",
52+
[
53+
"@semantic-release/github",
54+
{
55+
"successComment": false,
56+
"failComment": false
57+
}
58+
],
59+
"@semantic-release/npm",
60+
[
61+
"@semantic-release/git",
62+
{
63+
"assets": [
64+
"package.json",
65+
"package-lock.json"
66+
]
67+
}
68+
]
69+
]
70+
}
71+
}

0 commit comments

Comments
 (0)