motoko 3.0.0-beta3 → 3.0.0-beta4
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 +9 -8
- package/lib/file.d.ts +3 -3
- package/lib/file.d.ts.map +1 -1
- package/lib/file.js +7 -4
- package/lib/file.js.map +1 -1
- package/lib/index.d.ts +13 -7
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +15 -10
- package/lib/index.js.map +1 -1
- package/lib/versions/interpreter.d.ts +13 -7
- package/lib/versions/interpreter.d.ts.map +1 -1
- package/lib/versions/moc.d.ts +13 -7
- package/lib/versions/moc.d.ts.map +1 -1
- package/package.json +1 -1
- package/packages/latest/base.json +1 -1
- package/src/file.ts +7 -4
- package/src/index.ts +30 -16
- package/versions/latest/moc.min.js +1 -1
- package/versions/latest/moc_interpreter.min.js +1 -1
package/src/file.ts
CHANGED
@@ -21,6 +21,9 @@ export const file = (mo: Motoko, path: string) => {
|
|
21
21
|
get path(): string {
|
22
22
|
return path;
|
23
23
|
},
|
24
|
+
set path(newPath) {
|
25
|
+
path = newPath;
|
26
|
+
},
|
24
27
|
// file(subPath) {
|
25
28
|
// subPath = getValidPath(subPath);
|
26
29
|
// return exports.file(`${path}/${subPath}`);
|
@@ -57,14 +60,14 @@ export const file = (mo: Motoko, path: string) => {
|
|
57
60
|
wasm(mode: WasmMode) {
|
58
61
|
return mo.wasm(path, mode);
|
59
62
|
},
|
63
|
+
parseCandid() {
|
64
|
+
return mo.parseCandid(result.read());
|
65
|
+
},
|
60
66
|
parseMotoko() {
|
61
67
|
return mo.parseMotoko(result.read());
|
62
68
|
},
|
63
69
|
parseMotokoTyped() {
|
64
|
-
return mo.parseMotokoTyped(
|
65
|
-
},
|
66
|
-
parseCandid() {
|
67
|
-
return mo.parseCandid(result.read());
|
70
|
+
return mo.parseMotokoTyped([path]);
|
68
71
|
},
|
69
72
|
};
|
70
73
|
return result;
|
package/src/index.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Node, simplifyAST } from './ast';
|
1
|
+
import { Node, simplifyAST, CompilerAST, CompilerNode } from './ast';
|
2
2
|
import { file } from './file';
|
3
3
|
import {
|
4
4
|
fetchPackage,
|
@@ -11,9 +11,9 @@ import { resolveMain, resolveLib } from './utils/resolveEntryPoint';
|
|
11
11
|
|
12
12
|
export type Motoko = ReturnType<typeof wrapMotoko>;
|
13
13
|
|
14
|
-
type Compiler = any; // TODO
|
14
|
+
type Compiler = any; // TODO: generate from `js_of_ocaml`?
|
15
15
|
|
16
|
-
// TODO
|
16
|
+
// TODO: compatibility with the VS Code or Monaco `Diagnostic` type
|
17
17
|
export type Diagnostic = {
|
18
18
|
code?: string | number | { target: any; value: string | number };
|
19
19
|
message: string;
|
@@ -68,6 +68,26 @@ export default function wrapMotoko(compiler: Compiler, version: string) {
|
|
68
68
|
return result.code;
|
69
69
|
};
|
70
70
|
|
71
|
+
// Function signatures for `mo.parseMotokoTyped()`
|
72
|
+
type ParseMotokoTypedResult = { ast: Node; type: Node };
|
73
|
+
function parseMotokoTyped(paths: string): ParseMotokoTypedResult;
|
74
|
+
function parseMotokoTyped(paths: string[]): ParseMotokoTypedResult[];
|
75
|
+
function parseMotokoTyped(
|
76
|
+
paths: string | string[],
|
77
|
+
): ParseMotokoTypedResult | ParseMotokoTypedResult[] {
|
78
|
+
if (typeof paths === 'string') {
|
79
|
+
return mo.parseMotokoTyped([paths])[0];
|
80
|
+
}
|
81
|
+
return invoke('parseMotokoTyped', true, [paths]).map(
|
82
|
+
({ ast, typ }: { ast: CompilerNode; typ: CompilerNode }) => {
|
83
|
+
return {
|
84
|
+
ast: simplifyAST(ast),
|
85
|
+
type: simplifyAST(typ),
|
86
|
+
};
|
87
|
+
},
|
88
|
+
);
|
89
|
+
}
|
90
|
+
|
71
91
|
const mo = {
|
72
92
|
version,
|
73
93
|
compiler,
|
@@ -94,11 +114,11 @@ export default function wrapMotoko(compiler: Compiler, version: string) {
|
|
94
114
|
list(directory: string): string[] {
|
95
115
|
return invoke('readDir', false, [directory]);
|
96
116
|
},
|
97
|
-
async fetchPackage(name:string, info: string | PackageInfo) {
|
98
|
-
if(!info){
|
117
|
+
async fetchPackage(name: string, info: string | PackageInfo) {
|
118
|
+
if (!info) {
|
99
119
|
throw new Error('Please specify both a name and source');
|
100
120
|
}
|
101
|
-
return fetchPackage(name,info);
|
121
|
+
return fetchPackage(name, info);
|
102
122
|
},
|
103
123
|
async installPackages(packages: Record<string, string | PackageInfo>) {
|
104
124
|
return installPackages(mo, packages);
|
@@ -151,20 +171,14 @@ export default function wrapMotoko(compiler: Compiler, version: string) {
|
|
151
171
|
}
|
152
172
|
return invoke('compileWasm', true, [mode, path]);
|
153
173
|
},
|
174
|
+
parseCandid(content: string): object {
|
175
|
+
return invoke('parseCandid', true, [content]);
|
176
|
+
},
|
154
177
|
parseMotoko(content: string): Node {
|
155
178
|
const ast = invoke('parseMotoko', true, [content]);
|
156
179
|
return simplifyAST(ast);
|
157
180
|
},
|
158
|
-
parseMotokoTyped
|
159
|
-
const { ast, typ } = invoke('parseMotokoTyped', true, [content]);
|
160
|
-
return {
|
161
|
-
ast: simplifyAST(ast),
|
162
|
-
type: simplifyAST(typ),
|
163
|
-
};
|
164
|
-
},
|
165
|
-
parseCandid(content: string): object {
|
166
|
-
return invoke('parseCandid', true, [content]);
|
167
|
-
},
|
181
|
+
parseMotokoTyped,
|
168
182
|
resolveMain(directory: string = ''): string | undefined {
|
169
183
|
return resolveMain(mo, directory);
|
170
184
|
},
|