port ujsx from Deno-only to cross-platform (Node/Bun/Deno)

Add npm project configuration (package.json, tsconfig.json, tsup, vitest)
matching the taskgraph_ts conventions. All source imports changed from .ts
to .js extensions for Node16 module resolution. Tests migrated from Deno.test
to vitest. Fixed strict type errors (noUncheckedIndexedAccess). Preserved
deno.json with sloppy-imports for dual Deno/Node compatibility.

Subpath exports: schema, h, reactive, context, events, pointer, host,
transform, jsx-runtime — plus barrel export at root.

Build: ESM + CJS dual output via tsup. 22 tests passing.
This commit is contained in:
2026-05-03 08:19:49 +00:00
parent b256fc7eb5
commit 3eb1f1d896
19 changed files with 4137 additions and 0 deletions

32
deno.json Normal file
View File

@@ -0,0 +1,32 @@
{
"name": "@alkdev/ujsx",
"version": "0.1.0",
"exports": {
".": "./src/mod.ts",
"./core": "./src/mod.ts",
"./schema": "./src/core/schema.ts",
"./h": "./src/core/h.ts",
"./reactive": "./src/core/reactive.ts",
"./context": "./src/core/context.ts",
"./events": "./src/core/events.ts",
"./pointer": "./src/core/pointer.ts",
"./host": "./src/host/config.ts",
"./transform": "./src/transform/registry.ts",
"./jsx-runtime": "./src/core/jsx-runtime.ts"
},
"tasks": {
"test": "npx vitest run",
"check": "deno check --sloppy-imports src/mod.ts"
},
"imports": {
"@alkdev/typebox": "npm:@alkdev/typebox",
"@alkdev/pubsub": "../../@alkdev/pubsub/src/index.ts",
"@preact/signals-core": "npm:@preact/signals-core",
"@std/assert": "jsr:@std/assert@1"
},
"compilerOptions": {
"jsx": "react-jsx",
"jsxImportSource": "@alkdev/ujsx"
},
"unstable": ["sloppy-imports"]
}