feat(DEP0210,DEP0211): migrate SQLite class names to `Database` and `Statement`
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, sqlite, typescript
Direzione di ricerca
Start by reading the repository's existing codemods and their fixture/test conventions; the issue does not name specific files. Then trace how they resolve imports and update bound references before implementing the node:sqlite rename. Done means fixtures cover the listed import forms, aliases, collisions, shadowing, and re-exports, while unrelated identifiers remain unchanged and running the transform twice makes no further changes.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Node.js 26.11.0 renamed two public classes exported by node:sqlite:
DatabaseSyncbecameDatabase(DEP0210).StatementSyncbecameStatement(DEP0211).
The previous names remain available as documentation-deprecated aliases. The rename does not make the APIs asynchronous.
Add one codemod that migrates imports and references for both deprecated names. Support CommonJS destructuring and property access, ESM named and namespace imports, aliases, and statically resolvable dynamic imports.
Additional Information
- Target projects whose supported Node.js versions provide the replacement exports. The Node.js 26 baseline for this migration is 26.11.0.
- Resolve imports from
node:sqlite; do not rewrite unrelated identifiers with the same names or third-party SQLite packages. - Update constructor references,
instanceofchecks, namespace accesses, and TypeScript references tied to the imported binding where supported. Statementinstances are normally returned by database methods. Do not introduce anew Statement()call as part of this migration.- Preserve explicit local aliases. For example,
DatabaseSync as DBbecomesDatabase as DB. - If the replacement binding name conflicts with an existing variable, preserve a local alias rather than introducing a collision.
- Preserve public export names unless the user explicitly selects an API rename. Replacing an imported symbol must not silently rename an application's own exported API.
- Leave replacement names and unrelated SQLite APIs unchanged. The transform must be idempotent.
- Include fixtures for both classes, ESM/CJS imports, namespace access, aliases, binding collisions, shadowed identifiers, and re-export handling.
Examples
Named imports and local references:
-import { DatabaseSync, StatementSync } from 'node:sqlite';
+import { Database, Statement } from 'node:sqlite';
-const db = new DatabaseSync(':memory:');
+const db = new Database(':memory:');
const statement = db.prepare('SELECT 1');
-console.log(statement instanceof StatementSync);
+console.log(statement instanceof Statement);
Preserve an explicit alias:
-const { DatabaseSync: DB } = require('node:sqlite');
+const { Database: DB } = require('node:sqlite');
const db = new DB(':memory:');
Preserve an application's existing export name:
-export { DatabaseSync } from 'node:sqlite';
+export { Database as DatabaseSync } from 'node:sqlite';
Refs
- Lingua principale
- TypeScript
- Stelle
- 85
- Fork
- 58
- Merge medio
- 1g 21h
- PR unite (30g)
- 8
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di nodejs/userland-migrations
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
nodejs/userland-migrations#562 · 4 reazioni ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
nodejs/userland-migrations#561 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 2 giorni
-
good first issue human help wanted
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
nodejs/userland-migrations#559 ·
I maintainer di solito rispondono entro 2 giorni
-
good first issue human help wanted
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
nodejs/userland-migrations#558 ·
I maintainer di solito rispondono entro 2 giorni
-
good first issue human help wanted
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
nodejs/userland-migrations#557 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di nodejs/userland-migrations
Issue simili
-
needs-area
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/typespec-azure#5936 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
vercel-labs/scriptc#2910 ·
I maintainer di solito rispondono entro 1 giorno
-
automation missing-model model-sync provider:fireworks-ai
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
anomalyco/models.dev#12458 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno