@barefootjs/go-template 0.9.1 → 0.9.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/dist/adapter/go-template-adapter.d.ts +21 -0
- package/dist/adapter/go-template-adapter.d.ts.map +1 -1
- package/dist/adapter/index.d.ts +2 -2
- package/dist/adapter/index.d.ts.map +1 -1
- package/dist/adapter/index.js +79 -3
- package/dist/build.d.ts +2 -2
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +88 -4
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -3
- package/dist/test-render.d.ts +7 -0
- package/dist/test-render.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/go-template-adapter.test.ts +67 -32
- package/src/adapter/go-template-adapter.ts +145 -3
- package/src/adapter/index.ts +2 -2
- package/src/build.ts +16 -3
- package/src/index.ts +2 -2
- package/src/test-render.ts +112 -14
|
@@ -30,6 +30,7 @@ export interface GoTemplateAdapterOptions {
|
|
|
30
30
|
export declare class GoTemplateAdapter extends BaseAdapter implements ParsedExprEmitter, IRNodeEmitter<GoRenderCtx> {
|
|
31
31
|
name: string;
|
|
32
32
|
extension: string;
|
|
33
|
+
private static readonly SCOPE_SENTINEL;
|
|
33
34
|
importMapInjection: 'html-snippet';
|
|
34
35
|
private filterExprDepth;
|
|
35
36
|
private filterExprUnsupported;
|
|
@@ -109,6 +110,10 @@ export declare class GoTemplateAdapter extends BaseAdapter implements ParsedExpr
|
|
|
109
110
|
/** Set during type generation when any emit references
|
|
110
111
|
* `template.HTML(...)`; toggles the `"html/template"` import. */
|
|
111
112
|
private usesHtmlTemplate;
|
|
113
|
+
/** Component root scope element(s) — each carries `data-key` for a keyed loop
|
|
114
|
+
* item. A plain element root is one node; an `if-statement` (early-return)
|
|
115
|
+
* root contributes the top element of every branch. (#1297) */
|
|
116
|
+
private rootScopeNodes;
|
|
112
117
|
/** Set during type generation when any emit references
|
|
113
118
|
* `fmt.Sprint(...)` — e.g. a `Record<staticKeys, scalar>[propKey]`
|
|
114
119
|
* indexed-map spread value (#checkbox); toggles the `"fmt"` import. */
|
|
@@ -367,7 +372,23 @@ export declare class GoTemplateAdapter extends BaseAdapter implements ParsedExpr
|
|
|
367
372
|
* "drop children" fallback. Dynamic / component-bearing children
|
|
368
373
|
* stay on the drop path until a re-evaluation hook lands.
|
|
369
374
|
*/
|
|
375
|
+
/**
|
|
376
|
+
* Pull the IR nodes out of a `children={<…/>}` attribute (a `jsx-children`
|
|
377
|
+
* prop value). Empty when the component takes no such prop. (#1326 / #1335)
|
|
378
|
+
*/
|
|
379
|
+
private jsxChildrenPropNodes;
|
|
370
380
|
private extractHtmlChildren;
|
|
381
|
+
/**
|
|
382
|
+
* Build a Go string-concat expression for hoisted-JSX children whose root
|
|
383
|
+
* carries `needsScope` (`children={<span/>}` — #1326 / #1335). Such roots
|
|
384
|
+
* render in the PARENT's scope, so their `bf-s` is the runtime parent
|
|
385
|
+
* `scopeID`, not a bake-time constant. We render the fragment, swap the
|
|
386
|
+
* parent-scope hydration marker for a sentinel, and splice `scopeID` back
|
|
387
|
+
* in. Returns null when the plain static `childrenHtml` path already
|
|
388
|
+
* applies, or when any other template action survives (genuinely dynamic —
|
|
389
|
+
* those stay on the drop path).
|
|
390
|
+
*/
|
|
391
|
+
private extractScopedHtmlChildren;
|
|
371
392
|
private collectStaticChildInstancesRecursive;
|
|
372
393
|
/**
|
|
373
394
|
* Extend the active provider-context map with one `<Ctx.Provider value>`. A
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go-template-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/go-template-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"go-template-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/go-template-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,SAAS,EACT,MAAM,EACN,YAAY,EACZ,aAAa,EACb,MAAM,EAEN,WAAW,EACX,UAAU,EACV,MAAM,EAON,UAAU,EAEV,cAAc,EACd,QAAQ,EACR,SAAS,EACT,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,OAAO,EAEP,yBAAyB,EAC1B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EAehB,MAAM,iBAAiB,CAAA;AAGxB;;;;;GAKG;AACH,KAAK,WAAW,GAAG;IACjB,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC,CAAA;AA2GD,MAAM,WAAW,wBAAwB;IACvC,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAyMD,qBAAa,iBAAkB,SAAQ,WAAY,YAAW,iBAAiB,EAAE,aAAa,CAAC,WAAW,CAAC;IACzG,IAAI,SAAgB;IACpB,SAAS,SAAU;IAKnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAA0B;IAGhE,kBAAkB,EAAG,cAAc,CAAS;IAQ5C,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,qBAAqB,CAAQ;IAErC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,kBAAkB,EAAE,yBAAyB,CAG1C;IAEH;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAGtC;IAEH,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,eAAe,CAAsB;IAC7C;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,kBAAkB,CAAY;IACtC,sFAAsF;IACtF,OAAO,CAAC,cAAc,CAAyB;IAC/C,kFAAkF;IAClF,OAAO,CAAC,gBAAgB,CAAiC;IACzD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAA8C;IACvE;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB,CAAmC;IAE3D;sEACkE;IAClE,OAAO,CAAC,gBAAgB,CAAiB;IACzC;;oEAEgE;IAChE,OAAO,CAAC,cAAc,CAAyB;IAE/C;;4EAEwE;IACxE,OAAO,CAAC,OAAO,CAAiB;IAEhC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB,CAA8C;IAE1E;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB,CAAiC;IAE3D;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAAmC;IAEzD;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAwB;IAEhD,8FAA8F;IAC9F,OAAO,CAAC,qBAAqB,CAA4C;IAEzE;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB,CAAyB;IAElD,YAAY,OAAO,GAAE,wBAA6B,EAOjD;IAED;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,aAAa,CA8EzE;IAED;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,0BAA0B;IAkClC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,gCAAgC;IAiFxC;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAsBnC;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAUjD;IAED,iFAAiF;IACjF,OAAO,CAAC,gBAAgB;IAIxB,qFAAqF;IACrF,OAAO,CAAC,qBAAqB;IAM7B,mFAAmF;IACnF,OAAO,CAAC,wBAAwB;IAOhC;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAIpC,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAuH5C;IAED;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,eAAe;IAavB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,0BAA0B;IAgElC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;uBACmB;IACnB,OAAO,CAAC,oBAAoB;IAI5B;;iCAE6B;IAC7B,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyE3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuJ3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA4UhC;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,uBAAuB;IAqC/B;;;;;;;;;OASG;IACH,OAAO,CAAC,2BAA2B;IAMnC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;;;;;;;;;OAWG;IACH;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,mBAAmB;IAQ3B;;;;;;;;;OASG;IACH,OAAO,CAAC,yBAAyB;IAsBjC,OAAO,CAAC,oCAAoC;IA0F5C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,2BAA2B;IA2EnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,2BAA2B;IAkDnC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,sBAAsB;IA0F9B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,iCAAiC;IA2BzC,kEAAkE;IAClE,OAAO,CAAC,YAAY;IAMpB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAiClC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsE3B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,aAAa;IAMrB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAqFrB;;;OAGG;IACH,OAAO,CAAC,YAAY;IA0CpB;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IA0CjC;;;OAGG;IACH;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,qBAAqB;IAiD7B,OAAO,CAAC,uBAAuB;IA2B/B;;;;;;;;OAQG;IACH;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,sCAAsC;IAuE9C;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAgDpC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;;;;;;;OAQG;IACH,OAAO,CAAC,4BAA4B;IAyBpC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,uBAAuB;IAkH/B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAmDrB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAgCrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAkD;IAEzF;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAmD/B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IA8BvC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa,CAA6B;IAEzD,iHAAiH;IAGjH,MAAM,CAAC,cAAc,cAInB;IAEF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW,CAKxB;IAEF,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAmBrB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;IAiBjB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAElD;IAMD,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAEtF;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7B;IAED,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEzC;IAED,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAE9F;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAEhF;IAED,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAEzF;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAExF;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7B;IAED,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAE7F;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAExF;IAED,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAElF;IAED,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CA+BxC;IAED,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA6B3C;IAED;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAQnC;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAQxB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc/B;IAED;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;IAWjC;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAIjF;IAED,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAyCpF;IAED,MAAM,CACJ,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAmCR;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CA+B/F;IAED,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAK/E;IAED,OAAO,CACL,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,EACtB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAOR;IAQD,WAAW,CACT,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAKR;IAED,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAU9E;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAGlF;IAED,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAgB5E;IAED,WAAW,CACT,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAgCR;IAED,WAAW,CACT,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,EAAE,EAClB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CA6LR;IAED,UAAU,CACR,MAAM,EAAE,MAAM,GAAG,UAAU,EAC3B,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAaR;IAED,YAAY,CACV,MAAM,EAAE,QAAQ,GAAG,aAAa,EAChC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAC9B,MAAM,CAOR;IAED,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAOxF;IAED,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,GAAG,MAAM,CAoBxF;IAED,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGhD;IAED;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IA8BhC;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IA+C7B;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,4BAA4B;IAsBpC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAmBrB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,wBAAwB;IA0BhC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA+C1B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA6BhC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,oBAAoB;IAgK5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAmB/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6B7B;;OAEG;IACH,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,iBAAiB;IAqCzB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA0D7C;IAED;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,mBAAmB;IA+L3B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmI/B;IAED;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE;QAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAqCtF;IAED;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;IAMT,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAM1C;IAED,OAAO,CAAC,cAAc;IAItB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA+FlC;IAED,OAAO,CAAC,gBAAgB;IAsBxB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,0BAA0B;IA4BlC;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,0BAA0B;IAuClC,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAKjD;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;IAED,OAAO,CAAC,kBAAkB;CAmB3B;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAA"}
|
package/dist/adapter/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Go html/template Adapter Exports
|
|
3
3
|
*/
|
|
4
|
-
export { GoTemplateAdapter, goTemplateAdapter } from './go-template-adapter';
|
|
5
|
-
export type { GoTemplateAdapterOptions } from './go-template-adapter';
|
|
4
|
+
export { GoTemplateAdapter, goTemplateAdapter } from './go-template-adapter.ts';
|
|
5
|
+
export type { GoTemplateAdapterOptions } from './go-template-adapter.ts';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapter/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapter/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC/E,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA"}
|
package/dist/adapter/index.js
CHANGED
|
@@ -69,6 +69,42 @@ function capitalize(s) {
|
|
|
69
69
|
}
|
|
70
70
|
return s[0].toUpperCase() + s.slice(1);
|
|
71
71
|
}
|
|
72
|
+
function loopKeyToGoFieldPath(key, param) {
|
|
73
|
+
if (!key || !param)
|
|
74
|
+
return null;
|
|
75
|
+
const segs = key.split(".");
|
|
76
|
+
if (segs[0] !== param)
|
|
77
|
+
return null;
|
|
78
|
+
const rest = segs.slice(1);
|
|
79
|
+
if (rest.length === 0)
|
|
80
|
+
return null;
|
|
81
|
+
if (!rest.every((s) => /^[A-Za-z_]\w*$/.test(s)))
|
|
82
|
+
return null;
|
|
83
|
+
return "item." + rest.map(capitalize).join(".");
|
|
84
|
+
}
|
|
85
|
+
function collectRootScopeNodes(node) {
|
|
86
|
+
const out = new Set;
|
|
87
|
+
const visit = (n) => {
|
|
88
|
+
if (!n)
|
|
89
|
+
return;
|
|
90
|
+
if (n.type === "element") {
|
|
91
|
+
out.add(n);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (n.type === "if-statement") {
|
|
95
|
+
const s = n;
|
|
96
|
+
visit(s.consequent);
|
|
97
|
+
visit(s.alternate);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (n.type === "fragment") {
|
|
101
|
+
for (const c of n.children)
|
|
102
|
+
visit(c);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
visit(node);
|
|
106
|
+
return out;
|
|
107
|
+
}
|
|
72
108
|
function slotIdToFieldSuffix(slotId) {
|
|
73
109
|
const cleanId = slotId.startsWith("^") ? slotId.slice(1) : slotId;
|
|
74
110
|
const match = cleanId.match(/^s(\d+)$/);
|
|
@@ -101,6 +137,7 @@ var GO_TEMPLATE_PRIMITIVES = {
|
|
|
101
137
|
class GoTemplateAdapter extends BaseAdapter {
|
|
102
138
|
name = "go-template";
|
|
103
139
|
extension = ".tmpl";
|
|
140
|
+
static SCOPE_SENTINEL = "__BF_SCOPE_SENTINEL__";
|
|
104
141
|
importMapInjection = "html-snippet";
|
|
105
142
|
filterExprDepth = 0;
|
|
106
143
|
filterExprUnsupported = false;
|
|
@@ -120,6 +157,7 @@ class GoTemplateAdapter extends BaseAdapter {
|
|
|
120
157
|
localStructFields = new Map;
|
|
121
158
|
synthStructTypes = new Map;
|
|
122
159
|
usesHtmlTemplate = false;
|
|
160
|
+
rootScopeNodes = new Set;
|
|
123
161
|
usesFmt = false;
|
|
124
162
|
childComponentShapes = new Map;
|
|
125
163
|
moduleStringConsts = new Map;
|
|
@@ -152,6 +190,7 @@ class GoTemplateAdapter extends BaseAdapter {
|
|
|
152
190
|
const hasInteractivity = this.hasClientInteractivity(ir);
|
|
153
191
|
const isRootComponent = ir.root.type === "component";
|
|
154
192
|
const isIfStatement = ir.root.type === "if-statement";
|
|
193
|
+
this.rootScopeNodes = collectRootScopeNodes(ir.root);
|
|
155
194
|
const templateBody = isIfStatement ? this.renderIfStatement(ir.root, { isRootOfClientComponent: hasInteractivity }) : this.renderNode(ir.root, { isRootOfClientComponent: hasInteractivity && isRootComponent });
|
|
156
195
|
const scriptRegistrations = options?.skipScriptRegistration ? "" : this.generateScriptRegistrations(ir, options?.scriptBaseName);
|
|
157
196
|
const template = `{{define "${this.componentName}"}}
|
|
@@ -683,6 +722,7 @@ ${goFields.join(`
|
|
|
683
722
|
lines.push('\tBfIsChild bool `json:"-"`');
|
|
684
723
|
lines.push('\tBfParent string `json:"-"`');
|
|
685
724
|
lines.push('\tBfMount string `json:"-"`');
|
|
725
|
+
lines.push('\tBfDataKey string `json:"-"`');
|
|
686
726
|
lines.push('\tScripts *bf.ScriptCollector `json:"-"`');
|
|
687
727
|
const nestedArrayFields = new Set(nestedComponents.map((n) => `${n.name}s`));
|
|
688
728
|
const propFieldNames = new Set;
|
|
@@ -798,6 +838,11 @@ ${goFields.join(`
|
|
|
798
838
|
lines.push(` ${varName}[i] = New${nested.name}Props(item)`);
|
|
799
839
|
lines.push(` ${varName}[i].BfParent = scopeID`);
|
|
800
840
|
lines.push(` ${varName}[i].BfMount = "${nested.slotId}"`);
|
|
841
|
+
const keyField = loopKeyToGoFieldPath(nested.loopKey, nested.loopParam);
|
|
842
|
+
if (keyField) {
|
|
843
|
+
lines.push(` ${varName}[i].BfDataKey = fmt.Sprint(${keyField})`);
|
|
844
|
+
this.usesFmt = true;
|
|
845
|
+
}
|
|
801
846
|
lines.push("\t}");
|
|
802
847
|
lines.push("");
|
|
803
848
|
}
|
|
@@ -934,6 +979,9 @@ ${goFields.join(`
|
|
|
934
979
|
} else if (child.childrenHtml !== null) {
|
|
935
980
|
this.usesHtmlTemplate = true;
|
|
936
981
|
lines.push(` Children: template.HTML(${JSON.stringify(child.childrenHtml)}),`);
|
|
982
|
+
} else if (child.childrenScopedHtmlExpr !== null) {
|
|
983
|
+
this.usesHtmlTemplate = true;
|
|
984
|
+
lines.push(` Children: template.HTML(${child.childrenScopedHtmlExpr}),`);
|
|
937
985
|
}
|
|
938
986
|
lines.push(` }),`);
|
|
939
987
|
}
|
|
@@ -972,7 +1020,9 @@ ${goFields.join(`
|
|
|
972
1020
|
result.push({
|
|
973
1021
|
...loop.childComponent,
|
|
974
1022
|
isDynamic: !loop.isStaticArray,
|
|
975
|
-
isPropDerived: !!loop.isPropDerivedArray
|
|
1023
|
+
isPropDerived: !!loop.isPropDerivedArray,
|
|
1024
|
+
loopKey: loop.key ?? undefined,
|
|
1025
|
+
loopParam: loop.param ?? undefined
|
|
976
1026
|
});
|
|
977
1027
|
}
|
|
978
1028
|
}
|
|
@@ -1013,6 +1063,13 @@ ${goFields.join(`
|
|
|
1013
1063
|
}
|
|
1014
1064
|
return out;
|
|
1015
1065
|
}
|
|
1066
|
+
jsxChildrenPropNodes(props) {
|
|
1067
|
+
for (const p of props) {
|
|
1068
|
+
if (p.value.kind === "jsx-children")
|
|
1069
|
+
return p.value.children;
|
|
1070
|
+
}
|
|
1071
|
+
return [];
|
|
1072
|
+
}
|
|
1016
1073
|
extractHtmlChildren(children) {
|
|
1017
1074
|
if (children.length === 0)
|
|
1018
1075
|
return null;
|
|
@@ -1023,6 +1080,20 @@ ${goFields.join(`
|
|
|
1023
1080
|
return null;
|
|
1024
1081
|
return html;
|
|
1025
1082
|
}
|
|
1083
|
+
extractScopedHtmlChildren(children) {
|
|
1084
|
+
if (children.length === 0)
|
|
1085
|
+
return null;
|
|
1086
|
+
if (children.every((c) => c.type === "text"))
|
|
1087
|
+
return null;
|
|
1088
|
+
const html = this.renderChildren(children);
|
|
1089
|
+
const marker = this.renderScopeMarker(".ScopeID");
|
|
1090
|
+
const withSentinel = html.split(marker).join(`bf-s="${GoTemplateAdapter.SCOPE_SENTINEL}"`);
|
|
1091
|
+
if (!withSentinel.includes(GoTemplateAdapter.SCOPE_SENTINEL))
|
|
1092
|
+
return null;
|
|
1093
|
+
if (withSentinel.includes("{{"))
|
|
1094
|
+
return null;
|
|
1095
|
+
return withSentinel.split(GoTemplateAdapter.SCOPE_SENTINEL).map((seg) => JSON.stringify(seg)).join(" + scopeID + ");
|
|
1096
|
+
}
|
|
1026
1097
|
collectStaticChildInstancesRecursive(node, result, inLoop, providerCtx) {
|
|
1027
1098
|
if (node.type === "component") {
|
|
1028
1099
|
const comp = node;
|
|
@@ -1034,13 +1105,15 @@ ${goFields.join(`
|
|
|
1034
1105
|
}
|
|
1035
1106
|
if (comp.name !== "Portal" && !inLoop && comp.slotId) {
|
|
1036
1107
|
const suffix = slotIdToFieldSuffix(comp.slotId);
|
|
1108
|
+
const effectiveChildren = comp.children.length > 0 ? comp.children : this.jsxChildrenPropNodes(comp.props);
|
|
1037
1109
|
result.push({
|
|
1038
1110
|
name: comp.name,
|
|
1039
1111
|
slotId: comp.slotId,
|
|
1040
1112
|
props: comp.props,
|
|
1041
1113
|
fieldName: `${comp.name}${suffix}`,
|
|
1042
|
-
childrenText: this.extractTextChildren(
|
|
1043
|
-
childrenHtml: this.extractHtmlChildren(
|
|
1114
|
+
childrenText: this.extractTextChildren(effectiveChildren),
|
|
1115
|
+
childrenHtml: this.extractHtmlChildren(effectiveChildren),
|
|
1116
|
+
childrenScopedHtmlExpr: this.extractScopedHtmlChildren(effectiveChildren),
|
|
1044
1117
|
contextBindings: providerCtx.size > 0 ? providerCtx : undefined
|
|
1045
1118
|
});
|
|
1046
1119
|
}
|
|
@@ -2153,6 +2226,9 @@ ${goFields.join(`
|
|
|
2153
2226
|
if (element.needsScope) {
|
|
2154
2227
|
hydrationAttrs += ` ${this.renderScopeMarker(".ScopeID")}`;
|
|
2155
2228
|
}
|
|
2229
|
+
if (this.rootScopeNodes.has(element) && element.needsScope) {
|
|
2230
|
+
hydrationAttrs += `{{if .BfDataKey}} data-key="{{.BfDataKey}}"{{end}}`;
|
|
2231
|
+
}
|
|
2156
2232
|
if (element.slotId) {
|
|
2157
2233
|
hydrationAttrs += ` ${this.renderSlotMarker(element.slotId)}`;
|
|
2158
2234
|
}
|
package/dist/build.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BuildOptions, PostBuildContext } from '@barefootjs/jsx';
|
|
2
|
-
import { GoTemplateAdapter } from './adapter';
|
|
3
|
-
import type { GoTemplateAdapterOptions } from './adapter';
|
|
2
|
+
import { GoTemplateAdapter } from './adapter/index.ts';
|
|
3
|
+
import type { GoTemplateAdapterOptions } from './adapter/index.ts';
|
|
4
4
|
export interface GoTemplateBuildOptions extends BuildOptions {
|
|
5
5
|
/** Adapter-specific options passed to GoTemplateAdapter */
|
|
6
6
|
adapterOptions?: GoTemplateAdapterOptions;
|
package/dist/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAElE,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,2DAA2D;IAC3D,cAAc,CAAC,EAAE,wBAAwB,CAAA;IACzC,gGAAgG;IAChG,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,uFAAuF;IACvF,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAID;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA0C1D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmD3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3C,GAAG,MAAM,CAsET;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,sBAA2B;IAyC7D,OAAO;IACP,KAAK;IACL,UAAU;IACV,MAAM;IACN,MAAM;IACN,WAAW;IACX,SAAS;IACT,iBAAiB;IACjB,aAAa;IACb,mBAAmB;IACnB,YAAY;IAKZ,SAAS,QApDmB,gBAAgB;EAsD/C"}
|
package/dist/build.js
CHANGED
|
@@ -409,6 +409,42 @@ function capitalize(s) {
|
|
|
409
409
|
}
|
|
410
410
|
return s[0].toUpperCase() + s.slice(1);
|
|
411
411
|
}
|
|
412
|
+
function loopKeyToGoFieldPath(key, param) {
|
|
413
|
+
if (!key || !param)
|
|
414
|
+
return null;
|
|
415
|
+
const segs = key.split(".");
|
|
416
|
+
if (segs[0] !== param)
|
|
417
|
+
return null;
|
|
418
|
+
const rest = segs.slice(1);
|
|
419
|
+
if (rest.length === 0)
|
|
420
|
+
return null;
|
|
421
|
+
if (!rest.every((s) => /^[A-Za-z_]\w*$/.test(s)))
|
|
422
|
+
return null;
|
|
423
|
+
return "item." + rest.map(capitalize).join(".");
|
|
424
|
+
}
|
|
425
|
+
function collectRootScopeNodes(node) {
|
|
426
|
+
const out = new Set;
|
|
427
|
+
const visit = (n) => {
|
|
428
|
+
if (!n)
|
|
429
|
+
return;
|
|
430
|
+
if (n.type === "element") {
|
|
431
|
+
out.add(n);
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
if (n.type === "if-statement") {
|
|
435
|
+
const s = n;
|
|
436
|
+
visit(s.consequent);
|
|
437
|
+
visit(s.alternate);
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
if (n.type === "fragment") {
|
|
441
|
+
for (const c of n.children)
|
|
442
|
+
visit(c);
|
|
443
|
+
}
|
|
444
|
+
};
|
|
445
|
+
visit(node);
|
|
446
|
+
return out;
|
|
447
|
+
}
|
|
412
448
|
function slotIdToFieldSuffix(slotId) {
|
|
413
449
|
const cleanId = slotId.startsWith("^") ? slotId.slice(1) : slotId;
|
|
414
450
|
const match = cleanId.match(/^s(\d+)$/);
|
|
@@ -441,6 +477,7 @@ var GO_TEMPLATE_PRIMITIVES = {
|
|
|
441
477
|
class GoTemplateAdapter extends BaseAdapter {
|
|
442
478
|
name = "go-template";
|
|
443
479
|
extension = ".tmpl";
|
|
480
|
+
static SCOPE_SENTINEL = "__BF_SCOPE_SENTINEL__";
|
|
444
481
|
importMapInjection = "html-snippet";
|
|
445
482
|
filterExprDepth = 0;
|
|
446
483
|
filterExprUnsupported = false;
|
|
@@ -460,6 +497,7 @@ class GoTemplateAdapter extends BaseAdapter {
|
|
|
460
497
|
localStructFields = new Map;
|
|
461
498
|
synthStructTypes = new Map;
|
|
462
499
|
usesHtmlTemplate = false;
|
|
500
|
+
rootScopeNodes = new Set;
|
|
463
501
|
usesFmt = false;
|
|
464
502
|
childComponentShapes = new Map;
|
|
465
503
|
moduleStringConsts = new Map;
|
|
@@ -492,6 +530,7 @@ class GoTemplateAdapter extends BaseAdapter {
|
|
|
492
530
|
const hasInteractivity = this.hasClientInteractivity(ir);
|
|
493
531
|
const isRootComponent = ir.root.type === "component";
|
|
494
532
|
const isIfStatement = ir.root.type === "if-statement";
|
|
533
|
+
this.rootScopeNodes = collectRootScopeNodes(ir.root);
|
|
495
534
|
const templateBody = isIfStatement ? this.renderIfStatement(ir.root, { isRootOfClientComponent: hasInteractivity }) : this.renderNode(ir.root, { isRootOfClientComponent: hasInteractivity && isRootComponent });
|
|
496
535
|
const scriptRegistrations = options?.skipScriptRegistration ? "" : this.generateScriptRegistrations(ir, options?.scriptBaseName);
|
|
497
536
|
const template = `{{define "${this.componentName}"}}
|
|
@@ -1023,6 +1062,7 @@ ${goFields.join(`
|
|
|
1023
1062
|
lines.push('\tBfIsChild bool `json:"-"`');
|
|
1024
1063
|
lines.push('\tBfParent string `json:"-"`');
|
|
1025
1064
|
lines.push('\tBfMount string `json:"-"`');
|
|
1065
|
+
lines.push('\tBfDataKey string `json:"-"`');
|
|
1026
1066
|
lines.push('\tScripts *bf.ScriptCollector `json:"-"`');
|
|
1027
1067
|
const nestedArrayFields = new Set(nestedComponents.map((n) => `${n.name}s`));
|
|
1028
1068
|
const propFieldNames = new Set;
|
|
@@ -1138,6 +1178,11 @@ ${goFields.join(`
|
|
|
1138
1178
|
lines.push(` ${varName}[i] = New${nested.name}Props(item)`);
|
|
1139
1179
|
lines.push(` ${varName}[i].BfParent = scopeID`);
|
|
1140
1180
|
lines.push(` ${varName}[i].BfMount = "${nested.slotId}"`);
|
|
1181
|
+
const keyField = loopKeyToGoFieldPath(nested.loopKey, nested.loopParam);
|
|
1182
|
+
if (keyField) {
|
|
1183
|
+
lines.push(` ${varName}[i].BfDataKey = fmt.Sprint(${keyField})`);
|
|
1184
|
+
this.usesFmt = true;
|
|
1185
|
+
}
|
|
1141
1186
|
lines.push("\t}");
|
|
1142
1187
|
lines.push("");
|
|
1143
1188
|
}
|
|
@@ -1274,6 +1319,9 @@ ${goFields.join(`
|
|
|
1274
1319
|
} else if (child.childrenHtml !== null) {
|
|
1275
1320
|
this.usesHtmlTemplate = true;
|
|
1276
1321
|
lines.push(` Children: template.HTML(${JSON.stringify(child.childrenHtml)}),`);
|
|
1322
|
+
} else if (child.childrenScopedHtmlExpr !== null) {
|
|
1323
|
+
this.usesHtmlTemplate = true;
|
|
1324
|
+
lines.push(` Children: template.HTML(${child.childrenScopedHtmlExpr}),`);
|
|
1277
1325
|
}
|
|
1278
1326
|
lines.push(` }),`);
|
|
1279
1327
|
}
|
|
@@ -1312,7 +1360,9 @@ ${goFields.join(`
|
|
|
1312
1360
|
result.push({
|
|
1313
1361
|
...loop.childComponent,
|
|
1314
1362
|
isDynamic: !loop.isStaticArray,
|
|
1315
|
-
isPropDerived: !!loop.isPropDerivedArray
|
|
1363
|
+
isPropDerived: !!loop.isPropDerivedArray,
|
|
1364
|
+
loopKey: loop.key ?? undefined,
|
|
1365
|
+
loopParam: loop.param ?? undefined
|
|
1316
1366
|
});
|
|
1317
1367
|
}
|
|
1318
1368
|
}
|
|
@@ -1353,6 +1403,13 @@ ${goFields.join(`
|
|
|
1353
1403
|
}
|
|
1354
1404
|
return out;
|
|
1355
1405
|
}
|
|
1406
|
+
jsxChildrenPropNodes(props) {
|
|
1407
|
+
for (const p of props) {
|
|
1408
|
+
if (p.value.kind === "jsx-children")
|
|
1409
|
+
return p.value.children;
|
|
1410
|
+
}
|
|
1411
|
+
return [];
|
|
1412
|
+
}
|
|
1356
1413
|
extractHtmlChildren(children) {
|
|
1357
1414
|
if (children.length === 0)
|
|
1358
1415
|
return null;
|
|
@@ -1363,6 +1420,20 @@ ${goFields.join(`
|
|
|
1363
1420
|
return null;
|
|
1364
1421
|
return html;
|
|
1365
1422
|
}
|
|
1423
|
+
extractScopedHtmlChildren(children) {
|
|
1424
|
+
if (children.length === 0)
|
|
1425
|
+
return null;
|
|
1426
|
+
if (children.every((c) => c.type === "text"))
|
|
1427
|
+
return null;
|
|
1428
|
+
const html = this.renderChildren(children);
|
|
1429
|
+
const marker = this.renderScopeMarker(".ScopeID");
|
|
1430
|
+
const withSentinel = html.split(marker).join(`bf-s="${GoTemplateAdapter.SCOPE_SENTINEL}"`);
|
|
1431
|
+
if (!withSentinel.includes(GoTemplateAdapter.SCOPE_SENTINEL))
|
|
1432
|
+
return null;
|
|
1433
|
+
if (withSentinel.includes("{{"))
|
|
1434
|
+
return null;
|
|
1435
|
+
return withSentinel.split(GoTemplateAdapter.SCOPE_SENTINEL).map((seg) => JSON.stringify(seg)).join(" + scopeID + ");
|
|
1436
|
+
}
|
|
1366
1437
|
collectStaticChildInstancesRecursive(node, result, inLoop, providerCtx) {
|
|
1367
1438
|
if (node.type === "component") {
|
|
1368
1439
|
const comp = node;
|
|
@@ -1374,13 +1445,15 @@ ${goFields.join(`
|
|
|
1374
1445
|
}
|
|
1375
1446
|
if (comp.name !== "Portal" && !inLoop && comp.slotId) {
|
|
1376
1447
|
const suffix = slotIdToFieldSuffix(comp.slotId);
|
|
1448
|
+
const effectiveChildren = comp.children.length > 0 ? comp.children : this.jsxChildrenPropNodes(comp.props);
|
|
1377
1449
|
result.push({
|
|
1378
1450
|
name: comp.name,
|
|
1379
1451
|
slotId: comp.slotId,
|
|
1380
1452
|
props: comp.props,
|
|
1381
1453
|
fieldName: `${comp.name}${suffix}`,
|
|
1382
|
-
childrenText: this.extractTextChildren(
|
|
1383
|
-
childrenHtml: this.extractHtmlChildren(
|
|
1454
|
+
childrenText: this.extractTextChildren(effectiveChildren),
|
|
1455
|
+
childrenHtml: this.extractHtmlChildren(effectiveChildren),
|
|
1456
|
+
childrenScopedHtmlExpr: this.extractScopedHtmlChildren(effectiveChildren),
|
|
1384
1457
|
contextBindings: providerCtx.size > 0 ? providerCtx : undefined
|
|
1385
1458
|
});
|
|
1386
1459
|
}
|
|
@@ -2493,6 +2566,9 @@ ${goFields.join(`
|
|
|
2493
2566
|
if (element.needsScope) {
|
|
2494
2567
|
hydrationAttrs += ` ${this.renderScopeMarker(".ScopeID")}`;
|
|
2495
2568
|
}
|
|
2569
|
+
if (this.rootScopeNodes.has(element) && element.needsScope) {
|
|
2570
|
+
hydrationAttrs += `{{if .BfDataKey}} data-key="{{.BfDataKey}}"{{end}}`;
|
|
2571
|
+
}
|
|
2496
2572
|
if (element.slotId) {
|
|
2497
2573
|
hydrationAttrs += ` ${this.renderSlotMarker(element.slotId)}`;
|
|
2498
2574
|
}
|
|
@@ -4026,12 +4102,20 @@ function combineGoTypes(options) {
|
|
|
4026
4102
|
if (transformTypes) {
|
|
4027
4103
|
combinedContent = transformTypes(combinedContent);
|
|
4028
4104
|
}
|
|
4105
|
+
const usageScan = combinedContent + `
|
|
4106
|
+
` + (manualTypes ?? "");
|
|
4107
|
+
const stdlibImports = [` "math/rand"`];
|
|
4108
|
+
if (/\bfmt\./.test(usageScan))
|
|
4109
|
+
stdlibImports.push(` "fmt"`);
|
|
4110
|
+
if (/\btemplate\.HTML\b/.test(usageScan))
|
|
4111
|
+
stdlibImports.push(` "html/template"`);
|
|
4112
|
+
stdlibImports.sort();
|
|
4029
4113
|
const parts = [
|
|
4030
4114
|
`// Code generated by BarefootJS. DO NOT EDIT.`,
|
|
4031
4115
|
`package ${packageName}`,
|
|
4032
4116
|
"",
|
|
4033
4117
|
`import (`,
|
|
4034
|
-
|
|
4118
|
+
...stdlibImports,
|
|
4035
4119
|
"",
|
|
4036
4120
|
` bf "github.com/barefootjs/runtime/bf"`,
|
|
4037
4121
|
`)`,
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generates Go html/template files from BarefootJS IR.
|
|
5
5
|
*/
|
|
6
|
-
export { GoTemplateAdapter, goTemplateAdapter } from './adapter';
|
|
7
|
-
export type { GoTemplateAdapterOptions } from './adapter';
|
|
6
|
+
export { GoTemplateAdapter, goTemplateAdapter } from './adapter/index.ts';
|
|
7
|
+
export type { GoTemplateAdapterOptions } from './adapter/index.ts';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACzE,YAAY,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -69,6 +69,42 @@ function capitalize(s) {
|
|
|
69
69
|
}
|
|
70
70
|
return s[0].toUpperCase() + s.slice(1);
|
|
71
71
|
}
|
|
72
|
+
function loopKeyToGoFieldPath(key, param) {
|
|
73
|
+
if (!key || !param)
|
|
74
|
+
return null;
|
|
75
|
+
const segs = key.split(".");
|
|
76
|
+
if (segs[0] !== param)
|
|
77
|
+
return null;
|
|
78
|
+
const rest = segs.slice(1);
|
|
79
|
+
if (rest.length === 0)
|
|
80
|
+
return null;
|
|
81
|
+
if (!rest.every((s) => /^[A-Za-z_]\w*$/.test(s)))
|
|
82
|
+
return null;
|
|
83
|
+
return "item." + rest.map(capitalize).join(".");
|
|
84
|
+
}
|
|
85
|
+
function collectRootScopeNodes(node) {
|
|
86
|
+
const out = new Set;
|
|
87
|
+
const visit = (n) => {
|
|
88
|
+
if (!n)
|
|
89
|
+
return;
|
|
90
|
+
if (n.type === "element") {
|
|
91
|
+
out.add(n);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (n.type === "if-statement") {
|
|
95
|
+
const s = n;
|
|
96
|
+
visit(s.consequent);
|
|
97
|
+
visit(s.alternate);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (n.type === "fragment") {
|
|
101
|
+
for (const c of n.children)
|
|
102
|
+
visit(c);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
visit(node);
|
|
106
|
+
return out;
|
|
107
|
+
}
|
|
72
108
|
function slotIdToFieldSuffix(slotId) {
|
|
73
109
|
const cleanId = slotId.startsWith("^") ? slotId.slice(1) : slotId;
|
|
74
110
|
const match = cleanId.match(/^s(\d+)$/);
|
|
@@ -101,6 +137,7 @@ var GO_TEMPLATE_PRIMITIVES = {
|
|
|
101
137
|
class GoTemplateAdapter extends BaseAdapter {
|
|
102
138
|
name = "go-template";
|
|
103
139
|
extension = ".tmpl";
|
|
140
|
+
static SCOPE_SENTINEL = "__BF_SCOPE_SENTINEL__";
|
|
104
141
|
importMapInjection = "html-snippet";
|
|
105
142
|
filterExprDepth = 0;
|
|
106
143
|
filterExprUnsupported = false;
|
|
@@ -120,6 +157,7 @@ class GoTemplateAdapter extends BaseAdapter {
|
|
|
120
157
|
localStructFields = new Map;
|
|
121
158
|
synthStructTypes = new Map;
|
|
122
159
|
usesHtmlTemplate = false;
|
|
160
|
+
rootScopeNodes = new Set;
|
|
123
161
|
usesFmt = false;
|
|
124
162
|
childComponentShapes = new Map;
|
|
125
163
|
moduleStringConsts = new Map;
|
|
@@ -152,6 +190,7 @@ class GoTemplateAdapter extends BaseAdapter {
|
|
|
152
190
|
const hasInteractivity = this.hasClientInteractivity(ir);
|
|
153
191
|
const isRootComponent = ir.root.type === "component";
|
|
154
192
|
const isIfStatement = ir.root.type === "if-statement";
|
|
193
|
+
this.rootScopeNodes = collectRootScopeNodes(ir.root);
|
|
155
194
|
const templateBody = isIfStatement ? this.renderIfStatement(ir.root, { isRootOfClientComponent: hasInteractivity }) : this.renderNode(ir.root, { isRootOfClientComponent: hasInteractivity && isRootComponent });
|
|
156
195
|
const scriptRegistrations = options?.skipScriptRegistration ? "" : this.generateScriptRegistrations(ir, options?.scriptBaseName);
|
|
157
196
|
const template = `{{define "${this.componentName}"}}
|
|
@@ -683,6 +722,7 @@ ${goFields.join(`
|
|
|
683
722
|
lines.push('\tBfIsChild bool `json:"-"`');
|
|
684
723
|
lines.push('\tBfParent string `json:"-"`');
|
|
685
724
|
lines.push('\tBfMount string `json:"-"`');
|
|
725
|
+
lines.push('\tBfDataKey string `json:"-"`');
|
|
686
726
|
lines.push('\tScripts *bf.ScriptCollector `json:"-"`');
|
|
687
727
|
const nestedArrayFields = new Set(nestedComponents.map((n) => `${n.name}s`));
|
|
688
728
|
const propFieldNames = new Set;
|
|
@@ -798,6 +838,11 @@ ${goFields.join(`
|
|
|
798
838
|
lines.push(` ${varName}[i] = New${nested.name}Props(item)`);
|
|
799
839
|
lines.push(` ${varName}[i].BfParent = scopeID`);
|
|
800
840
|
lines.push(` ${varName}[i].BfMount = "${nested.slotId}"`);
|
|
841
|
+
const keyField = loopKeyToGoFieldPath(nested.loopKey, nested.loopParam);
|
|
842
|
+
if (keyField) {
|
|
843
|
+
lines.push(` ${varName}[i].BfDataKey = fmt.Sprint(${keyField})`);
|
|
844
|
+
this.usesFmt = true;
|
|
845
|
+
}
|
|
801
846
|
lines.push("\t}");
|
|
802
847
|
lines.push("");
|
|
803
848
|
}
|
|
@@ -934,6 +979,9 @@ ${goFields.join(`
|
|
|
934
979
|
} else if (child.childrenHtml !== null) {
|
|
935
980
|
this.usesHtmlTemplate = true;
|
|
936
981
|
lines.push(` Children: template.HTML(${JSON.stringify(child.childrenHtml)}),`);
|
|
982
|
+
} else if (child.childrenScopedHtmlExpr !== null) {
|
|
983
|
+
this.usesHtmlTemplate = true;
|
|
984
|
+
lines.push(` Children: template.HTML(${child.childrenScopedHtmlExpr}),`);
|
|
937
985
|
}
|
|
938
986
|
lines.push(` }),`);
|
|
939
987
|
}
|
|
@@ -972,7 +1020,9 @@ ${goFields.join(`
|
|
|
972
1020
|
result.push({
|
|
973
1021
|
...loop.childComponent,
|
|
974
1022
|
isDynamic: !loop.isStaticArray,
|
|
975
|
-
isPropDerived: !!loop.isPropDerivedArray
|
|
1023
|
+
isPropDerived: !!loop.isPropDerivedArray,
|
|
1024
|
+
loopKey: loop.key ?? undefined,
|
|
1025
|
+
loopParam: loop.param ?? undefined
|
|
976
1026
|
});
|
|
977
1027
|
}
|
|
978
1028
|
}
|
|
@@ -1013,6 +1063,13 @@ ${goFields.join(`
|
|
|
1013
1063
|
}
|
|
1014
1064
|
return out;
|
|
1015
1065
|
}
|
|
1066
|
+
jsxChildrenPropNodes(props) {
|
|
1067
|
+
for (const p of props) {
|
|
1068
|
+
if (p.value.kind === "jsx-children")
|
|
1069
|
+
return p.value.children;
|
|
1070
|
+
}
|
|
1071
|
+
return [];
|
|
1072
|
+
}
|
|
1016
1073
|
extractHtmlChildren(children) {
|
|
1017
1074
|
if (children.length === 0)
|
|
1018
1075
|
return null;
|
|
@@ -1023,6 +1080,20 @@ ${goFields.join(`
|
|
|
1023
1080
|
return null;
|
|
1024
1081
|
return html;
|
|
1025
1082
|
}
|
|
1083
|
+
extractScopedHtmlChildren(children) {
|
|
1084
|
+
if (children.length === 0)
|
|
1085
|
+
return null;
|
|
1086
|
+
if (children.every((c) => c.type === "text"))
|
|
1087
|
+
return null;
|
|
1088
|
+
const html = this.renderChildren(children);
|
|
1089
|
+
const marker = this.renderScopeMarker(".ScopeID");
|
|
1090
|
+
const withSentinel = html.split(marker).join(`bf-s="${GoTemplateAdapter.SCOPE_SENTINEL}"`);
|
|
1091
|
+
if (!withSentinel.includes(GoTemplateAdapter.SCOPE_SENTINEL))
|
|
1092
|
+
return null;
|
|
1093
|
+
if (withSentinel.includes("{{"))
|
|
1094
|
+
return null;
|
|
1095
|
+
return withSentinel.split(GoTemplateAdapter.SCOPE_SENTINEL).map((seg) => JSON.stringify(seg)).join(" + scopeID + ");
|
|
1096
|
+
}
|
|
1026
1097
|
collectStaticChildInstancesRecursive(node, result, inLoop, providerCtx) {
|
|
1027
1098
|
if (node.type === "component") {
|
|
1028
1099
|
const comp = node;
|
|
@@ -1034,13 +1105,15 @@ ${goFields.join(`
|
|
|
1034
1105
|
}
|
|
1035
1106
|
if (comp.name !== "Portal" && !inLoop && comp.slotId) {
|
|
1036
1107
|
const suffix = slotIdToFieldSuffix(comp.slotId);
|
|
1108
|
+
const effectiveChildren = comp.children.length > 0 ? comp.children : this.jsxChildrenPropNodes(comp.props);
|
|
1037
1109
|
result.push({
|
|
1038
1110
|
name: comp.name,
|
|
1039
1111
|
slotId: comp.slotId,
|
|
1040
1112
|
props: comp.props,
|
|
1041
1113
|
fieldName: `${comp.name}${suffix}`,
|
|
1042
|
-
childrenText: this.extractTextChildren(
|
|
1043
|
-
childrenHtml: this.extractHtmlChildren(
|
|
1114
|
+
childrenText: this.extractTextChildren(effectiveChildren),
|
|
1115
|
+
childrenHtml: this.extractHtmlChildren(effectiveChildren),
|
|
1116
|
+
childrenScopedHtmlExpr: this.extractScopedHtmlChildren(effectiveChildren),
|
|
1044
1117
|
contextBindings: providerCtx.size > 0 ? providerCtx : undefined
|
|
1045
1118
|
});
|
|
1046
1119
|
}
|
|
@@ -2153,6 +2226,9 @@ ${goFields.join(`
|
|
|
2153
2226
|
if (element.needsScope) {
|
|
2154
2227
|
hydrationAttrs += ` ${this.renderScopeMarker(".ScopeID")}`;
|
|
2155
2228
|
}
|
|
2229
|
+
if (this.rootScopeNodes.has(element) && element.needsScope) {
|
|
2230
|
+
hydrationAttrs += `{{if .BfDataKey}} data-key="{{.BfDataKey}}"{{end}}`;
|
|
2231
|
+
}
|
|
2156
2232
|
if (element.slotId) {
|
|
2157
2233
|
hydrationAttrs += ` ${this.renderSlotMarker(element.slotId)}`;
|
|
2158
2234
|
}
|