@fluixi/compiler 1.0.0-alpha.53
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/LICENSE +21 -0
- package/README.md +76 -0
- package/dist/babel-OGRQKOZA.mjs +2 -0
- package/dist/chunk-3SAEGOMQ.mjs +1 -0
- package/dist/codegen/backend.cjs +1 -0
- package/dist/codegen/backend.d.ts +22 -0
- package/dist/codegen/backend.d.ts.map +1 -0
- package/dist/codegen/backend.js +1 -0
- package/dist/codegen/backend.mjs +0 -0
- package/dist/codegen/backends/imperative.cjs +1 -0
- package/dist/codegen/backends/imperative.d.ts +3 -0
- package/dist/codegen/backends/imperative.d.ts.map +1 -0
- package/dist/codegen/backends/imperative.js +152 -0
- package/dist/codegen/backends/imperative.mjs +1 -0
- package/dist/codegen/contract.cjs +1 -0
- package/dist/codegen/contract.d.ts +25 -0
- package/dist/codegen/contract.d.ts.map +1 -0
- package/dist/codegen/contract.js +30 -0
- package/dist/codegen/contract.mjs +1 -0
- package/dist/frontend/babel/build-ir.cjs +1 -0
- package/dist/frontend/babel/build-ir.d.ts +23 -0
- package/dist/frontend/babel/build-ir.d.ts.map +1 -0
- package/dist/frontend/babel/build-ir.js +224 -0
- package/dist/frontend/babel/build-ir.mjs +1 -0
- package/dist/frontend/babel/index.cjs +2 -0
- package/dist/frontend/babel/index.d.ts +34 -0
- package/dist/frontend/babel/index.d.ts.map +1 -0
- package/dist/frontend/babel/index.js +65 -0
- package/dist/frontend/babel/index.mjs +2 -0
- package/dist/frontend/babel/plugin.cjs +2 -0
- package/dist/frontend/babel/plugin.d.ts +122 -0
- package/dist/frontend/babel/plugin.d.ts.map +1 -0
- package/dist/frontend/babel/plugin.js +1509 -0
- package/dist/frontend/babel/plugin.mjs +2 -0
- package/dist/frontend/babel/server-functions.cjs +1 -0
- package/dist/frontend/babel/server-functions.d.ts +11 -0
- package/dist/frontend/babel/server-functions.d.ts.map +1 -0
- package/dist/frontend/babel/server-functions.js +88 -0
- package/dist/frontend/babel/server-functions.mjs +1 -0
- package/dist/frontend/babel/types.cjs +1 -0
- package/dist/frontend/babel/types.d.ts +34 -0
- package/dist/frontend/babel/types.d.ts.map +1 -0
- package/dist/frontend/babel/types.js +1 -0
- package/dist/frontend/babel/types.mjs +0 -0
- package/dist/frontend/types.cjs +1 -0
- package/dist/frontend/types.d.ts +26 -0
- package/dist/frontend/types.d.ts.map +1 -0
- package/dist/frontend/types.js +1 -0
- package/dist/frontend/types.mjs +0 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.mjs +1 -0
- package/dist/integrations.cjs +12 -0
- package/dist/integrations.d.ts +251 -0
- package/dist/integrations.d.ts.map +1 -0
- package/dist/integrations.js +790 -0
- package/dist/integrations.mjs +11 -0
- package/dist/ir/nodes.cjs +1 -0
- package/dist/ir/nodes.d.ts +80 -0
- package/dist/ir/nodes.d.ts.map +1 -0
- package/dist/ir/nodes.js +1 -0
- package/dist/ir/nodes.mjs +0 -0
- package/dist/options.cjs +1 -0
- package/dist/options.d.ts +18 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +9 -0
- package/dist/options.mjs +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Comprehensive Babel Plugin for Reactive JSX Transformation
|
|
3
|
+
* @module @fluixi/babel-plugin-jsx
|
|
4
|
+
*
|
|
5
|
+
* This plugin transforms JSX into optimized reactive DOM operations with:
|
|
6
|
+
* - Fine-grained reactivity detection
|
|
7
|
+
* - Signal/store wrapping
|
|
8
|
+
* - Event delegation
|
|
9
|
+
* - Static hoisting
|
|
10
|
+
* - Lit-HTML integration
|
|
11
|
+
* - Control flow optimization
|
|
12
|
+
*/
|
|
13
|
+
import { type PluginObj, type PluginPass } from '@babel/core';
|
|
14
|
+
export interface PluginOptions {
|
|
15
|
+
/**
|
|
16
|
+
* Automatically transform `{() => cond && <JSX />}` and
|
|
17
|
+
* `{() => cond ? <JSX /> : null}` patterns into `<Show>` components.
|
|
18
|
+
* Prevents entire sub-trees from being recreated on every signal change.
|
|
19
|
+
* @default false
|
|
20
|
+
*/
|
|
21
|
+
autoShowTransform?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* JSX runtime mode
|
|
24
|
+
* @default 'automatic'
|
|
25
|
+
*/
|
|
26
|
+
runtime?: 'automatic' | 'classic';
|
|
27
|
+
/**
|
|
28
|
+
* Import source for JSX runtime
|
|
29
|
+
* @default '@fluixi/jsx'
|
|
30
|
+
*/
|
|
31
|
+
importSource?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Classic mode pragma
|
|
34
|
+
* @default 'jsx'
|
|
35
|
+
*/
|
|
36
|
+
pragma?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Classic mode fragment pragma
|
|
39
|
+
* @default 'Fragment'
|
|
40
|
+
*/
|
|
41
|
+
pragmaFrag?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Enable development mode with additional checks
|
|
44
|
+
* @default false
|
|
45
|
+
*/
|
|
46
|
+
development?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Auto-detect and wrap reactive expressions
|
|
49
|
+
* @default true
|
|
50
|
+
*/
|
|
51
|
+
detectReactivity?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Use lit-html templates when beneficial
|
|
54
|
+
* @default true
|
|
55
|
+
*/
|
|
56
|
+
useLitHTML?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Enable static element hoisting
|
|
59
|
+
* @default true
|
|
60
|
+
*/
|
|
61
|
+
hoistStatics?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Enable event delegation
|
|
64
|
+
* @default true
|
|
65
|
+
*/
|
|
66
|
+
delegateEvents?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Events to delegate
|
|
69
|
+
* @default ['click', 'input', 'change', 'submit', 'focus', 'blur']
|
|
70
|
+
*/
|
|
71
|
+
delegatedEvents?: string[];
|
|
72
|
+
/**
|
|
73
|
+
* Optimize control flow components
|
|
74
|
+
* @default true
|
|
75
|
+
*/
|
|
76
|
+
optimizeControlFlow?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Generate source maps
|
|
79
|
+
* @default true
|
|
80
|
+
*/
|
|
81
|
+
sourceMaps?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Module name for signal directive
|
|
84
|
+
* @default '@fluixi/dom'
|
|
85
|
+
*/
|
|
86
|
+
signalModule?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Module name for control flow
|
|
89
|
+
* @default '@fluixi/dom'
|
|
90
|
+
*/
|
|
91
|
+
controlFlowModule?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Where reactive primitives (createMemo) are imported from — the signal core,
|
|
94
|
+
* not the dom runtime.
|
|
95
|
+
* @default '@fluixi/reactive/signal'
|
|
96
|
+
*/
|
|
97
|
+
reactiveModule?: string;
|
|
98
|
+
/**
|
|
99
|
+
* Code-generation backend.
|
|
100
|
+
* - 'imperative' (default): emit direct compiled calls into the @fluixi/dom
|
|
101
|
+
* runtime (createNativeElement/spread/insert/createComponent) — no per-render
|
|
102
|
+
* jsx() dispatch. Targets RUNTIME_CONTRACT_V1.
|
|
103
|
+
* - 'jsx': emit the automatic runtime (jsx()/jsxs()) — the runtime interprets
|
|
104
|
+
* the calls.
|
|
105
|
+
* @default 'imperative'
|
|
106
|
+
*/
|
|
107
|
+
backend?: 'jsx' | 'imperative';
|
|
108
|
+
/**
|
|
109
|
+
* Which imperative codegen path to use (only relevant when backend is
|
|
110
|
+
* 'imperative'):
|
|
111
|
+
* - 'inline': the plugin builds the runtime calls directly from the JSX AST
|
|
112
|
+
* (no string reparse). Default.
|
|
113
|
+
* - 'ir': route through the shared host-agnostic pipeline — build IR
|
|
114
|
+
* (build-ir.ts) then run the imperative backend's emit(), reparsing the
|
|
115
|
+
* emitted code. Same output; this is the path a future SWC front-end reuses.
|
|
116
|
+
* @default 'inline'
|
|
117
|
+
*/
|
|
118
|
+
codegen?: 'inline' | 'ir';
|
|
119
|
+
}
|
|
120
|
+
declare const _default: (api: object, options: PluginOptions | null | undefined, dirname: string) => PluginObj<PluginPass>;
|
|
121
|
+
export default _default;
|
|
122
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/frontend/babel/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AAQrB,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAElC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC;IAE/B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3B;;AA4FD,wBA4lBG"}
|