@madenowhere/phaze-compile 0.0.4 → 0.0.6

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.
@@ -3,6 +3,10 @@ import type * as t from '@babel/types';
3
3
  interface Babel {
4
4
  types: typeof t;
5
5
  }
6
- declare const phazeCompile: (babel: Babel) => PluginObj<PluginPass>;
6
+ interface DslState extends PluginPass {
7
+ dslLocals?: Map<string, 'c' | 'watch' | 'phaze' | 's'>;
8
+ needsRuntimeImport?: Set<'effect' | 'listen'>;
9
+ }
10
+ declare const phazeCompile: (babel: Babel) => PluginObj<DslState>;
7
11
  export default phazeCompile;
8
12
  //# sourceMappingURL=babel-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin.d.ts","sourceRoot":"","sources":["../src/babel-plugin.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAItC,UAAU,KAAK;IACb,KAAK,EAAE,OAAO,CAAC,CAAA;CAChB;AAED,QAAA,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,SAAS,CAAC,UAAU,CA4BxD,CAAA;AAqJD,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"babel-plugin.d.ts","sourceRoot":"","sources":["../src/babel-plugin.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAItC,UAAU,KAAK;IACb,KAAK,EAAE,OAAO,CAAC,CAAA;CAChB;AAUD,UAAU,QAAS,SAAQ,UAAU;IACnC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAA;CAC9C;AAID,QAAA,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,SAAS,CAAC,QAAQ,CAgKtD,CAAA;AAofD,eAAe,YAAY,CAAA"}
@@ -33,14 +33,122 @@
33
33
  // converts to function calls.
34
34
  // @ts-expect-error - no published types for the plugin module
35
35
  import jsxSyntax from '@babel/plugin-syntax-jsx';
36
+ const DSL_SOURCE = '@madenowhere/phaze/dsl';
36
37
  const phazeCompile = (babel) => {
37
38
  const { types } = babel;
38
39
  return {
39
40
  name: '@madenowhere/phaze-compile',
40
41
  inherits: jsxSyntax.default ?? jsxSyntax,
41
42
  visitor: {
42
- JSXElement(path) {
43
+ Program: {
44
+ enter(_path, state) {
45
+ // Reset per-file. Babel reuses the plugin object across files
46
+ // when invoked in batch; without this reset, DSL bindings from
47
+ // one file would bleed into the next.
48
+ state.dslLocals = new Map();
49
+ state.needsRuntimeImport = new Set();
50
+ },
51
+ exit(path, state) {
52
+ // Auto-inject `effect` / `listen` imports from the main phaze
53
+ // entry when class: / bind: namespaces in this file referenced
54
+ // them. The compiler treats these like compile-emitted builtins
55
+ // (same as React's JSX automatic transform auto-imports jsx() /
56
+ // Fragment) — users shouldn't have to remember to import a
57
+ // runtime helper they didn't name in their source.
58
+ //
59
+ // Merge with an existing `from '@madenowhere/phaze'` import if
60
+ // one exists; otherwise prepend a fresh one. Skip names already
61
+ // imported.
62
+ const need = state.needsRuntimeImport;
63
+ if (!need || need.size === 0)
64
+ return;
65
+ const PHAZE = '@madenowhere/phaze';
66
+ let existing = null;
67
+ for (const stmt of path.node.body) {
68
+ if (stmt.type === 'ImportDeclaration' && stmt.source.value === PHAZE) {
69
+ existing = stmt;
70
+ break;
71
+ }
72
+ }
73
+ const already = new Set();
74
+ if (existing) {
75
+ for (const spec of existing.specifiers) {
76
+ if (spec.type === 'ImportSpecifier' && spec.imported.type === 'Identifier') {
77
+ already.add(spec.imported.name);
78
+ }
79
+ }
80
+ }
81
+ const toAdd = [];
82
+ for (const name of need) {
83
+ if (!already.has(name))
84
+ toAdd.push(name);
85
+ }
86
+ if (toAdd.length === 0)
87
+ return;
88
+ const newSpecs = toAdd.map((name) => types.importSpecifier(types.identifier(name), types.identifier(name)));
89
+ if (existing) {
90
+ existing.specifiers.push(...newSpecs);
91
+ }
92
+ else {
93
+ path.node.body.unshift(types.importDeclaration(newSpecs, types.stringLiteral(PHAZE)));
94
+ }
95
+ },
96
+ },
97
+ ImportDeclaration(path, state) {
98
+ if (path.node.source.value !== DSL_SOURCE)
99
+ return;
100
+ for (const spec of path.node.specifiers) {
101
+ if (spec.type !== 'ImportSpecifier')
102
+ continue;
103
+ const imported = spec.imported.type === 'Identifier'
104
+ ? spec.imported.name
105
+ : spec.imported.value;
106
+ if (imported === 'c' || imported === 'watch' || imported === 'phaze' || imported === 's') {
107
+ state.dslLocals.set(spec.local.name, imported);
108
+ }
109
+ }
110
+ },
111
+ CallExpression(path, state) {
112
+ const callee = path.node.callee;
113
+ if (callee.type !== 'Identifier')
114
+ return;
115
+ const dslKind = state.dslLocals?.get(callee.name);
116
+ if (!dslKind)
117
+ return;
118
+ // `s` is a plain alias for signal — no auto-thunk. Bail.
119
+ if (dslKind === 's')
120
+ return;
121
+ const arg = path.node.arguments[0];
122
+ if (!arg)
123
+ return;
124
+ // Skip if already a function or spread element. Skipping arrow
125
+ // and FunctionExpression makes the transform idempotent: running
126
+ // the plugin twice on the same source produces the same output.
127
+ if (arg.type === 'ArrowFunctionExpression' ||
128
+ arg.type === 'FunctionExpression' ||
129
+ arg.type === 'SpreadElement') {
130
+ if (dslKind === 'phaze' && arg.type === 'ArrowFunctionExpression') {
131
+ // `phaze(() => expr)` → `() => expr`. Drops the wrapper —
132
+ // it's a pure compile-time marker once the arrow exists.
133
+ path.replaceWith(arg);
134
+ }
135
+ return;
136
+ }
137
+ // Wrap the argument in `() => arg`.
138
+ const arrow = types.arrowFunctionExpression([], arg);
139
+ if (dslKind === 'phaze') {
140
+ // `phaze(expr)` → `() => expr` (replace the whole call).
141
+ path.replaceWith(arrow);
142
+ }
143
+ else {
144
+ // `c(expr)` → `c(() => expr)`; same for `watch`.
145
+ path.node.arguments[0] = arrow;
146
+ }
147
+ },
148
+ JSXElement(path, state) {
43
149
  const opening = path.node.openingElement;
150
+ rewriteJSXNamespaces(opening, types);
151
+ const ops = extractPostCreationOps(path, types, state);
44
152
  if (isComponentJSX(opening.name)) {
45
153
  // Component children — wrap unconditionally so the parent
46
154
  // controls construction timing (error scopes, etc.).
@@ -54,6 +162,33 @@ const phazeCompile = (babel) => {
54
162
  // without the user writing an explicit thunk.
55
163
  wrapHostExpressionChildren(path.node, types);
56
164
  }
165
+ if (ops.length > 0) {
166
+ // Wrap the JSX in an IIFE that runs each use: / class: / bind:
167
+ // post-creation operation. Replacing the JSXElement here is
168
+ // safe — Babel re-enters the new tree, and the inner JSX no
169
+ // longer carries the stripped attrs so this branch won't fire
170
+ // twice.
171
+ //
172
+ // Position-aware substitution: a bare CallExpression is valid
173
+ // wherever an Expression is, EXCEPT as a JSX child. JSX child
174
+ // positions only accept JSXElement / JSXFragment / JSXText /
175
+ // JSXSpreadChild / JSXExpressionContainer. Emitting
176
+ // `<outer>(__el => …)(<inner/>)</outer>` directly produces
177
+ // invalid JSX that downstream esbuild rejects with "The
178
+ // character '>' is not valid inside a JSX element". When the
179
+ // parent node is a JSXElement or JSXFragment, wrap the IIFE
180
+ // in `{ … }`. Top-level / attribute / non-JSX positions take
181
+ // the bare expression — `path.replaceWith(callExpr)` works as
182
+ // before.
183
+ const iife = buildPostCreationIIFE(path.node, ops, types);
184
+ const parentType = path.parent.type;
185
+ if (parentType === 'JSXElement' || parentType === 'JSXFragment') {
186
+ path.replaceWith(types.jsxExpressionContainer(iife));
187
+ }
188
+ else {
189
+ path.replaceWith(iife);
190
+ }
191
+ }
57
192
  },
58
193
  JSXFragment(path) {
59
194
  // Same expression-children rule for fragments.
@@ -62,6 +197,271 @@ const phazeCompile = (babel) => {
62
197
  },
63
198
  };
64
199
  };
200
+ // Rewrite the in-place Phaze JSX namespaces (`phaze:`, `on:`) on a
201
+ // single opening element. Pure attribute renames + value rewraps —
202
+ // these don't need post-creation code, so they don't participate in
203
+ // the IIFE wrapping pass.
204
+ //
205
+ // `use:`, `class:`, `bind:` are handled by `extractPostCreationOps`
206
+ // because they each need code that runs *after* the element exists.
207
+ const rewriteJSXNamespaces = (opening, types) => {
208
+ for (const attr of opening.attributes) {
209
+ if (attr.type !== 'JSXAttribute')
210
+ continue;
211
+ const name = attr.name;
212
+ if (name.type !== 'JSXNamespacedName')
213
+ continue;
214
+ const ns = name.namespace.name;
215
+ const local = name.name.name;
216
+ if (ns === 'phaze') {
217
+ // phaze:attr={expr} → attr={() => expr}.
218
+ // The runtime detects a function-typed attribute value and sets
219
+ // up a reactive binding. If `expr` is already a function, leave
220
+ // it alone — caller wrote the explicit form.
221
+ attr.name = types.jsxIdentifier(local);
222
+ const val = attr.value;
223
+ if (val && val.type === 'JSXExpressionContainer') {
224
+ const expr = val.expression;
225
+ if (expr.type !== 'JSXEmptyExpression' &&
226
+ expr.type !== 'ArrowFunctionExpression' &&
227
+ expr.type !== 'FunctionExpression') {
228
+ val.expression = types.arrowFunctionExpression([], expr);
229
+ }
230
+ }
231
+ }
232
+ else if (ns === 'on') {
233
+ // on:event={fn} → onEvent={fn} (camelCase). Phaze's JSX runtime
234
+ // already handles the camelCase form via setProp's "on*" branch.
235
+ // Note: kebab-case event names lose hyphens here — see
236
+ // docs/decisions/dsl_directive.md Part 3 for the full caveat.
237
+ // Custom kebab events should go through `use:` directives.
238
+ const camel = 'on' + local.charAt(0).toUpperCase() + local.slice(1);
239
+ attr.name = types.jsxIdentifier(camel);
240
+ }
241
+ }
242
+ };
243
+ // Walk a JSX opening element's attributes once, in source order, and:
244
+ // - `use:NAME={value}` → push a `use` op; strip the attribute.
245
+ // - `class:NAME={expr}` → push a `class` op; strip the attribute.
246
+ // - `bind:value={sig}` → push a `bind` op + emit a signal
247
+ // pass-through `value={sig}` attribute.
248
+ // - `bind:checked={sig}` → same, with `checked={sig}`.
249
+ // - everything else → keep verbatim.
250
+ //
251
+ // Source-order in `ops` matches the user's attribute order so the IIFE
252
+ // emits the post-creation calls in the order the source declares them.
253
+ const extractPostCreationOps = (path, types, state) => {
254
+ const opening = path.node.openingElement;
255
+ const ops = [];
256
+ const kept = [];
257
+ // Pre-scan for the element's tag and static `type` attribute. Used
258
+ // for `bind:`-target validation. A non-string-literal `type` value
259
+ // marks the type as dynamic — in that case we emit the basic
260
+ // transform and skip validation (the user knows what they're doing).
261
+ const tagName = opening.name.type === 'JSXIdentifier' ? opening.name.name : null;
262
+ let staticType = null;
263
+ let typeIsDynamic = false;
264
+ for (const attr of opening.attributes) {
265
+ if (attr.type !== 'JSXAttribute')
266
+ continue;
267
+ if (attr.name.type !== 'JSXIdentifier' || attr.name.name !== 'type')
268
+ continue;
269
+ const v = attr.value;
270
+ if (v && v.type === 'StringLiteral')
271
+ staticType = v.value;
272
+ else if (v && v.type === 'JSXExpressionContainer' && v.expression.type === 'StringLiteral') {
273
+ staticType = v.expression.value;
274
+ }
275
+ else {
276
+ typeIsDynamic = true;
277
+ }
278
+ }
279
+ for (const attr of opening.attributes) {
280
+ if (attr.type !== 'JSXAttribute') {
281
+ kept.push(attr);
282
+ continue;
283
+ }
284
+ const name = attr.name;
285
+ if (name.type !== 'JSXNamespacedName') {
286
+ kept.push(attr);
287
+ continue;
288
+ }
289
+ const ns = name.namespace.name;
290
+ const local = name.name.name;
291
+ if (ns === 'use') {
292
+ const val = attr.value;
293
+ let valueThunk;
294
+ if (val && val.type === 'JSXExpressionContainer') {
295
+ const expr = val.expression;
296
+ if (expr.type === 'JSXEmptyExpression') {
297
+ valueThunk = types.arrowFunctionExpression([], types.booleanLiteral(true));
298
+ }
299
+ else if (expr.type === 'ArrowFunctionExpression' ||
300
+ expr.type === 'FunctionExpression') {
301
+ valueThunk = expr;
302
+ }
303
+ else {
304
+ valueThunk = types.arrowFunctionExpression([], expr);
305
+ }
306
+ }
307
+ else {
308
+ valueThunk = types.arrowFunctionExpression([], types.booleanLiteral(true));
309
+ }
310
+ ops.push({ kind: 'use', name: local, valueThunk });
311
+ continue;
312
+ }
313
+ if (ns === 'class') {
314
+ // class:NAME={expr} → toggle class NAME based on truthiness of expr.
315
+ // Bare `class:NAME` and `class:NAME="…"` (string-literal value)
316
+ // both mean "always on" — JSX semantics for valueless attrs +
317
+ // the spec's explicit treatment of string-literal values.
318
+ const val = attr.value;
319
+ let valueExpr;
320
+ if (!val) {
321
+ valueExpr = types.booleanLiteral(true);
322
+ }
323
+ else if (val.type === 'StringLiteral') {
324
+ valueExpr = types.booleanLiteral(true);
325
+ }
326
+ else if (val.type === 'JSXExpressionContainer') {
327
+ const expr = val.expression;
328
+ valueExpr = expr.type === 'JSXEmptyExpression'
329
+ ? types.booleanLiteral(true)
330
+ : expr;
331
+ }
332
+ else {
333
+ valueExpr = types.booleanLiteral(true);
334
+ }
335
+ ops.push({ kind: 'class', className: local, valueExpr });
336
+ state.needsRuntimeImport.add('effect');
337
+ continue;
338
+ }
339
+ if (ns === 'bind') {
340
+ // Minimal-scope two-way binding: bind:value (text-like inputs,
341
+ // textarea) and bind:checked (checkboxes). Anything else is a
342
+ // compile error pointing at the manual form.
343
+ if (local !== 'value' && local !== 'checked') {
344
+ throw path.buildCodeFrameError(`bind:${local} is not supported. Phaze's bind: namespace handles ` +
345
+ `bind:value (text inputs, textarea) and bind:checked (checkboxes) ` +
346
+ `only. Use the manual form for other cases: ` +
347
+ `value={signal} on:input={(e) => signal.set(e.currentTarget.value)} ` +
348
+ `or similar.`);
349
+ }
350
+ const val = attr.value;
351
+ if (!val ||
352
+ val.type !== 'JSXExpressionContainer' ||
353
+ val.expression.type === 'JSXEmptyExpression') {
354
+ throw path.buildCodeFrameError(`bind:${local} requires a signal as its value (e.g. bind:${local}={mySignal}).`);
355
+ }
356
+ const signalExpr = val.expression;
357
+ if (local === 'value') {
358
+ // Element must be <input> with a text-like / unspecified /
359
+ // dynamic type, or <textarea>.
360
+ if (tagName === 'select') {
361
+ throw path.buildCodeFrameError(`bind:value on <select> is not supported. Use the manual form:\n` +
362
+ ` <select value={signal} on:change={(e) => signal.set(e.currentTarget.value)}>`);
363
+ }
364
+ if (tagName !== 'input' && tagName !== 'textarea') {
365
+ throw path.buildCodeFrameError(`bind:value is only supported on <input> (text-like types) and ` +
366
+ `<textarea>. For <${tagName ?? 'unknown'}>, use the manual form: ` +
367
+ `value={signal} on:input={(e) => signal.set(e.currentTarget.value)}.`);
368
+ }
369
+ if (tagName === 'input' && !typeIsDynamic) {
370
+ const TEXT_LIKE = new Set([
371
+ null, '', 'text', 'email', 'password', 'search', 'url', 'tel',
372
+ ]);
373
+ if (!TEXT_LIKE.has(staticType)) {
374
+ const hint = staticType === 'number'
375
+ ? '+e.currentTarget.value'
376
+ : staticType === 'date'
377
+ ? 'new Date(e.currentTarget.value)'
378
+ : 'e.currentTarget.value';
379
+ throw path.buildCodeFrameError(`bind:value on <input type="${staticType}"> is not supported. ` +
380
+ `Use the manual form with explicit coercion:\n` +
381
+ ` <input type="${staticType}" value={signal} ` +
382
+ `on:input={(e) => signal.set(${hint})} />`);
383
+ }
384
+ }
385
+ }
386
+ else {
387
+ // bind:checked: <input type="checkbox"> only (static type).
388
+ // Dynamic type → emit the basic transform; trust the user.
389
+ if (tagName !== 'input') {
390
+ throw path.buildCodeFrameError(`bind:checked is only supported on <input type="checkbox">. ` +
391
+ `For <${tagName ?? 'unknown'}>, use the manual form: ` +
392
+ `checked={signal} on:change={(e) => signal.set(e.currentTarget.checked)}.`);
393
+ }
394
+ if (!typeIsDynamic && staticType !== 'checkbox') {
395
+ throw path.buildCodeFrameError(`bind:checked is only supported on <input type="checkbox"> ` +
396
+ `(got type="${staticType ?? '(none)'}"). Use the manual form: ` +
397
+ `checked={signal} on:change={(e) => signal.set(e.currentTarget.checked)}.`);
398
+ }
399
+ }
400
+ // Emit signal pass-through as a regular attribute. Phaze's JSX
401
+ // runtime detects callable attr values (signals are callable) and
402
+ // sets up a reactive binding — same fast path as `value={signal}`
403
+ // written by hand. Placed back in kept[] in source-order position.
404
+ kept.push(types.jsxAttribute(types.jsxIdentifier(local), types.jsxExpressionContainer(signalExpr)));
405
+ const event = local === 'checked' ? 'change' : 'input';
406
+ ops.push({ kind: 'bind', event, dotProp: local, signalExpr });
407
+ state.needsRuntimeImport.add('listen');
408
+ continue;
409
+ }
410
+ // Unrecognized namespace (e.g. SVG xlink:href) — leave alone.
411
+ kept.push(attr);
412
+ }
413
+ opening.attributes = kept;
414
+ return ops;
415
+ };
416
+ // Build the IIFE that wraps a JSX element + applies its post-creation
417
+ // operations after the element exists. Each op emits one expression in
418
+ // a comma-sequence; the final expression is `__el` so the IIFE returns
419
+ // the element unchanged.
420
+ //
421
+ // Output shape (single use: directive):
422
+ // ((__el) => (autofocus(__el, () => true), __el))(<input />)
423
+ //
424
+ // Output shape (mixed use: + class: + bind:):
425
+ // ((__el) => (
426
+ // autofocus(__el, () => true),
427
+ // effect(() => __el.classList.toggle('invalid', !valid())),
428
+ // listen(__el, 'input', (e) => text.set(e.currentTarget.value)),
429
+ // __el
430
+ // ))(<input value={text} />)
431
+ const buildPostCreationIIFE = (jsx, ops, types) => {
432
+ const elId = types.identifier('__el');
433
+ const exprs = ops.map((op) => {
434
+ if (op.kind === 'use') {
435
+ return types.callExpression(types.identifier(op.name), [elId, op.valueThunk]);
436
+ }
437
+ if (op.kind === 'class') {
438
+ // effect(() => __el.classList.toggle('NAME', !!valueExpr))
439
+ // Skip the `!!` coercion when valueExpr is already a BooleanLiteral
440
+ // — `!!true` and `!!false` are pointless in emitted code.
441
+ const coerced = op.valueExpr.type === 'BooleanLiteral'
442
+ ? op.valueExpr
443
+ : types.unaryExpression('!', types.unaryExpression('!', op.valueExpr));
444
+ const toggle = types.callExpression(types.memberExpression(types.memberExpression(elId, types.identifier('classList')), types.identifier('toggle')), [types.stringLiteral(op.className), coerced]);
445
+ const arrow = types.arrowFunctionExpression([], toggle);
446
+ return types.callExpression(types.identifier('effect'), [arrow]);
447
+ }
448
+ // op.kind === 'bind'
449
+ // listen(__el, 'EVENT', (e) => signal.set(e.currentTarget.PROP))
450
+ const eParam = types.identifier('e');
451
+ const access = types.memberExpression(types.memberExpression(eParam, types.identifier('currentTarget')), types.identifier(op.dotProp));
452
+ const setCall = types.callExpression(types.memberExpression(op.signalExpr, types.identifier('set')), [access]);
453
+ const handler = types.arrowFunctionExpression([eParam], setCall);
454
+ return types.callExpression(types.identifier('listen'), [
455
+ elId,
456
+ types.stringLiteral(op.event),
457
+ handler,
458
+ ]);
459
+ });
460
+ exprs.push(elId);
461
+ const body = exprs.length === 1 ? exprs[0] : types.sequenceExpression(exprs);
462
+ const arrow = types.arrowFunctionExpression([elId], body);
463
+ return types.callExpression(arrow, [jsx]);
464
+ };
65
465
  const isComponentJSX = (name) => {
66
466
  if (name.type === 'JSXIdentifier') {
67
467
  // Capitalized identifier = component. (Lowercase = HTML host element.)
@@ -174,8 +574,36 @@ const shouldWrapExpression = (expr) => {
174
574
  return true;
175
575
  if (expr.type === 'JSXElement' || expr.type === 'JSXFragment')
176
576
  return true;
577
+ // Our own use:/class:/bind: post-creation IIFE — `(__el => (…))(jsx)`
578
+ // — is a CallExpression containing JSX as its call argument. The IIFE
579
+ // returns a Node eagerly when invoked, so the value flowing into the
580
+ // outer JSX child position is already a constructed Node. Wrapping it
581
+ // in `() =>` would route it through appendDynamicChild's untrack-
582
+ // then-effect path, which calls the thunk twice. Both calls would
583
+ // re-evaluate the inner JSX AND re-run the directives (parallax,
584
+ // warp, etc.), orphaning one mount with active bindings and leaving
585
+ // the visible element competing with the orphan's scroll/spring
586
+ // subscriptions — observable as inverted parallax direction, double
587
+ // listeners, and elements appearing where they shouldn't.
588
+ //
589
+ // The check is signature-specific: callee is an ArrowFunctionExpression
590
+ // taking exactly `__el` as its parameter. That matches every IIFE
591
+ // emitted by buildPostCreationIIFE and nothing user-written.
592
+ if (isUseDirectiveIIFE(expr))
593
+ return false;
177
594
  return containsJSX(expr);
178
595
  };
596
+ const isUseDirectiveIIFE = (expr) => {
597
+ if (expr.type !== 'CallExpression')
598
+ return false;
599
+ const callee = expr.callee;
600
+ if (callee.type !== 'ArrowFunctionExpression')
601
+ return false;
602
+ if (callee.params.length !== 1)
603
+ return false;
604
+ const p = callee.params[0];
605
+ return p?.type === 'Identifier' && p.name === '__el';
606
+ };
179
607
  const containsJSX = (node) => {
180
608
  if (!node || typeof node !== 'object')
181
609
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin.js","sourceRoot":"","sources":["../src/babel-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"babel-plugin.js","sourceRoot":"","sources":["../src/babel-plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@madenowhere/phaze-compile",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "Compiler for Phaze JSX — hoists component children to thunks so user code matches React/Preact JSX shape",
5
5
  "type": "module",
6
6
  "license": "MIT",