Mark the `typescript` peer dependency as optional

Ouverte Adaptée aux débutants
#2,364 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
json, typescript
Domaine
build-system

Piste de recherche

Examinez les manifestes des paquets @tanstack/db et des 14 autres paquets répertoriés dans l’issue. Commencez par vérifier leurs peerDependencies et les éventuelles entrées existantes dans peerDependenciesMeta. Marquez la dépendance peer de TypeScript comme facultative tout en conservant sa contrainte de version ; le travail est terminé lorsque les 15 manifestes comportent les métadonnées facultatives et que les utilisateurs de JavaScript n’ont plus à installer TypeScript comme dépendance peer obligatoire.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

  • I've validated the bug against the latest version of DB packages

Describe the bug

@tanstack/db declares "typescript": ">=4.7" in peerDependencies without a peerDependenciesMeta entry, so the peer is required. Fourteen other packages in this repo declare the same peer: db-ivm, query-db-collection, convex-db-collection, rxdb-db-collection, trailbase-db-collection, db-sqlite-persistence-core and the browser, Capacitor, Cloudflare Durable Objects, Electron, Expo, Node, React Native and Tauri SQLite persistence packages.

None of these packages import typescript, so the peer only states the minimum TypeScript version for the published types. Because it is required, npm, pnpm (with its default auto-install-peers) and Bun install TypeScript for every consumer, including JavaScript projects and projects that type-check with a different compiler.

To Reproduce

mkdir repro && cd repro && npm init -y
npm install @tanstack/db
npm ls typescript

npm ls typescript lists [email protected], pulled in by @tanstack/db and @tanstack/db-ivm. On macOS arm64, TypeScript and its native binary take about 30 MB of the 43 MB node_modules.

Expected behavior

Only projects that use TypeScript install it. Marking the peer as optional keeps the version requirement for them:

"peerDependenciesMeta": {
  "typescript": { "optional": true }
}

Additional context

The other TanStack libraries (@tanstack/query-core, @tanstack/router-core, @tanstack/form-core, @tanstack/store) declare no TypeScript peer. Happy to send a PR that adds peerDependenciesMeta to the 15 packages.

Langage dominant
TypeScript
Étoiles
4k
Forks
280
Merge moyen
1 j 10 h
PR mergées (30 j)
132

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de TanStack/db

Toutes les issues de TanStack/db

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.