Skip to content

Commit

Permalink
example(demos): monaco: give meta3d-type type infer
Browse files Browse the repository at this point in the history
  • Loading branch information
yyc-git committed Dec 7, 2023
1 parent 390fa5d commit 793c8ad
Show file tree
Hide file tree
Showing 27 changed files with 359 additions and 63 deletions.
5 changes: 3 additions & 2 deletions demos/monaco/lib/bs/.bsbuild
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
3
4
Main
Editor
Window
MonacoEditor
src src/external
1
1
0
4 changes: 2 additions & 2 deletions demos/monaco/lib/bs/.bsdeps
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
10.1.4
/Users/yang/Github/Meta3D/demos/monaco
0
bsconfig.json 0x1.95a66368p+30
bsconfig.json 0x1.95c61a28p+30
src 0x1.95a653bcp+30
src/external 0x1.95a64904p+30
src/external 0x1.95c618bcp+30
===
/Users/yang/Github/Meta3D/node_modules/rescript/darwin/rescript.exe 0x1.95811b6p+30
4 changes: 2 additions & 2 deletions demos/monaco/lib/bs/.compiler.log
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#Start(1701425282334)
#Done(1701425282401)
#Start(1701942328135)
#Done(1701942328180)
78 changes: 49 additions & 29 deletions demos/monaco/lib/bs/.ninja_log
Original file line number Diff line number Diff line change
@@ -1,30 +1,50 @@
# ninja log v6
38 89 1701424572559842196 src/Editor-Monaco.cmj 39b2e3766d98d43a
89 125 1701424572618336550 ../es6_global/src/Main.bs.js 310c78b32d6bfaa9
20 39 1701424518949784060 src/external/MonacoEditor-Monaco.cmj cf9d6de7d9937c42
89 125 1701424572618336550 src/Main-Monaco.cmi 310c78b32d6bfaa9
89 125 1701424572618336550 src/Main-Monaco.cmj 310c78b32d6bfaa9
89 125 1701424572618336550 ../js/src/Main.bs.js 310c78b32d6bfaa9
14 20 1701424518949784060 src/external/MonacoEditor.d 3beb54659d8754a6
0 14 1701424518949784060 src/external/MonacoEditor.ast 18aee9080f099d38
20 39 1701424518949784060 ../js/src/external/MonacoEditor.bs.js cf9d6de7d9937c42
1 26 1701424572559842196 src/Editor.ast c6c5cb33c5f68401
0 21 1701420387626411236 src/Main.ast 71353078246625c8
21 32 1701420387638870669 src/Main.d ce6c5184e1881641
26 38 1701424572559842196 src/Editor.d 8a1d9d7890c7b7f2
20 39 1701424518949784060 src/external/MonacoEditor-Monaco.cmi cf9d6de7d9937c42
38 89 1701424572559842196 ../js/src/Editor.bs.js 39b2e3766d98d43a
20 39 1701424518949784060 ../es6_global/src/external/MonacoEditor.bs.js cf9d6de7d9937c42
38 89 1701424572559842196 ../es6_global/src/Editor.bs.js 39b2e3766d98d43a
1 23 1701420387627206261 Monaco.cmi f40aeddade8ac3e5
38 89 1701424572559842196 src/Editor-Monaco.cmi 39b2e3766d98d43a
0 15 1701425282347553498 src/Editor.ast c6c5cb33c5f68401
15 21 1701425282347553498 src/Editor.d 8a1d9d7890c7b7f2
21 42 1701425282347553498 src/Editor-Monaco.cmj 39b2e3766d98d43a
21 42 1701425282347553498 src/Editor-Monaco.cmi 39b2e3766d98d43a
21 42 1701425282347553498 ../es6_global/src/Editor.bs.js 39b2e3766d98d43a
21 42 1701425282347553498 ../js/src/Editor.bs.js 39b2e3766d98d43a
42 67 1701425282372349539 src/Main-Monaco.cmj 310c78b32d6bfaa9
42 67 1701425282372349539 src/Main-Monaco.cmi 310c78b32d6bfaa9
42 67 1701425282372349539 ../es6_global/src/Main.bs.js 310c78b32d6bfaa9
42 67 1701425282372349539 ../js/src/Main.bs.js 310c78b32d6bfaa9
24 34 1701942268252368999 src/Editor.d 2b9e2a0f4bb583d8
3 30 1701938830086002233 src/external/Window.ast 9734818094eebe2c
33 51 1701938830108846035 src/external/MonacoEditor.d df1ae6e3ad492683
47 71 1701938830128497664 src/external/Window-Monaco.cmj 9be054b8dca3aee1
0 25 1701938830081420360 src/Main.ast 71353078246625c8
0 24 1701942268252368999 src/Editor.ast c6c5cb33c5f68401
25 47 1701938830104896770 src/Main.d 8497062471059ed
30 47 1701938830104831773 src/external/Window.d bb1f588939e26b1f
47 71 1701938830128497664 src/external/Window-Monaco.cmi 9be054b8dca3aee1
7 34 1701938830089465803 Monaco.cmi f40aeddade8ac3e5
69 104 1701942268293335344 ../es6_global/src/Main.bs.js 19a34d0bb7e41e40
47 71 1701938830128497664 ../js/src/external/Window.bs.js 9be054b8dca3aee1
5 33 1701938830087313296 src/external/MonacoEditor.ast 18aee9080f099d38
35 69 1701942268252368999 src/Editor-Monaco.cmi 73b687b35b4bde17
35 69 1701942268252368999 ../es6_global/src/Editor.bs.js 73b687b35b4bde17
35 69 1701942268252368999 ../js/src/Editor.bs.js 73b687b35b4bde17
51 92 1701938830136060222 ../es6_global/src/external/MonacoEditor.bs.js 6f3a41df040774f1
51 92 1701938830136060222 src/external/MonacoEditor-Monaco.cmi 6f3a41df040774f1
51 92 1701938830136060222 ../js/src/external/MonacoEditor.bs.js 6f3a41df040774f1
69 104 1701942268293335344 src/Main-Monaco.cmi 19a34d0bb7e41e40
51 92 1701938830136060222 src/external/MonacoEditor-Monaco.cmj 6f3a41df040774f1
47 71 1701938830128497664 ../es6_global/src/external/Window.bs.js 9be054b8dca3aee1
35 69 1701942268252368999 src/Editor-Monaco.cmj 73b687b35b4bde17
69 104 1701942268293335344 ../js/src/Main.bs.js 19a34d0bb7e41e40
69 104 1701942268293335344 src/Main-Monaco.cmj 19a34d0bb7e41e40
0 14 1701942319906849842 src/Editor.ast c6c5cb33c5f68401
14 20 1701942319906849842 src/Editor.d 2b9e2a0f4bb583d8
20 42 1701942319906849842 src/Editor-Monaco.cmj 73b687b35b4bde17
20 42 1701942319906849842 src/Editor-Monaco.cmi 73b687b35b4bde17
20 42 1701942319906849842 ../es6_global/src/Editor.bs.js 73b687b35b4bde17
20 42 1701942319906849842 ../js/src/Editor.bs.js 73b687b35b4bde17
0 14 1701942325356473555 src/Editor.ast c6c5cb33c5f68401
14 20 1701942325356473555 src/Editor.d 2b9e2a0f4bb583d8
20 43 1701942325356473555 src/Editor-Monaco.cmj 73b687b35b4bde17
20 43 1701942325356473555 src/Editor-Monaco.cmi 73b687b35b4bde17
20 43 1701942325356473555 ../es6_global/src/Editor.bs.js 73b687b35b4bde17
20 43 1701942325356473555 ../js/src/Editor.bs.js 73b687b35b4bde17
0 16 1701942327557764517 src/Editor.ast c6c5cb33c5f68401
16 22 1701942327557764517 src/Editor.d 2b9e2a0f4bb583d8
22 46 1701942327557764517 src/Editor-Monaco.cmj 73b687b35b4bde17
22 46 1701942327557764517 src/Editor-Monaco.cmi 73b687b35b4bde17
22 46 1701942327557764517 ../es6_global/src/Editor.bs.js 73b687b35b4bde17
22 46 1701942327557764517 ../js/src/Editor.bs.js 73b687b35b4bde17
0 16 1701942328150233703 src/Editor.ast c6c5cb33c5f68401
16 23 1701942328150233703 src/Editor.d 2b9e2a0f4bb583d8
23 45 1701942328150233703 src/Editor-Monaco.cmj 73b687b35b4bde17
23 45 1701942328150233703 src/Editor-Monaco.cmi 73b687b35b4bde17
23 45 1701942328150233703 ../es6_global/src/Editor.bs.js 73b687b35b4bde17
23 45 1701942328150233703 ../js/src/Editor.bs.js 73b687b35b4bde17
Binary file modified demos/monaco/lib/bs/Monaco.cmi
Binary file not shown.
Binary file modified demos/monaco/lib/bs/Monaco.cmt
Binary file not shown.
3 changes: 2 additions & 1 deletion demos/monaco/lib/bs/Monaco.mlmap
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
\�";4:.I`x����k
���#rU�*��*���
Main
Editor
Window
MonacoEditor
Expand Down
5 changes: 4 additions & 1 deletion demos/monaco/lib/bs/build.ninja
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ rule astj
command = /Users/yang/Github/Meta3D/node_modules/rescript/darwin/bsc.exe -w -0-1-2-3-4-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-39-40-41-42-43-44-45-46-47-48-49-50-51-52-53-54-55-56-57-58-59-60-61-62-K -warn-error +5+6 -bs-v 10.1.4 -bs-jsx 3 -bs-no-version-header -bs-super-errors -absname -bs-ast -o $out $i
o src/Main.ast : astj ../../src/Main.res
rule deps
command = /Users/yang/Github/Meta3D/node_modules/rescript/darwin/bsb_helper.exe -hash e38a7ab3e67acc0d6f1ee81b744e4774 -bs-ns Monaco $in
command = /Users/yang/Github/Meta3D/node_modules/rescript/darwin/bsb_helper.exe -hash 5d4346621252757fb3931357f9018c24 -bs-ns Monaco $in
restat = 1
o src/Main.d : deps src/Main.ast
rule mij
Expand All @@ -15,6 +15,9 @@ o src/Main-Monaco.cmj src/Main-Monaco.cmi ../es6_global/src/Main.bs.js ../js/src
o src/Editor.ast : astj ../../src/Editor.res
o src/Editor.d : deps src/Editor.ast
o src/Editor-Monaco.cmj src/Editor-Monaco.cmi ../es6_global/src/Editor.bs.js ../js/src/Editor.bs.js : mij src/Editor.ast
o src/external/Window.ast : astj ../../src/external/Window.res
o src/external/Window.d : deps src/external/Window.ast
o src/external/Window-Monaco.cmj src/external/Window-Monaco.cmi ../es6_global/src/external/Window.bs.js ../js/src/external/Window.bs.js : mij src/external/Window.ast
o src/external/MonacoEditor.ast : astj ../../src/external/MonacoEditor.res
o src/external/MonacoEditor.d : deps src/external/MonacoEditor.ast
o src/external/MonacoEditor-Monaco.cmj src/external/MonacoEditor-Monaco.cmi ../es6_global/src/external/MonacoEditor.bs.js ../js/src/external/MonacoEditor.bs.js : mij src/external/MonacoEditor.ast
Expand Down
6 changes: 5 additions & 1 deletion demos/monaco/lib/bs/install.ninja
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,15 @@ o Editor-Monaco.cmi : cp ../bs/src/Editor-Monaco.cmi
o Editor-Monaco.cmj : cp ../bs/src/Editor-Monaco.cmj
o Editor-Monaco.cmt : cp ../bs/src/Editor-Monaco.cmt
o Editor.res : cp ../../src/Editor.res
o Window-Monaco.cmi : cp ../bs/src/external/Window-Monaco.cmi
o Window-Monaco.cmj : cp ../bs/src/external/Window-Monaco.cmj
o Window-Monaco.cmt : cp ../bs/src/external/Window-Monaco.cmt
o Window.res : cp ../../src/external/Window.res
o MonacoEditor-Monaco.cmi : cp ../bs/src/external/MonacoEditor-Monaco.cmi
o MonacoEditor-Monaco.cmj : cp ../bs/src/external/MonacoEditor-Monaco.cmj
o MonacoEditor-Monaco.cmt : cp ../bs/src/external/MonacoEditor-Monaco.cmt
o MonacoEditor.res : cp ../../src/external/MonacoEditor.res
o Monaco.cmi : cp ../bs/Monaco.cmi
o Monaco.cmj : cp ../bs/Monaco.cmj
o Monaco.cmt : cp ../bs/Monaco.cmt
build install.stamp : touch Main-Monaco.cmi Main-Monaco.cmj Editor-Monaco.cmi Editor-Monaco.cmj MonacoEditor-Monaco.cmi MonacoEditor-Monaco.cmj Monaco.cmi Monaco.cmj
build install.stamp : touch Main-Monaco.cmi Main-Monaco.cmj Editor-Monaco.cmi Editor-Monaco.cmj Window-Monaco.cmi Window-Monaco.cmj MonacoEditor-Monaco.cmi MonacoEditor-Monaco.cmj Monaco.cmi Monaco.cmj
Binary file modified demos/monaco/lib/bs/src/Editor-Monaco.cmi
Binary file not shown.
Binary file modified demos/monaco/lib/bs/src/Editor-Monaco.cmj
Binary file not shown.
Binary file modified demos/monaco/lib/bs/src/Editor-Monaco.cmt
Binary file not shown.
Binary file modified demos/monaco/lib/bs/src/Editor.ast
Binary file not shown.
2 changes: 1 addition & 1 deletion demos/monaco/lib/bs/src/Editor.d
Original file line number Diff line number Diff line change
@@ -1 +1 @@
src/Editor-Monaco.cmj : Monaco.cmi src/external/MonacoEditor-Monaco.cmj src/external/MonacoEditor-Monaco.cmi
src/Editor-Monaco.cmj : Monaco.cmi src/external/MonacoEditor-Monaco.cmj src/external/MonacoEditor-Monaco.cmi src/external/Window-Monaco.cmj src/external/Window-Monaco.cmi
Binary file modified demos/monaco/lib/bs/src/Main-Monaco.cmi
Binary file not shown.
Binary file modified demos/monaco/lib/bs/src/Main-Monaco.cmt
Binary file not shown.
Binary file modified demos/monaco/lib/bs/src/external/MonacoEditor-Monaco.cmt
Binary file not shown.
30 changes: 25 additions & 5 deletions demos/monaco/lib/es6_global/src/Editor.bs.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,21 @@ function onChange(param, newValue, $$event) {
}), __x);
}

function _wrapDTs(dts) {
return "declare module \"meta3d-type\"{\n " + dts + "\n }";
}

function _addMeta3dTypeLib(editor, monaco) {
var __x = window.fetch("static/meta3d-type/src/Index.ts");
var __x$1 = Js_promise.then_((function (param) {
return Promise.resolve(param.text());
}), __x);
return Js_promise.then_((function (dts) {
var dts$1 = _wrapDTs(dts);
return monaco.languages.typescript.typescriptDefaults.addExtraLib(dts$1);
}), __x$1);
}

function editorDidMount(param, editor, monaco) {
var tsProxyRef = param[0];
console.log([
Expand All @@ -33,10 +48,13 @@ function editorDidMount(param, editor, monaco) {
var __x$1 = Js_promise.then_((function (worker) {
return worker(editor.getModel().uri);
}), __x);
return Js_promise.then_((function (proxy) {
tsProxyRef.current = proxy;
return Promise.resolve(undefined);
}), __x$1);
var __x$2 = Js_promise.then_((function (proxy) {
tsProxyRef.current = proxy;
return Promise.resolve(undefined);
}), __x$1);
return Js_promise.then_((function (param) {
return _addMeta3dTypeLib(editor, monaco);
}), __x$2);
}

function editorWillUnmount(editor, monaco) {
Expand All @@ -46,6 +64,8 @@ function editorWillUnmount(editor, monaco) {

var Method = {
onChange: onChange,
_wrapDTs: _wrapDTs,
_addMeta3dTypeLib: _addMeta3dTypeLib,
editorDidMount: editorDidMount,
editorWillUnmount: editorWillUnmount
};
Expand All @@ -62,7 +82,7 @@ function Editor(Props) {
editor
];
return React.createElement(ReactMonacoEditor, {
value: "let a = 1",
value: "import { api } from \"meta3d-type\"\n \nexport let getContribute = (api:api) => {\n return {\n inputName: \"RunStopButtonInput\",\n func: (meta3dState) => {\n let runState = api.action.getActionState(meta3dState, \"Run\")\n\n if (api.nullable.isNullable(runState)) {\n return Promise.resolve(false)\n }\n\n runState = api.nullable.getExn(runState)\n\n return Promise.resolve(runState.isRun)\n }\n }\n}\n\n ",
width: "800",
height: "600",
language: "typescript",
Expand Down
1 change: 1 addition & 0 deletions demos/monaco/lib/es6_global/src/external/Window.bs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
30 changes: 25 additions & 5 deletions demos/monaco/lib/js/src/Editor.bs.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,21 @@ function onChange(param, newValue, $$event) {
}), __x);
}

function _wrapDTs(dts) {
return "declare module \"meta3d-type\"{\n " + dts + "\n }";
}

function _addMeta3dTypeLib(editor, monaco) {
var __x = window.fetch("static/meta3d-type/src/Index.ts");
var __x$1 = Js_promise.then_((function (param) {
return Promise.resolve(param.text());
}), __x);
return Js_promise.then_((function (dts) {
var dts$1 = _wrapDTs(dts);
return monaco.languages.typescript.typescriptDefaults.addExtraLib(dts$1);
}), __x$1);
}

function editorDidMount(param, editor, monaco) {
var tsProxyRef = param[0];
console.log([
Expand All @@ -33,10 +48,13 @@ function editorDidMount(param, editor, monaco) {
var __x$1 = Js_promise.then_((function (worker) {
return worker(editor.getModel().uri);
}), __x);
return Js_promise.then_((function (proxy) {
tsProxyRef.current = proxy;
return Promise.resolve(undefined);
}), __x$1);
var __x$2 = Js_promise.then_((function (proxy) {
tsProxyRef.current = proxy;
return Promise.resolve(undefined);
}), __x$1);
return Js_promise.then_((function (param) {
return _addMeta3dTypeLib(editor, monaco);
}), __x$2);
}

function editorWillUnmount(editor, monaco) {
Expand All @@ -46,6 +64,8 @@ function editorWillUnmount(editor, monaco) {

var Method = {
onChange: onChange,
_wrapDTs: _wrapDTs,
_addMeta3dTypeLib: _addMeta3dTypeLib,
editorDidMount: editorDidMount,
editorWillUnmount: editorWillUnmount
};
Expand All @@ -62,7 +82,7 @@ function Editor(Props) {
editor
];
return React.createElement(ReactMonacoEditor, {
value: "let a = 1",
value: "import { api } from \"meta3d-type\"\n \nexport let getContribute = (api:api) => {\n return {\n inputName: \"RunStopButtonInput\",\n func: (meta3dState) => {\n let runState = api.action.getActionState(meta3dState, \"Run\")\n\n if (api.nullable.isNullable(runState)) {\n return Promise.resolve(false)\n }\n\n runState = api.nullable.getExn(runState)\n\n return Promise.resolve(runState.isRun)\n }\n }\n}\n\n ",
width: "800",
height: "600",
language: "typescript",
Expand Down
1 change: 1 addition & 0 deletions demos/monaco/lib/js/src/external/Window.bs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
Loading

0 comments on commit 793c8ad

Please sign in to comment.