Skip to content

Commit 4b7d04d

Browse files
authored
fix: use dynamic import for assemblyscript (#19)
fix prettier/prettier-vscode#3907
1 parent 6eae4eb commit 4b7d04d

1 file changed

Lines changed: 30 additions & 39 deletions

File tree

src/replace.js

Lines changed: 30 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,41 @@
1-
import assemblyscript from "assemblyscript";
2-
31
export const magic = "MAGIC_ASSEMBLYSCRIPT_PRETTIER_1996";
42
const prefix = "/*" + magic;
53
const postfix = magic + "*/";
6-
const NodeKind = assemblyscript.NodeKind;
74

8-
function visitDecorators(node) {
9-
let list = [];
10-
let _visit = (_node) => {
11-
switch (_node.kind) {
12-
case NodeKind.Source: {
13-
_node.statements.forEach((statement) => {
14-
_visit(statement);
15-
});
16-
break;
5+
export async function preProcess(code) {
6+
const assemblyscript = await import("assemblyscript");
7+
const NodeKind = assemblyscript.NodeKind;
8+
const visitDecorators = (node) => {
9+
let list = [];
10+
let _visit = (_node) => {
11+
switch (_node.kind) {
12+
case NodeKind.Source: {
13+
_node.statements.forEach((statement) => {
14+
_visit(statement);
15+
});
16+
break;
17+
}
18+
case NodeKind.ClassDeclaration:
19+
case NodeKind.InterfaceDeclaration:
20+
case NodeKind.NamespaceDeclaration: {
21+
_node.members.forEach((statement) => {
22+
_visit(statement);
23+
});
24+
break;
25+
}
1726
}
18-
case NodeKind.ClassDeclaration:
19-
case NodeKind.InterfaceDeclaration:
20-
case NodeKind.NamespaceDeclaration: {
21-
_node.members.forEach((statement) => {
22-
_visit(statement);
23-
});
24-
break;
27+
if (_node.decorators) {
28+
list.push(
29+
..._node.decorators.map((decorator) => {
30+
return { start: decorator.range.start, end: decorator.range.end };
31+
})
32+
);
2533
}
26-
}
27-
if (_node.decorators) {
28-
list.push(
29-
..._node.decorators.map((decorator) => {
30-
return {
31-
start: decorator.range.start,
32-
end: decorator.range.end,
33-
};
34-
})
35-
);
36-
}
34+
};
35+
_visit(node);
36+
return list;
3737
};
38-
_visit(node);
39-
return list;
40-
}
4138

42-
/**
43-
*
44-
* @param {string} code
45-
* @returns {string}
46-
*/
47-
export function preProcess(code) {
4839
let parser = new assemblyscript.Parser();
4940
parser.parseFile(code, "pre_process.ts", false);
5041
let source = parser.sources[0];

0 commit comments

Comments
 (0)