Skip to content

Add GitHub Actions Workflow for TypeScript Type-Check Across SDK, API, and Web #268

Description

@vjuliaife

Description:
Without a tsc --noEmit step in CI, TypeScript type errors in the SDK, Express API, or Next.js web app only surface at runtime or during manual developer builds. A dedicated type-check workflow ensures that any PR introducing type unsafety is blocked before merge, enforcing the type contract shared across all three TypeScript packages through tsconfig.base.json.

Acceptance Criteria:

  • Create .github/workflows/typecheck.yml that triggers on pull_request targeting main and on direct pushes to main
  • Workflow installs Node.js 20 via actions/setup-node and runs npm ci from the workspace root to install all package dependencies in one step
  • A typecheck job runs npx tsc --noEmit -p packages/sdk/tsconfig.json, npx tsc --noEmit -p apps/api/tsconfig.json, and npx tsc --noEmit -p apps/web/tsconfig.json as separate named steps so failure is attributable to a specific package
  • The workflow fails if any tsc invocation exits with a non-zero code and surfaces the compiler errors in the job log
  • npm package cache is restored using actions/cache keyed on package-lock.json hash to keep cold-start times under 90 seconds
  • tsconfig.base.json is validated to have "strict": true so the type-check gate is meaningful; the workflow step asserts this with a jq check
  • Add a badge in README.md linking to the type-check workflow status

Relevant Files:

  • .github/workflows/typecheck.yml — new workflow file to create
  • tsconfig.base.json — shared TypeScript base config extended by all packages
  • packages/sdk/tsconfig.json — SDK TypeScript config
  • apps/api/tsconfig.json — API TypeScript config
  • apps/web/tsconfig.json — web TypeScript config
  • package.json — npm workspace root

Metadata

Metadata

Assignees

No one assigned

    Labels

    Stellar WaveIssues in the Stellar wave programciAuto-created by repotool publish-folderdxDeveloper experience / docs / naming

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions