feat(redis): add channel prefix and error handling

This commit is contained in:
2026-05-08 06:33:15 +00:00
parent 7c12b40ed2
commit 392682c7be
6 changed files with 258 additions and 28 deletions

View File

@@ -1,7 +1,7 @@
---
id: build-and-exports-validation
name: Validate build, package.json exports, and tsup config for all adapters
status: pending
status: completed
depends_on: []
scope: narrow
risk: low
@@ -38,8 +38,51 @@ This task validates the current setup and serves as a checklist item for each ad
## Notes
> To be filled by implementation agent
Validated all acceptance criteria. No changes were needed — the existing configuration is correct.
### Validation Results
1. **`npm run build` produces correct output** ✅
- `src/index.ts``dist/index.js` (ESM), `dist/index.cjs` (CJS), `dist/index.d.ts` + `dist/index.d.cts` (declarations)
- `src/event-target-redis.ts``dist/event-target-redis.js` (ESM), `dist/event-target-redis.cjs` (CJS), `dist/event-target-redis.d.ts` + `dist/event-target-redis.d.cts` (declarations)
- Code splitting enabled: shared chunk between entries (`chunk-JGLUDY7D.js` / `chunk-TBKAZXTS.cjs`)
- Verified both ESM dynamic import and CJS require work for both entry points
2. **`npm run lint` (tsc --noEmit) passes** ✅ — No errors
3. **`package.json` exports map has correct ESM/CJS/dts paths** ✅
- `"."` → import (d.ts + js) / require (d.cts + cjs)
- `"./event-target-redis"` → import (d.ts + js) / require (d.cts + cjs)
- All paths resolve to actual built files
4. **`tsup.config.ts` lists all current entry points** ✅
- `src/index.ts` and `src/event-target-redis.ts` both present
- `format: ['esm', 'cjs']`, `dts: true`, `splitting: true`, `target: 'es2022'`
5. **`src/index.ts` re-exports everything from all modules** ✅
- Exports from: `create_pubsub.js`, `types.js`, `operators.js`, `repeater.js`, `event-target-redis.js`
- All public API surface is accessible from barrel
6. **Peer dependencies and peerDependenciesMeta are correct**
- `ioredis@^5.0.0` as optional peer dep
- Future: `@rayhanadev/iroh` will follow same pattern when added
7. **No runtime dependencies**
- `dependencies: {}` is empty
- `@repeaterjs/repeater` is inlined in `src/repeater.ts`
### Verified type resolution
- `import { createRedisEventTarget } from '@alkdev/pubsub/event-target-redis'` — types resolve correctly
- `import { createPubSub, type EventEnvelope } from '@alkdev/pubsub'` — types resolve correctly
- Works with both `skipLibCheck: true` and `skipLibCheck: false`
### Verified package contents
- `npm pack --dry-run` shows 19 files (all dist files + package.json)
- `files: ["dist"]` correctly includes all build output
## Summary
> To be filled on completion
Validated build pipeline, package.json exports map, and tsup config for all adapters. All acceptance criteria pass with no changes required — the existing configuration is correct and consistent.
- Created: none
- Modified: none (validation-only task)
- Tests: 0 (no test files exist yet; `npm test` exits with "No test files found")