jeswr / jeswr/build-logic-statement-ts

Triage: open issues, planned fixes & performance findings

Open
#232 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Full pass over the open issues on this repo, with draft PRs opened for everything code-tractable.

| Issue | Title | Category | Addressed-by-PR |
|---|---|---|---|
| #10 | feature: add empty statement builder | fixed-in-this-wave | #229 (`EmptyBuilder` for the `EmptyStatement` type; issue body was empty so the intended semantics are inferred — flagged in the PR) |
| #12 | fix: export all types | fixed-in-this-wave | #228 (re-exports the statement types + `LogicalStatementType` from the package index) |
| #176 | The automated release is failing 🚨 | needs-your-decision | — (semantic-release reports an invalid `NPM_TOKEN`; only you can rotate the repo secret) |

Additional draft PRs from this pass (no pre-existing issue):

- #230 — `package.json` `types` field pointed at `dist/index.d.js` (never emitted) instead of `dist/index.d.ts`.
- #231 — chore: `__tests__/xone-test .ts` stray space in filename, README example uses an undeclared `builder` variable, README license link points at `jeswr/useState`.

## Performance findings

No perf PR is warranted. The library is a thin builder with no parsing loops, regexes, IO or O(n²) scans; the only hot path is the recursive `build()` tree walk, which is allocation-bound. Microbenchmark on a ~4.7k-node tree: ~3.2 ms per full `build()` (~0.7 µs/node) on a small shared 2-core box (noisy, order-of-magnitude only). The five per-node child arrays are always allocated even when empty; sharing frozen empties would save allocations but changes mutability semantics of the returned objects for marginal gain — not recommended.

## Needs your decision

- **#176 / releases:** the `NPM_TOKEN` secret is invalid, so nothing merged here (including #228–#231) can publish until you rotate the token on npm and update the repo secret.
- **Dependabot backlog (#215–#217, #219, #220, #227):** six open dep-bump PRs, several security-motivated (braces, tough-cookie, @babel/traverse, ws). The eslint 7→9 bump (#227) will likely need config migration (`.eslintrc.json` → flat config) — worth deciding whether to take it or pin.
- **Toolchain age:** jest 26 / ts-jest 26 / TypeScript 4.1 still install and pass on Node 22, but a coordinated devDependency refresh may be preferable to piecemeal dependabot merges.

Review timing: prepared with Claude; @jeswr will personally review before it progresses — expect active review Wed-Fri.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the issue table and draft PRs #228–#231, then inspect #176 and the Dependabot backlog (#215–#217, #219, #220, #227). This is a coordination and review pass rather than a self-contained change; the work is done when the listed PRs and release, dependency, and toolchain decisions have been reviewed by the maintainer.

Written by the indexing model from the issue text.

Assessment

Tech stack
eslint, typescript
Domain
build-system, devtools, release
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.