@barefootjs/hono 0.1.2 → 0.2.0
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/hono-adapter.d.ts.map +1 -1
- package/dist/adapter/index.js +13 -3
- package/dist/build.js +13 -3
- package/dist/index.js +13 -3
- package/package.json +4 -4
- package/src/adapter/hono-adapter.ts +18 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hono-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/hono-adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hono-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/hono-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,MAAM,EAIX,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAElB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,UAAU,EAEf,UAAU,EAMX,MAAM,iBAAiB,CAAA;AAExB;;;;;GAKG;AACH,KAAK,aAAa,GAAG;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAGD,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAuBD,qBAAa,WAAY,SAAQ,UAAW,YAAW,aAAa,CAAC,aAAa,CAAC;IACjF,IAAI,SAAS;IACb,SAAS,SAAS;IAClB,gBAAgB,SAAiC;IAmBjD,mBAAmB,QAAO,OAAO,CAAQ;IAEzC,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAA0B;IAE/D,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,sBAAsB,CAAiB;IAC/C,OAAO,CAAC,wBAAwB,CAAiB;IACjD;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB,CAAC,CAAgC;IAC9D,uFAAuF;IACvF,OAAO,CAAC,YAAY,CAAmD;IAEvE,YAAY,OAAO,GAAE,kBAAuB,EAQ3C;IAED,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,aAAa,CAyCzE;IAED,OAAO,CAAC,kCAAkC;IAkB1C,OAAO,CAAC,eAAe;IAyDvB,aAAa,CAAC,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA+EpE;IAED,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;IAmNzB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,MAAM,CAEpD;IAMD,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,MAAM,CAEzF;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,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,MAAM,CAElG;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,MAAM,CAEpF;IAED,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,MAAM,CAE7F;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,MAAM,CAE5F;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9B;IAED,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,MAAM,CAKnG;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,MAAM,CAwB5F;IAED,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,MAAM,CAEtF;IAED,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAwC5E;IAED,OAAO,CAAC,UAAU;IAIlB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAgB3C;IAED,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA0B7C;IAED,OAAO,CAAC,kBAAkB;IA2B1B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiF/B;IAED,OAAO,CAAC,oBAAoB;IAI5B;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE;QAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CA4C5F;IAED,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAIjC;IAED,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE;QAAE,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAiDxI;IAED,OAAO,CAAC,cAAc;IAQtB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAmBlC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAepC;IAED,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,0BAA0B;CAwBnC;AAGD,eAAO,MAAM,WAAW,aAAoB,CAAA"}
|
package/dist/adapter/index.js
CHANGED
|
@@ -447,14 +447,24 @@ export default ${this.componentName}` : "";
|
|
|
447
447
|
if (loop.bodyIsMultiRoot) {
|
|
448
448
|
safeChildren = `<>{bfComment('bf-loop-i')}${children}</>`;
|
|
449
449
|
}
|
|
450
|
-
|
|
450
|
+
let chainedArray = applyHonoLoopChain(loop);
|
|
451
451
|
const iterMethod = loop.method ?? "map";
|
|
452
|
+
let callbackParam;
|
|
453
|
+
if (loop.iterationShape === "entries" && loop.index) {
|
|
454
|
+
chainedArray = `[...${chainedArray}.entries()]`;
|
|
455
|
+
callbackParam = `([${loop.index}${indexAnnotation}, ${loop.param}${paramAnnotation}])`;
|
|
456
|
+
} else if (loop.iterationShape === "keys") {
|
|
457
|
+
chainedArray = `[...${chainedArray}.keys()]`;
|
|
458
|
+
callbackParam = `(${loop.param}${paramAnnotation})`;
|
|
459
|
+
} else {
|
|
460
|
+
callbackParam = `(${loop.param}${paramAnnotation}${indexParam})`;
|
|
461
|
+
}
|
|
452
462
|
if (loop.flatMapCallback) {
|
|
453
463
|
mapExpr = `{${chainedArray}.flatMap(${loop.flatMapCallback.params} => ${loop.flatMapCallback.rawBody})}`;
|
|
454
464
|
} else if (preamble) {
|
|
455
|
-
mapExpr = `{${chainedArray}.${iterMethod}(
|
|
465
|
+
mapExpr = `{${chainedArray}.${iterMethod}(${callbackParam} => { ${preamble} return ${safeChildren} })}`;
|
|
456
466
|
} else {
|
|
457
|
-
mapExpr = `{${chainedArray}.${iterMethod}(
|
|
467
|
+
mapExpr = `{${chainedArray}.${iterMethod}(${callbackParam} => ${safeChildren})}`;
|
|
458
468
|
}
|
|
459
469
|
return `{bfComment('loop:${loop.markerId}')}${mapExpr}{bfComment('/loop:${loop.markerId}')}`;
|
|
460
470
|
}
|
package/dist/build.js
CHANGED
|
@@ -447,14 +447,24 @@ export default ${this.componentName}` : "";
|
|
|
447
447
|
if (loop.bodyIsMultiRoot) {
|
|
448
448
|
safeChildren = `<>{bfComment('bf-loop-i')}${children}</>`;
|
|
449
449
|
}
|
|
450
|
-
|
|
450
|
+
let chainedArray = applyHonoLoopChain(loop);
|
|
451
451
|
const iterMethod = loop.method ?? "map";
|
|
452
|
+
let callbackParam;
|
|
453
|
+
if (loop.iterationShape === "entries" && loop.index) {
|
|
454
|
+
chainedArray = `[...${chainedArray}.entries()]`;
|
|
455
|
+
callbackParam = `([${loop.index}${indexAnnotation}, ${loop.param}${paramAnnotation}])`;
|
|
456
|
+
} else if (loop.iterationShape === "keys") {
|
|
457
|
+
chainedArray = `[...${chainedArray}.keys()]`;
|
|
458
|
+
callbackParam = `(${loop.param}${paramAnnotation})`;
|
|
459
|
+
} else {
|
|
460
|
+
callbackParam = `(${loop.param}${paramAnnotation}${indexParam})`;
|
|
461
|
+
}
|
|
452
462
|
if (loop.flatMapCallback) {
|
|
453
463
|
mapExpr = `{${chainedArray}.flatMap(${loop.flatMapCallback.params} => ${loop.flatMapCallback.rawBody})}`;
|
|
454
464
|
} else if (preamble) {
|
|
455
|
-
mapExpr = `{${chainedArray}.${iterMethod}(
|
|
465
|
+
mapExpr = `{${chainedArray}.${iterMethod}(${callbackParam} => { ${preamble} return ${safeChildren} })}`;
|
|
456
466
|
} else {
|
|
457
|
-
mapExpr = `{${chainedArray}.${iterMethod}(
|
|
467
|
+
mapExpr = `{${chainedArray}.${iterMethod}(${callbackParam} => ${safeChildren})}`;
|
|
458
468
|
}
|
|
459
469
|
return `{bfComment('loop:${loop.markerId}')}${mapExpr}{bfComment('/loop:${loop.markerId}')}`;
|
|
460
470
|
}
|
package/dist/index.js
CHANGED
|
@@ -447,14 +447,24 @@ export default ${this.componentName}` : "";
|
|
|
447
447
|
if (loop.bodyIsMultiRoot) {
|
|
448
448
|
safeChildren = `<>{bfComment('bf-loop-i')}${children}</>`;
|
|
449
449
|
}
|
|
450
|
-
|
|
450
|
+
let chainedArray = applyHonoLoopChain(loop);
|
|
451
451
|
const iterMethod = loop.method ?? "map";
|
|
452
|
+
let callbackParam;
|
|
453
|
+
if (loop.iterationShape === "entries" && loop.index) {
|
|
454
|
+
chainedArray = `[...${chainedArray}.entries()]`;
|
|
455
|
+
callbackParam = `([${loop.index}${indexAnnotation}, ${loop.param}${paramAnnotation}])`;
|
|
456
|
+
} else if (loop.iterationShape === "keys") {
|
|
457
|
+
chainedArray = `[...${chainedArray}.keys()]`;
|
|
458
|
+
callbackParam = `(${loop.param}${paramAnnotation})`;
|
|
459
|
+
} else {
|
|
460
|
+
callbackParam = `(${loop.param}${paramAnnotation}${indexParam})`;
|
|
461
|
+
}
|
|
452
462
|
if (loop.flatMapCallback) {
|
|
453
463
|
mapExpr = `{${chainedArray}.flatMap(${loop.flatMapCallback.params} => ${loop.flatMapCallback.rawBody})}`;
|
|
454
464
|
} else if (preamble) {
|
|
455
|
-
mapExpr = `{${chainedArray}.${iterMethod}(
|
|
465
|
+
mapExpr = `{${chainedArray}.${iterMethod}(${callbackParam} => { ${preamble} return ${safeChildren} })}`;
|
|
456
466
|
} else {
|
|
457
|
-
mapExpr = `{${chainedArray}.${iterMethod}(
|
|
467
|
+
mapExpr = `{${chainedArray}.${iterMethod}(${callbackParam} => ${safeChildren})}`;
|
|
458
468
|
}
|
|
459
469
|
return `{bfComment('loop:${loop.markerId}')}${mapExpr}{bfComment('/loop:${loop.markerId}')}`;
|
|
460
470
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@barefootjs/hono",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Hono integration for BarefootJS",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -101,9 +101,9 @@
|
|
|
101
101
|
"directory": "packages/adapter-hono"
|
|
102
102
|
},
|
|
103
103
|
"peerDependencies": {
|
|
104
|
-
"@barefootjs/client": "0.
|
|
105
|
-
"@barefootjs/jsx": "0.
|
|
106
|
-
"@barefootjs/shared": "0.
|
|
104
|
+
"@barefootjs/client": "0.2.0",
|
|
105
|
+
"@barefootjs/jsx": "0.2.0",
|
|
106
|
+
"@barefootjs/shared": "0.2.0",
|
|
107
107
|
"hono": "^4.0.0"
|
|
108
108
|
},
|
|
109
109
|
"devDependencies": {
|
|
@@ -822,17 +822,32 @@ export class HonoAdapter extends JsxAdapter implements IRNodeEmitter<HonoRenderC
|
|
|
822
822
|
// for both SSR (runtime-eval) and CSR (template fallback).
|
|
823
823
|
// `.toSorted` (non-mutating) preserves shared prop arrays across
|
|
824
824
|
// renders — `.sort()` here would reorder `_p.items` in place.
|
|
825
|
-
|
|
825
|
+
let chainedArray = applyHonoLoopChain(loop)
|
|
826
826
|
const iterMethod = loop.method ?? 'map'
|
|
827
827
|
|
|
828
|
+
// Re-emit `.entries()` / `.keys()` / `.values()` for Hono's runtime
|
|
829
|
+
// JS evaluation. The IR stripped the iterator call and synthesised
|
|
830
|
+
// param/index, so we reconstruct proper JS: `[...arr.entries()]`
|
|
831
|
+
// (spread into an array so `.map()` works).
|
|
832
|
+
let callbackParam: string
|
|
833
|
+
if (loop.iterationShape === 'entries' && loop.index) {
|
|
834
|
+
chainedArray = `[...${chainedArray}.entries()]`
|
|
835
|
+
callbackParam = `([${loop.index}${indexAnnotation}, ${loop.param}${paramAnnotation}])`
|
|
836
|
+
} else if (loop.iterationShape === 'keys') {
|
|
837
|
+
chainedArray = `[...${chainedArray}.keys()]`
|
|
838
|
+
callbackParam = `(${loop.param}${paramAnnotation})`
|
|
839
|
+
} else {
|
|
840
|
+
callbackParam = `(${loop.param}${paramAnnotation}${indexParam})`
|
|
841
|
+
}
|
|
842
|
+
|
|
828
843
|
if (loop.flatMapCallback) {
|
|
829
844
|
// Complex flatMap: use the original raw callback body (preserves JSX
|
|
830
845
|
// for Hono's runtime JSX evaluation).
|
|
831
846
|
mapExpr = `{${chainedArray}.flatMap(${loop.flatMapCallback.params} => ${loop.flatMapCallback.rawBody})}`
|
|
832
847
|
} else if (preamble) {
|
|
833
|
-
mapExpr = `{${chainedArray}.${iterMethod}(
|
|
848
|
+
mapExpr = `{${chainedArray}.${iterMethod}(${callbackParam} => { ${preamble} return ${safeChildren} })}`
|
|
834
849
|
} else {
|
|
835
|
-
mapExpr = `{${chainedArray}.${iterMethod}(
|
|
850
|
+
mapExpr = `{${chainedArray}.${iterMethod}(${callbackParam} => ${safeChildren})}`
|
|
836
851
|
}
|
|
837
852
|
// Wrap with loop boundary markers so reconciliation doesn't affect siblings.
|
|
838
853
|
// bfComment('loop:<id>') → <!--bf-loop:<id>-->. The marker id is unique
|