@fluixi/compiler 1.0.0-alpha.83 → 1.0.0-alpha.85
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/dist/analyze/expr-shape.cjs +62 -1
- package/dist/analyze/expr-shape.d.cts +14 -0
- package/dist/analyze/expr-shape.d.ts +2 -2
- package/dist/analyze/expr-shape.js +1 -1
- package/dist/analyze/expr-shape.mjs +41 -1
- package/dist/analyze/intrinsics.cjs +80 -1
- package/dist/analyze/intrinsics.d.cts +66 -0
- package/dist/analyze/intrinsics.d.ts +7 -7
- package/dist/analyze/intrinsics.d.ts.map +1 -1
- package/dist/analyze/intrinsics.js +3 -3
- package/dist/analyze/intrinsics.mjs +59 -1
- package/dist/analyze/paren.cjs +134 -0
- package/dist/analyze/paren.d.cts +23 -0
- package/dist/analyze/paren.d.ts +24 -0
- package/dist/analyze/paren.d.ts.map +1 -0
- package/dist/analyze/paren.js +168 -0
- package/dist/analyze/paren.mjs +113 -0
- package/dist/analyze/props-destructure.cjs +226 -1
- package/dist/analyze/props-destructure.d.cts +83 -0
- package/dist/analyze/props-destructure.d.ts +3 -3
- package/dist/analyze/props-destructure.d.ts.map +1 -1
- package/dist/analyze/props-destructure.js +4 -4
- package/dist/analyze/props-destructure.mjs +205 -1
- package/dist/analyze/reactive-bindings.cjs +190 -1
- package/dist/analyze/reactive-bindings.d.cts +42 -0
- package/dist/analyze/reactive-bindings.d.ts +1 -1
- package/dist/analyze/reactive-bindings.js +2 -2
- package/dist/analyze/reactive-bindings.mjs +167 -1
- package/dist/analyze/reactive-expr.cjs +38 -1
- package/dist/analyze/reactive-expr.d.cts +38 -0
- package/dist/analyze/reactive-expr.d.ts +4 -4
- package/dist/analyze/reactive-expr.d.ts.map +1 -1
- package/dist/analyze/reactive-expr.js +2 -2
- package/dist/analyze/reactive-expr.mjs +17 -1
- package/dist/analyze/static-graph.cjs +811 -1
- package/dist/analyze/static-graph.d.cts +102 -0
- package/dist/analyze/static-graph.d.ts +1 -1
- package/dist/analyze/static-graph.d.ts.map +1 -1
- package/dist/analyze/static-graph.js +11 -11
- package/dist/analyze/static-graph.mjs +793 -1
- package/dist/babel-TGY76XJ7.mjs +636 -0
- package/dist/chunk-4PLHS2FP.mjs +158 -0
- package/dist/chunk-6DB5FXS4.mjs +1718 -0
- package/dist/chunk-F74GFKSL.mjs +16 -0
- package/dist/chunk-G6QC2WRJ.mjs +11 -0
- package/dist/chunk-RUDJDZAA.mjs +1078 -0
- package/dist/codegen/backend.cjs +18 -1
- package/dist/codegen/backend.d.cts +35 -0
- package/dist/codegen/backends/imperative.cjs +542 -1
- package/dist/codegen/backends/imperative.d.cts +11 -0
- package/dist/codegen/backends/imperative.d.ts +1 -1
- package/dist/codegen/backends/imperative.d.ts.map +1 -1
- package/dist/codegen/backends/imperative.js +24 -20
- package/dist/codegen/backends/imperative.mjs +519 -1
- package/dist/codegen/contract.cjs +52 -1
- package/dist/codegen/contract.d.cts +24 -0
- package/dist/codegen/contract.d.ts +2 -2
- package/dist/codegen/contract.js +2 -2
- package/dist/codegen/contract.mjs +31 -1
- package/dist/codegen/partial-template.cjs +176 -1
- package/dist/codegen/partial-template.d.cts +61 -0
- package/dist/codegen/partial-template.d.ts +4 -4
- package/dist/codegen/partial-template.js +0 -0
- package/dist/codegen/partial-template.mjs +153 -1
- package/dist/codegen/serialize-static.cjs +125 -1
- package/dist/codegen/serialize-static.d.cts +38 -0
- package/dist/codegen/serialize-static.d.ts +3 -3
- package/dist/codegen/serialize-static.js +6 -6
- package/dist/codegen/serialize-static.mjs +104 -1
- package/dist/frontend/babel/build-ir-lit.cjs +1509 -1
- package/dist/frontend/babel/build-ir-lit.d.cts +26 -0
- package/dist/frontend/babel/build-ir-lit.d.ts +2 -2
- package/dist/frontend/babel/build-ir-lit.mjs +1478 -1
- package/dist/frontend/babel/build-ir.cjs +1524 -1
- package/dist/frontend/babel/build-ir.d.cts +35 -0
- package/dist/frontend/babel/build-ir.d.ts +2 -2
- package/dist/frontend/babel/build-ir.js +2 -2
- package/dist/frontend/babel/build-ir.mjs +1495 -1
- package/dist/frontend/babel/index.cjs +2186 -1
- package/dist/frontend/babel/index.d.cts +33 -0
- package/dist/frontend/babel/index.d.ts +1 -1
- package/dist/frontend/babel/index.js +1 -1
- package/dist/frontend/babel/index.mjs +2156 -1
- package/dist/frontend/babel/lower-template.cjs +1507 -1
- package/dist/frontend/babel/lower-template.d.cts +23 -0
- package/dist/frontend/babel/lower-template.d.ts +1 -1
- package/dist/frontend/babel/lower-template.js +2 -2
- package/dist/frontend/babel/lower-template.mjs +1478 -1
- package/dist/frontend/babel/plugin.cjs +2132 -1
- package/dist/frontend/babel/plugin.d.cts +95 -0
- package/dist/frontend/babel/plugin.d.ts +5 -5
- package/dist/frontend/babel/plugin.d.ts.map +1 -1
- package/dist/frontend/babel/plugin.js +14 -14
- package/dist/frontend/babel/plugin.mjs +2103 -1
- package/dist/frontend/babel/server-functions.cjs +110 -1
- package/dist/frontend/babel/server-functions.d.cts +10 -0
- package/dist/frontend/babel/server-functions.mjs +89 -1
- package/dist/frontend/babel/types.cjs +18 -1
- package/dist/frontend/babel/types.d.cts +33 -0
- package/dist/frontend/types.cjs +18 -1
- package/dist/frontend/types.d.cts +25 -0
- package/dist/frontend/vocabulary.cjs +98 -0
- package/dist/frontend/vocabulary.d.cts +79 -0
- package/dist/frontend/vocabulary.d.ts +80 -0
- package/dist/frontend/vocabulary.d.ts.map +1 -0
- package/dist/frontend/vocabulary.js +124 -0
- package/dist/frontend/vocabulary.mjs +77 -0
- package/dist/index.cjs +1595 -14
- package/dist/index.d.cts +27 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -4
- package/dist/index.mjs +1575 -14
- package/dist/integrations.cjs +4312 -26
- package/dist/integrations.d.cts +215 -0
- package/dist/integrations.d.ts +9 -9
- package/dist/integrations.d.ts.map +1 -1
- package/dist/integrations.js +29 -8
- package/dist/integrations.mjs +536 -18
- package/dist/ir/nodes.cjs +18 -1
- package/dist/ir/nodes.d.cts +168 -0
- package/dist/ir/nodes.d.ts +6 -6
- package/dist/lower/compile-template.cjs +1356 -1
- package/dist/lower/compile-template.d.cts +69 -0
- package/dist/lower/compile-template.d.ts +3 -3
- package/dist/lower/compile-template.js +1 -1
- package/dist/lower/compile-template.mjs +1336 -1
- package/dist/lower/jsx.cjs +529 -1
- package/dist/lower/jsx.d.cts +25 -0
- package/dist/lower/jsx.d.ts +1 -1
- package/dist/lower/jsx.d.ts.map +1 -1
- package/dist/lower/jsx.js +6 -5
- package/dist/lower/jsx.mjs +506 -1
- package/dist/lower/template.cjs +1061 -1
- package/dist/lower/template.d.cts +53 -0
- package/dist/lower/template.d.ts +3 -3
- package/dist/lower/template.d.ts.map +1 -1
- package/dist/lower/template.js +12 -11
- package/dist/lower/template.mjs +1042 -1
- package/dist/lower/text.cjs +42 -1
- package/dist/lower/text.d.cts +10 -0
- package/dist/lower/text.d.ts +2 -2
- package/dist/lower/text.d.ts.map +1 -1
- package/dist/lower/text.js +2 -2
- package/dist/lower/text.mjs +21 -1
- package/dist/optimize/analyze-static.cjs +112 -1
- package/dist/optimize/analyze-static.d.cts +39 -0
- package/dist/optimize/analyze-static.d.ts +2 -2
- package/dist/optimize/analyze-static.js +2 -2
- package/dist/optimize/analyze-static.mjs +91 -1
- package/dist/optimize/collapse-strategies.cjs +90 -1
- package/dist/optimize/collapse-strategies.d.cts +30 -0
- package/dist/optimize/collapse-strategies.d.ts +3 -3
- package/dist/optimize/collapse-strategies.mjs +67 -1
- package/dist/options.cjs +33 -1
- package/dist/options.d.cts +39 -0
- package/dist/options.d.ts +2 -2
- package/dist/options.mjs +12 -1
- package/dist/resolve/builtins.cjs +73 -1
- package/dist/resolve/builtins.d.cts +68 -0
- package/dist/resolve/builtins.d.ts +8 -8
- package/dist/resolve/builtins.d.ts.map +1 -1
- package/dist/resolve/builtins.js +4 -4
- package/dist/resolve/builtins.mjs +53 -1
- package/dist/resolve/component-globals.cjs +234 -14
- package/dist/resolve/component-globals.d.cts +80 -0
- package/dist/resolve/component-globals.d.ts +5 -5
- package/dist/resolve/component-globals.js +10 -10
- package/dist/resolve/component-globals.mjs +211 -14
- package/dist/resolve/component-resolver.cjs +80 -1
- package/dist/resolve/component-resolver.d.cts +68 -0
- package/dist/resolve/component-resolver.d.ts +3 -3
- package/dist/resolve/component-resolver.d.ts.map +1 -1
- package/dist/resolve/component-resolver.js +3 -3
- package/dist/resolve/component-resolver.mjs +59 -1
- package/dist/resolve/load-directive.cjs +93 -1
- package/dist/resolve/load-directive.d.cts +53 -0
- package/dist/resolve/load-directive.d.ts +5 -5
- package/dist/resolve/load-directive.js +6 -6
- package/dist/resolve/load-directive.mjs +72 -1
- package/dist/resolve/resolve-ir.cjs +108 -1
- package/dist/resolve/resolve-ir.d.cts +53 -0
- package/dist/resolve/resolve-ir.d.ts +6 -6
- package/dist/resolve/resolve-ir.d.ts.map +1 -1
- package/dist/resolve/resolve-ir.js +1 -1
- package/dist/resolve/resolve-ir.mjs +85 -1
- package/dist/resolve/write-globals.cjs +319 -14
- package/dist/resolve/write-globals.d.cts +30 -0
- package/dist/resolve/write-globals.js +2 -2
- package/dist/resolve/write-globals.mjs +298 -14
- package/dist/server-fns-ZYWQTSZU.mjs +78 -0
- package/dist/server-functions-PCERFA7A.mjs +82 -0
- package/dist/transform/bindings.cjs +71 -1
- package/dist/transform/bindings.d.cts +16 -0
- package/dist/transform/bindings.d.ts +1 -1
- package/dist/transform/bindings.js +1 -1
- package/dist/transform/bindings.mjs +50 -1
- package/dist/transform/index.cjs +2732 -8
- package/dist/transform/index.d.cts +15 -0
- package/dist/transform/index.mjs +3773 -17
- package/dist/transform/intrinsics.cjs +216 -3
- package/dist/transform/intrinsics.d.cts +21 -0
- package/dist/transform/intrinsics.js +1 -1
- package/dist/transform/intrinsics.mjs +193 -3
- package/dist/transform/props.cjs +441 -3
- package/dist/transform/props.d.cts +45 -0
- package/dist/transform/props.d.ts +1 -1
- package/dist/transform/props.d.ts.map +1 -1
- package/dist/transform/props.js +4 -4
- package/dist/transform/props.mjs +1482 -12
- package/dist/transform/server-fn-id.cjs +35 -1
- package/dist/transform/server-fn-id.d.cts +9 -0
- package/dist/transform/server-fn-id.d.ts +1 -1
- package/dist/transform/server-fn-id.js +2 -2
- package/dist/transform/server-fn-id.mjs +14 -1
- package/dist/transform/server-fns.cjs +114 -2
- package/dist/transform/server-fns.d.cts +12 -0
- package/dist/transform/server-fns.js +3 -3
- package/dist/transform/server-fns.mjs +1155 -11
- package/dist/transform/source-locations.cjs +330 -1
- package/dist/transform/source-locations.d.cts +43 -0
- package/dist/transform/source-locations.d.ts +1 -1
- package/dist/transform/source-locations.js +5 -5
- package/dist/transform/source-locations.mjs +307 -1
- package/dist/transform/templates.cjs +2701 -7
- package/dist/transform/templates.d.cts +69 -0
- package/dist/transform/templates.d.ts +2 -2
- package/dist/transform/templates.d.ts.map +1 -1
- package/dist/transform/templates.js +7 -7
- package/dist/transform/templates.mjs +3743 -16
- package/dist/transform-RWDTQUF5.mjs +893 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +6 -5
- package/dist/babel-VXKH6MRQ.mjs +0 -1
- package/dist/chunk-3SAEGOMQ.mjs +0 -1
- package/dist/chunk-5KMMN5QP.mjs +0 -1
- package/dist/chunk-IBRM4W7I.mjs +0 -10
- package/dist/chunk-OHHZCYIQ.mjs +0 -1
- package/dist/chunk-YKZ54NVE.mjs +0 -1
- package/dist/server-fns-6QM243HC.mjs +0 -2
- package/dist/server-functions-E3LKCZ4R.mjs +0 -1
- package/dist/transform-C4ZXRVGP.mjs +0 -8
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import MagicString from 'magic-string';
|
|
2
|
+
import { type CompileTemplateOptions } from '../lower/compile-template.cjs';
|
|
3
|
+
import type { IRLoadStrategy } from '../ir/nodes.cjs';
|
|
4
|
+
import { type PropsDiagnostic } from './props.cjs';
|
|
5
|
+
import { type IntrinsicDiagnostic } from './intrinsics.cjs';
|
|
6
|
+
export interface TransformOptions extends CompileTemplateOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Which authoring syntaxes to compile. Both lower to the same IR, so this is
|
|
9
|
+
* about which source forms are touched, not about output.
|
|
10
|
+
* @default 'both'
|
|
11
|
+
*/
|
|
12
|
+
format?: 'jsx' | 'lit' | 'both';
|
|
13
|
+
/** Tag marking a template for compilation. @default 'html' */
|
|
14
|
+
litTag?: string;
|
|
15
|
+
/** Module the emitted runtime symbols are imported from. @default '@fluixi/dom' */
|
|
16
|
+
runtimeModule?: string;
|
|
17
|
+
/** Where reactive primitives come from. @default '@fluixi/reactive/signal' */
|
|
18
|
+
reactiveModule?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Rewrite a component's destructured props into property reads, so
|
|
21
|
+
* `function Card({ title })` keeps updating instead of reading `title` once.
|
|
22
|
+
* The edits go into the same string as the template edits, so the map still points
|
|
23
|
+
* at what the author wrote.
|
|
24
|
+
* @default true
|
|
25
|
+
*/
|
|
26
|
+
propsDestructure?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Record where each reactive primitive was created, so the devtools graph can say where a
|
|
29
|
+
* node comes from. Development tooling: leave it off for production, which then carries
|
|
30
|
+
* none of it.
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
sourceLocations?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Trim this prefix off the file name a source mark records, so a location reads
|
|
36
|
+
* `src/app.tsx:5:16` rather than an absolute path that means nothing to whoever opens it.
|
|
37
|
+
*/
|
|
38
|
+
sourceRoot?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Compile the `$` reactive intrinsics: `$signal`, `$memo`, `$effect`, `$store`, into
|
|
41
|
+
* the runtime calls they stand for, importing what they need.
|
|
42
|
+
* @default true
|
|
43
|
+
*/
|
|
44
|
+
intrinsics?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface UnresolvedDiagnostic {
|
|
47
|
+
/** The tag nothing supplies. */
|
|
48
|
+
name: string;
|
|
49
|
+
message: string;
|
|
50
|
+
}
|
|
51
|
+
export interface LoadDiagnostic {
|
|
52
|
+
/** The component the directive was written on. */
|
|
53
|
+
name: string;
|
|
54
|
+
strategy: IRLoadStrategy;
|
|
55
|
+
message: string;
|
|
56
|
+
}
|
|
57
|
+
export interface TransformResult {
|
|
58
|
+
code: string;
|
|
59
|
+
map: ReturnType<MagicString['generateMap']>;
|
|
60
|
+
/** Props patterns the rewrite refused, when `propsDestructure` is on. */
|
|
61
|
+
propsDiagnostics?: PropsDiagnostic[];
|
|
62
|
+
/** `$` names the module bound itself, so the intrinsic did not fire. */
|
|
63
|
+
intrinsicDiagnostics?: IntrinsicDiagnostic[];
|
|
64
|
+
/** `load:` directives that could not take effect, and why. */
|
|
65
|
+
loadDiagnostics?: LoadDiagnostic[];
|
|
66
|
+
/** Capitalised tags nothing supplies: they compile to an undefined reference. */
|
|
67
|
+
unresolvedDiagnostics?: UnresolvedDiagnostic[];
|
|
68
|
+
}
|
|
69
|
+
export declare function transformTemplates(code: string, id: string, options?: TransformOptions): TransformResult | null;
|
|
@@ -37,7 +37,7 @@ export interface TransformOptions extends CompileTemplateOptions {
|
|
|
37
37
|
*/
|
|
38
38
|
sourceRoot?: string;
|
|
39
39
|
/**
|
|
40
|
-
* Compile the `$` reactive intrinsics
|
|
40
|
+
* Compile the `$` reactive intrinsics: `$signal`, `$memo`, `$effect`, `$store`, into
|
|
41
41
|
* the runtime calls they stand for, importing what they need.
|
|
42
42
|
* @default true
|
|
43
43
|
*/
|
|
@@ -63,7 +63,7 @@ export interface TransformResult {
|
|
|
63
63
|
intrinsicDiagnostics?: IntrinsicDiagnostic[];
|
|
64
64
|
/** `load:` directives that could not take effect, and why. */
|
|
65
65
|
loadDiagnostics?: LoadDiagnostic[];
|
|
66
|
-
/** Capitalised tags nothing supplies
|
|
66
|
+
/** Capitalised tags nothing supplies: they compile to an undefined reference. */
|
|
67
67
|
unresolvedDiagnostics?: UnresolvedDiagnostic[];
|
|
68
68
|
}
|
|
69
69
|
export declare function transformTemplates(code: string, id: string, options?: TransformOptions): TransformResult | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/transform/templates.ts"],"names":[],"mappings":"AASA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG1F,OAAO,KAAK,EAAqB,cAAc,EAAU,MAAM,gBAAgB,CAAC;AAWhF,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAA2C,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAoBpG,MAAM,WAAW,gBAAiB,SAAQ,sBAAsB;IAC9D;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAChC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5C,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7C,8DAA8D;IAC9D,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/transform/templates.ts"],"names":[],"mappings":"AASA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG1F,OAAO,KAAK,EAAqB,cAAc,EAAU,MAAM,gBAAgB,CAAC;AAWhF,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAA2C,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAoBpG,MAAM,WAAW,gBAAiB,SAAQ,sBAAsB;IAC9D;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAChC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5C,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7C,8DAA8D;IAC9D,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAChD;AAwTD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,gBAAqB,GAC7B,eAAe,GAAG,IAAI,CAiNxB"}
|
|
@@ -25,7 +25,7 @@ import { collectSourceEdits, mayHaveReactiveCall } from './source-locations.js';
|
|
|
25
25
|
import { mayHaveIntrinsic } from '../analyze/intrinsics.js';
|
|
26
26
|
import { declaredNames } from '../analyze/reactive-bindings.js';
|
|
27
27
|
import { DOM_CONTROL_FLOW, CORE_CONTROL_FLOW, ROUTER_COMPONENTS } from '../resolve/builtins.js';
|
|
28
|
-
// Which builtin comes from which module is published by resolve/builtins.ts
|
|
28
|
+
// Which builtin comes from which module is published by resolve/builtins.ts ,
|
|
29
29
|
// the same lists the resolve pass and the TS plugin read. Restating them here is
|
|
30
30
|
// how `Await` ended up imported from the dom runtime, which does not export it.
|
|
31
31
|
const CONTROL_FLOW = new Set(DOM_CONTROL_FLOW);
|
|
@@ -56,7 +56,7 @@ const isJsx = (node) => node.type === 'JSXElement' || node.type === 'JSXFragment
|
|
|
56
56
|
/**
|
|
57
57
|
* A JSX node the transform compiles on its own.
|
|
58
58
|
*
|
|
59
|
-
* A direct child
|
|
59
|
+
* A direct child: `<li>` in `<ul><li/></ul>`: is not one: the builder recurses
|
|
60
60
|
* into it, and compiling it separately would splice its output into the middle of
|
|
61
61
|
* its parent's. JSX reached through an expression or an attribute value *is* one,
|
|
62
62
|
* because the builder asks for that expression as source text and needs it
|
|
@@ -88,7 +88,7 @@ function outermost(list) {
|
|
|
88
88
|
* Apply edits to a slice of the source.
|
|
89
89
|
*
|
|
90
90
|
* Only the outermost ones: a contained edit was already folded into its
|
|
91
|
-
* container's emitted code, and applying both would splice it twice
|
|
91
|
+
* container's emitted code, and applying both would splice it twice, the second
|
|
92
92
|
* write landing at an offset the first has already moved.
|
|
93
93
|
*/
|
|
94
94
|
function slice(code, start, end, edits) {
|
|
@@ -131,7 +131,7 @@ function bindHole(code, expr, edits, keepPosition = false) {
|
|
|
131
131
|
*
|
|
132
132
|
* Hoisted names deliberately do not use the backend's `_tmpl$N` namespace. Roots
|
|
133
133
|
* are emitted innermost first and spliced into their parent, so by the time the
|
|
134
|
-
* outer one is renamed its code already contains hoisted names
|
|
134
|
+
* outer one is renamed its code already contains hoisted names, and with a
|
|
135
135
|
* shared prefix the rename rewrites those too, pointing two templates at one
|
|
136
136
|
* string. A separate prefix makes the two impossible to confuse.
|
|
137
137
|
*/
|
|
@@ -186,7 +186,7 @@ function collectNeeds(node, out) {
|
|
|
186
186
|
* chunk splits like any other.
|
|
187
187
|
*
|
|
188
188
|
* Only when the name is used **exclusively as a tag**. JSX element names are
|
|
189
|
-
* `JSXIdentifier`, so a component used only in markup has zero `Identifier` references
|
|
189
|
+
* `JSXIdentifier`, so a component used only in markup has zero `Identifier` references ,
|
|
190
190
|
* which makes the check exact rather than a guess. Anything else (passed to a function,
|
|
191
191
|
* re-exported, `Chart.displayName`) keeps its import and its warning: replacing the real
|
|
192
192
|
* binding with a lazy wrapper would change what those sites see.
|
|
@@ -221,7 +221,7 @@ function hasNamespaceImport(program, name) {
|
|
|
221
221
|
}
|
|
222
222
|
return false;
|
|
223
223
|
}
|
|
224
|
-
/** Whether `name` is referenced as a value anywhere
|
|
224
|
+
/** Whether `name` is referenced as a value anywhere, a tag alone does not count. */
|
|
225
225
|
function usedAsValue(program, name, specifier) {
|
|
226
226
|
let seen = false;
|
|
227
227
|
walk(program, (node) => {
|
|
@@ -338,7 +338,7 @@ export function transformTemplates(code, id, options = {}) {
|
|
|
338
338
|
const sources = options.sourceLocations === true
|
|
339
339
|
? collectSourceEdits(ast.program, sourceName)
|
|
340
340
|
: { edits: [], marked: 0 };
|
|
341
|
-
// Nothing to emit still returns a result when there's something to say
|
|
341
|
+
// Nothing to emit still returns a result when there's something to say, a shadowed
|
|
342
342
|
// intrinsic is a diagnostic even though the code comes back untouched.
|
|
343
343
|
const silent = found.length === 0 &&
|
|
344
344
|
props.edits.length === 0 &&
|