@astrojs/compiler 0.11.0-next.0 → 0.11.3
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/CHANGELOG.md +40 -5
- package/README.md +1 -34
- package/astro.wasm +0 -0
- package/browser/index.d.ts +0 -1
- package/browser/index.js +16 -25
- package/browser/wasm_exec.d.ts +29 -1
- package/browser/wasm_exec.js +249 -192
- package/node/index.d.ts +0 -1
- package/node/index.js +14 -19
- package/node/wasm_exec.d.ts +29 -1
- package/node/wasm_exec.js +270 -207
- package/package.json +2 -7
- package/shared/types.d.ts +0 -12
- package/shared/types.js +1 -1
- package/browser/utils.d.ts +0 -20
- package/browser/utils.js +0 -46
- package/node/utils.d.ts +0 -20
- package/node/utils.js +0 -46
- package/shared/ast.d.ts +0 -71
- package/shared/ast.js +0 -1
- package/utils.d.ts +0 -1
package/package.json
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bugs": "https://github.com/withastro/compiler/issues",
|
|
7
7
|
"homepage": "https://astro.build",
|
|
8
|
-
"version": "0.11.
|
|
8
|
+
"version": "0.11.3",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"build": "tsc -p ."
|
|
11
11
|
},
|
|
12
12
|
"main": "./node/index.js",
|
|
13
|
-
"types": "./
|
|
13
|
+
"types": "./shared/types.d.ts",
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
16
16
|
"url": "https://github.com/withastro/compiler.git"
|
|
@@ -21,11 +21,6 @@
|
|
|
21
21
|
"import": "./node/index.js",
|
|
22
22
|
"default": "./browser/index.js"
|
|
23
23
|
},
|
|
24
|
-
"./utils": {
|
|
25
|
-
"browser": "./browser/utils.js",
|
|
26
|
-
"import": "./node/utils.js",
|
|
27
|
-
"default": "./browser/utils.js"
|
|
28
|
-
},
|
|
29
24
|
"./astro.wasm": "./astro.wasm"
|
|
30
25
|
},
|
|
31
26
|
"dependencies": {
|
package/shared/types.d.ts
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
import { RootNode } from './ast';
|
|
2
|
-
export * from './ast';
|
|
3
1
|
export interface PreprocessorResult {
|
|
4
2
|
code: string;
|
|
5
3
|
map?: string;
|
|
6
4
|
}
|
|
7
|
-
export interface ParseOptions {
|
|
8
|
-
position?: boolean;
|
|
9
|
-
}
|
|
10
5
|
export interface TransformOptions {
|
|
11
6
|
internalURL?: string;
|
|
12
7
|
site?: string;
|
|
13
8
|
sourcefile?: string;
|
|
14
9
|
pathname?: string;
|
|
15
10
|
sourcemap?: boolean | 'inline' | 'external' | 'both';
|
|
16
|
-
/**
|
|
17
|
-
* @deprecated "as" has been removed and no longer has any effect!
|
|
18
|
-
*/
|
|
19
11
|
as?: 'document' | 'fragment';
|
|
20
12
|
projectRoot?: string;
|
|
21
13
|
preprocessStyle?: (content: string, attrs: Record<string, string>) => Promise<PreprocessorResult>;
|
|
@@ -36,11 +28,7 @@ export interface TransformResult {
|
|
|
36
28
|
code: string;
|
|
37
29
|
map: string;
|
|
38
30
|
}
|
|
39
|
-
export interface ParseResult {
|
|
40
|
-
ast: RootNode;
|
|
41
|
-
}
|
|
42
31
|
export declare function transform(input: string, options?: TransformOptions): Promise<TransformResult>;
|
|
43
|
-
export declare function parse(input: string, options?: ParseOptions): Promise<ParseResult>;
|
|
44
32
|
export declare function initialize(options: InitializeOptions): Promise<void>;
|
|
45
33
|
export interface InitializeOptions {
|
|
46
34
|
wasmURL?: string;
|
package/shared/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export {};
|
package/browser/utils.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Node, ParentNode, RootNode, ElementNode, CustomElementNode, ComponentNode, LiteralNode, ExpressionNode, TextNode, CommentNode, DoctypeNode, FrontmatterNode } from '../shared/ast';
|
|
2
|
-
export interface Visitor {
|
|
3
|
-
(node: Node, parent?: ParentNode, index?: number): void | Promise<void>;
|
|
4
|
-
}
|
|
5
|
-
export declare const is: {
|
|
6
|
-
parent(node: Node): node is ParentNode;
|
|
7
|
-
literal(node: Node): node is LiteralNode;
|
|
8
|
-
tag(node: Node): node is ElementNode | ComponentNode | CustomElementNode;
|
|
9
|
-
whitespace(node: Node): node is TextNode;
|
|
10
|
-
root: (node: Node) => node is RootNode;
|
|
11
|
-
element: (node: Node) => node is ElementNode;
|
|
12
|
-
customElement: (node: Node) => node is CustomElementNode;
|
|
13
|
-
component: (node: Node) => node is ComponentNode;
|
|
14
|
-
expression: (node: Node) => node is ExpressionNode;
|
|
15
|
-
text: (node: Node) => node is TextNode;
|
|
16
|
-
doctype: (node: Node) => node is DoctypeNode;
|
|
17
|
-
comment: (node: Node) => node is CommentNode;
|
|
18
|
-
frontmatter: (node: Node) => node is FrontmatterNode;
|
|
19
|
-
};
|
|
20
|
-
export declare function walk(node: ParentNode, callback: Visitor): void;
|
package/browser/utils.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
function guard(type) {
|
|
2
|
-
return (node) => node.type === type;
|
|
3
|
-
}
|
|
4
|
-
export const is = {
|
|
5
|
-
parent(node) {
|
|
6
|
-
return Array.isArray(node.children);
|
|
7
|
-
},
|
|
8
|
-
literal(node) {
|
|
9
|
-
return typeof node.value === 'string';
|
|
10
|
-
},
|
|
11
|
-
tag(node) {
|
|
12
|
-
return node.type === 'element' || node.type === 'custom-element' || node.type === 'component';
|
|
13
|
-
},
|
|
14
|
-
whitespace(node) {
|
|
15
|
-
return node.type === 'text' && node.value.trim().length === 0;
|
|
16
|
-
},
|
|
17
|
-
root: guard('root'),
|
|
18
|
-
element: guard('element'),
|
|
19
|
-
customElement: guard('custom-element'),
|
|
20
|
-
component: guard('component'),
|
|
21
|
-
expression: guard('expression'),
|
|
22
|
-
text: guard('text'),
|
|
23
|
-
doctype: guard('doctype'),
|
|
24
|
-
comment: guard('comment'),
|
|
25
|
-
frontmatter: guard('frontmatter'),
|
|
26
|
-
};
|
|
27
|
-
class Walker {
|
|
28
|
-
constructor(callback) {
|
|
29
|
-
this.callback = callback;
|
|
30
|
-
}
|
|
31
|
-
async visit(node, parent, index) {
|
|
32
|
-
await this.callback(node, parent, index);
|
|
33
|
-
if (is.parent(node)) {
|
|
34
|
-
let promises = [];
|
|
35
|
-
for (let i = 0; i < node.children.length; i++) {
|
|
36
|
-
const child = node.children[i];
|
|
37
|
-
promises.push(this.callback(child, node, i));
|
|
38
|
-
}
|
|
39
|
-
await Promise.all(promises);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export function walk(node, callback) {
|
|
44
|
-
const walker = new Walker(callback);
|
|
45
|
-
walker.visit(node);
|
|
46
|
-
}
|
package/node/utils.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Node, ParentNode, RootNode, ElementNode, CustomElementNode, ComponentNode, LiteralNode, ExpressionNode, TextNode, CommentNode, DoctypeNode, FrontmatterNode } from '../shared/ast';
|
|
2
|
-
export interface Visitor {
|
|
3
|
-
(node: Node, parent?: ParentNode, index?: number): void | Promise<void>;
|
|
4
|
-
}
|
|
5
|
-
export declare const is: {
|
|
6
|
-
parent(node: Node): node is ParentNode;
|
|
7
|
-
literal(node: Node): node is LiteralNode;
|
|
8
|
-
tag(node: Node): node is ElementNode | ComponentNode | CustomElementNode;
|
|
9
|
-
whitespace(node: Node): node is TextNode;
|
|
10
|
-
root: (node: Node) => node is RootNode;
|
|
11
|
-
element: (node: Node) => node is ElementNode;
|
|
12
|
-
customElement: (node: Node) => node is CustomElementNode;
|
|
13
|
-
component: (node: Node) => node is ComponentNode;
|
|
14
|
-
expression: (node: Node) => node is ExpressionNode;
|
|
15
|
-
text: (node: Node) => node is TextNode;
|
|
16
|
-
doctype: (node: Node) => node is DoctypeNode;
|
|
17
|
-
comment: (node: Node) => node is CommentNode;
|
|
18
|
-
frontmatter: (node: Node) => node is FrontmatterNode;
|
|
19
|
-
};
|
|
20
|
-
export declare function walk(node: ParentNode, callback: Visitor): void;
|
package/node/utils.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
function guard(type) {
|
|
2
|
-
return (node) => node.type === type;
|
|
3
|
-
}
|
|
4
|
-
export const is = {
|
|
5
|
-
parent(node) {
|
|
6
|
-
return Array.isArray(node.children);
|
|
7
|
-
},
|
|
8
|
-
literal(node) {
|
|
9
|
-
return typeof node.value === 'string';
|
|
10
|
-
},
|
|
11
|
-
tag(node) {
|
|
12
|
-
return node.type === 'element' || node.type === 'custom-element' || node.type === 'component';
|
|
13
|
-
},
|
|
14
|
-
whitespace(node) {
|
|
15
|
-
return node.type === 'text' && node.value.trim().length === 0;
|
|
16
|
-
},
|
|
17
|
-
root: guard('root'),
|
|
18
|
-
element: guard('element'),
|
|
19
|
-
customElement: guard('custom-element'),
|
|
20
|
-
component: guard('component'),
|
|
21
|
-
expression: guard('expression'),
|
|
22
|
-
text: guard('text'),
|
|
23
|
-
doctype: guard('doctype'),
|
|
24
|
-
comment: guard('comment'),
|
|
25
|
-
frontmatter: guard('frontmatter'),
|
|
26
|
-
};
|
|
27
|
-
class Walker {
|
|
28
|
-
constructor(callback) {
|
|
29
|
-
this.callback = callback;
|
|
30
|
-
}
|
|
31
|
-
async visit(node, parent, index) {
|
|
32
|
-
await this.callback(node, parent, index);
|
|
33
|
-
if (is.parent(node)) {
|
|
34
|
-
let promises = [];
|
|
35
|
-
for (let i = 0; i < node.children.length; i++) {
|
|
36
|
-
const child = node.children[i];
|
|
37
|
-
promises.push(this.callback(child, node, i));
|
|
38
|
-
}
|
|
39
|
-
await Promise.all(promises);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export function walk(node, callback) {
|
|
44
|
-
const walker = new Walker(callback);
|
|
45
|
-
walker.visit(node);
|
|
46
|
-
}
|
package/shared/ast.d.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
export declare type ParentNode = RootNode | ElementNode | ComponentNode | CustomElementNode | ExpressionNode;
|
|
2
|
-
export declare type Node = RootNode | ElementNode | ComponentNode | CustomElementNode | ExpressionNode | TextNode | FrontmatterNode | DoctypeNode | CommentNode;
|
|
3
|
-
export interface Position {
|
|
4
|
-
start: Point;
|
|
5
|
-
end?: Point;
|
|
6
|
-
}
|
|
7
|
-
export interface Point {
|
|
8
|
-
/** 1-based line number */
|
|
9
|
-
line: number;
|
|
10
|
-
/** 1-based column number, per-line */
|
|
11
|
-
column: number;
|
|
12
|
-
/** 0-based byte offset */
|
|
13
|
-
offset: number;
|
|
14
|
-
}
|
|
15
|
-
export interface BaseNode {
|
|
16
|
-
type: string;
|
|
17
|
-
position?: Position;
|
|
18
|
-
}
|
|
19
|
-
export interface ParentLikeNode extends BaseNode {
|
|
20
|
-
type: 'element' | 'component' | 'custom-element' | 'expression' | 'root';
|
|
21
|
-
children: Node[];
|
|
22
|
-
}
|
|
23
|
-
export interface LiteralNode extends BaseNode {
|
|
24
|
-
type: 'text' | 'doctype' | 'comment' | 'frontmatter';
|
|
25
|
-
value: string;
|
|
26
|
-
}
|
|
27
|
-
export interface RootNode extends ParentLikeNode {
|
|
28
|
-
type: 'root';
|
|
29
|
-
}
|
|
30
|
-
export interface AttributeNode extends BaseNode {
|
|
31
|
-
type: 'attribute';
|
|
32
|
-
kind: 'quoted' | 'empty' | 'expression' | 'spread' | 'shorthand' | 'template-literal';
|
|
33
|
-
name: string;
|
|
34
|
-
value: string;
|
|
35
|
-
}
|
|
36
|
-
export interface DirectiveNode extends Omit<AttributeNode, 'type'> {
|
|
37
|
-
type: 'directive';
|
|
38
|
-
}
|
|
39
|
-
export interface TextNode extends LiteralNode {
|
|
40
|
-
type: 'text';
|
|
41
|
-
}
|
|
42
|
-
export interface ElementNode extends ParentLikeNode {
|
|
43
|
-
type: 'element';
|
|
44
|
-
name: string;
|
|
45
|
-
attributes: AttributeNode[];
|
|
46
|
-
directives: DirectiveNode[];
|
|
47
|
-
}
|
|
48
|
-
export interface ComponentNode extends ParentLikeNode {
|
|
49
|
-
type: 'component';
|
|
50
|
-
name: string;
|
|
51
|
-
attributes: AttributeNode[];
|
|
52
|
-
directives: DirectiveNode[];
|
|
53
|
-
}
|
|
54
|
-
export interface CustomElementNode extends ParentLikeNode {
|
|
55
|
-
type: 'custom-element';
|
|
56
|
-
name: string;
|
|
57
|
-
attributes: AttributeNode[];
|
|
58
|
-
directives: DirectiveNode[];
|
|
59
|
-
}
|
|
60
|
-
export interface DoctypeNode extends LiteralNode {
|
|
61
|
-
type: 'doctype';
|
|
62
|
-
}
|
|
63
|
-
export interface CommentNode extends LiteralNode {
|
|
64
|
-
type: 'comment';
|
|
65
|
-
}
|
|
66
|
-
export interface FrontmatterNode extends LiteralNode {
|
|
67
|
-
type: 'frontmatter';
|
|
68
|
-
}
|
|
69
|
-
export interface ExpressionNode extends ParentLikeNode {
|
|
70
|
-
type: 'expression';
|
|
71
|
-
}
|
package/shared/ast.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/utils.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './node/utils';
|