From a84d41a38dc8d931c12f79bdda0d705de5e6aff1 Mon Sep 17 00:00:00 2001 From: Edward Irby Date: Sun, 27 Apr 2025 03:53:25 -0700 Subject: [PATCH] fix: upgrades to 7.2.0 to fix performance regressions --- frameworks/keyed/plaited/package-lock.json | 8 ++-- frameworks/keyed/plaited/package.json | 2 +- frameworks/keyed/plaited/src/main.tsx | 44 ++++++++++++---------- frameworks/keyed/plaited/tsconfig.json | 34 +++++++++++++---- 4 files changed, 55 insertions(+), 33 deletions(-) diff --git a/frameworks/keyed/plaited/package-lock.json b/frameworks/keyed/plaited/package-lock.json index dbf5291b9..4dddbb224 100644 --- a/frameworks/keyed/plaited/package-lock.json +++ b/frameworks/keyed/plaited/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "plaited": "7.1.1" + "plaited": "7.2.0" }, "devDependencies": { "esbuild": "0.25.2" @@ -478,9 +478,9 @@ } }, "node_modules/plaited": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/plaited/-/plaited-7.1.1.tgz", - "integrity": "sha512-ybbzEmZFY0PcJKBMsBPsuDobH/bTzUhfJfBarcIqioRAWd6e0s9X+ySV9OlPsK2m14AgXjIHukPOPQoanDQJ8Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/plaited/-/plaited-7.2.0.tgz", + "integrity": "sha512-I9bQYb7rCWC6gIPNSBwnpSuEsVXu7q7EC2468s5UZP/KQkqo+XnyC45c2SnXqyALD3c2buDv05pPjc6AssZcQg==", "license": "ISC", "engines": { "bun": ">= v1.2.9" diff --git a/frameworks/keyed/plaited/package.json b/frameworks/keyed/plaited/package.json index 271ab9458..6ec360a06 100644 --- a/frameworks/keyed/plaited/package.json +++ b/frameworks/keyed/plaited/package.json @@ -5,7 +5,7 @@ }, "type": "module", "dependencies": { - "plaited": "7.1.1" + "plaited": "7.2.0" }, "devDependencies": { "esbuild": "0.25.2" diff --git a/frameworks/keyed/plaited/src/main.tsx b/frameworks/keyed/plaited/src/main.tsx index 66b9ecdae..715c1cc3c 100644 --- a/frameworks/keyed/plaited/src/main.tsx +++ b/frameworks/keyed/plaited/src/main.tsx @@ -1,4 +1,4 @@ -import { FT, defineTemplate } from "plaited"; +import { type FT, defineElement, useTemplate } from "plaited"; let did = 1; const adjectives = [ @@ -104,36 +104,40 @@ const shadowDom = ( + ); - -const Row: FT = (data) => ( - - {data.id} - - {data.label} - - - - - - - - -); - -defineTemplate({ +defineElement({ tag: "js-benchmark", shadowDom, bProgram({ $ }) { let selected = -1; const [tbody] = $("tbody"); + const [template] = $("row-template"); + const cb = useTemplate(template, ($, data) => { + $("row")[0].attr("p-target", data.id); + $("id")[0].render(data.id); + $("label")[0].render(data.label); + }); return { add(evt: MouseEvent & { target: HTMLButtonElement }) { - tbody.insert("beforeend", ...buildData(parseInt(evt.target.value)).map(Row)); + tbody.insert("beforeend", ...buildData(parseInt(evt.target.value)).map(cb)); }, run(evt: MouseEvent & { target: HTMLButtonElement }) { - tbody.render(...buildData(parseInt(evt.target.value)).map(Row)); + tbody.render(...buildData(parseInt(evt.target.value)).map(cb)); }, clear() { tbody.replaceChildren(); diff --git a/frameworks/keyed/plaited/tsconfig.json b/frameworks/keyed/plaited/tsconfig.json index bf20bf8b1..0e1eeb8c1 100644 --- a/frameworks/keyed/plaited/tsconfig.json +++ b/frameworks/keyed/plaited/tsconfig.json @@ -1,10 +1,28 @@ { - "compilerOptions": { - "target": "ES2022", - "module": "NodeNext", + "compilerOptions": { + // Enable latest features + "lib": ["ESNext", "DOM", "dom.iterable"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", "jsx": "react-jsx", - "jsxImportSource": "plaited", - "moduleResolution": "nodenext", - "lib": ["dom", "es2022"] - } -} \ No newline at end of file + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false, + + "jsxImportSource": "plaited" + } +}