Skip to content

chore: scaffold project tooling and CI#1

Merged
Apetuezekiel merged 1 commit into
mainfrom
chore/scaffold
May 16, 2026
Merged

chore: scaffold project tooling and CI#1
Apetuezekiel merged 1 commit into
mainfrom
chore/scaffold

Conversation

@Apetuezekiel

Copy link
Copy Markdown
Owner

What

Sets up the complete project skeleton for tiergraph — a zero-runtime-dependency TypeScript library for SaaS tier-based feature gating.

Files added:

  • package.json — name tiergraph, version 0.0.0, MIT, ESM+CJS dual exports (import/require conditions), files field restricting publish to dist/, schema/, README.md, LICENSE
  • tsconfig.json — strict, ES2022 target, NodeNext module resolution, exactOptionalPropertyTypes, noUncheckedIndexedAccess
  • tsup.config.ts — dual ESM+CJS format, dts, sourcemaps, treeshake, no splitting
  • vitest.config.ts — 100% coverage thresholds on src/ via v8 provider
  • biome.json — recommended ruleset, tab indentation, single quotes, trailing commas
  • .github/workflows/ci.yml — lint → typecheck → test → build on Node 18 and 20, triggers on push and PR
  • README.md — stub (one paragraph, "under construction")
  • src/index.ts — empty export so build doesn't fail
  • src/index.test.ts — placeholder test that imports the module (satisfies coverage threshold on the stub)

Why

Establishes the tooling baseline required by the v1 scope: TypeScript strict mode, tsup for dual publish, vitest for 100% coverage enforcement, biome for lint/format, and GitHub Actions CI. Every subsequent PR builds on top of this foundation.

How to verify

npm install
npm run lint       # biome: no errors
npm run typecheck  # tsc --noEmit: clean
npm run test       # vitest: 1 test passing, coverage thresholds met
npm run build      # tsup: dist/index.js, dist/index.cjs, dist/index.d.ts emitted

Out of scope

  • No source logic yet (defineConfig, createAccess, error classes) — those are PR 2 and PR 3
  • No JSON Schema generation — that is PR 4
  • Full README — that is PR 5

@Apetuezekiel Apetuezekiel merged commit 05de7d0 into main May 16, 2026
5 checks passed
@Apetuezekiel Apetuezekiel deleted the chore/scaffold branch May 16, 2026 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant