[Duplicate Code] Shared JSON-object validation helper
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
- Tipo di issue
- Refactoring
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- tooling
Direzione di ricerca
L'helper duplicato requireObject(value, label) compare in src/cloud-hypervisor/artifact-manifest.ts (righe 37-54) e in src/nvx/outcome.ts (righe 137-154). Confronta le due copie, quindi sposta una versione condivisa in un nuovo modulo di validazione comune e importala da entrambi i punti di chiamata. Il lavoro è completo quando resta una sola definizione, entrambi i file usano l'import e i test esistenti per questi moduli continuano a passare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Duplicate Code Opportunity
Summary
- Pattern: Two modules independently implement the same
requireObject(value, label)guard that checks for a non-null plain object and throws an identical error message. - Locations:
src/cloud-hypervisor/artifact-manifest.tslines 37-54;src/nvx/outcome.tslines 137-154. - Impact: This is a small but repeated validation helper in configuration/persistence code. A shared utility would centralize object-shape validation and keep error text consistent.
Evidence
src/cloud-hypervisor/artifact-manifest.ts: lines 37-54src/nvx/outcome.ts: lines 137-154
// src/cloud-hypervisor/artifact-manifest.ts
function requireObject(value: unknown, label: string): Record<string, unknown> {
if (!value || typeof value !== 'object' || Array.isArray(value)) {
throw new Error(`${label} must be a JSON object`);
// src/nvx/outcome.ts
function requireObject(value: unknown, label: string): Record<string, unknown> {
if (!value || typeof value !== 'object' || Array.isArray(value)) {
throw new Error(`${label} must be a JSON object`);
Suggested Refactoring
Extract a shared requireObject(...) helper into a common validation module and reuse it across both persistence/manifest parsers.
Affected Files
src/cloud-hypervisor/artifact-manifest.ts— lines 37-54src/nvx/outcome.ts— lines 137-154
Effort Estimate
Low
Detected by Duplicate Code Detector workflow. Run date: 2026-10-15
Generated by Duplicate Code Detector · copilot · gpt54mini · 3.44 AIC · ⊞ 29.7K · ◷
- expires on Nov 14, 2026, 9:51 PM UTC
- Lingua principale
- TypeScript
- Stelle
- 157
- Fork
- 80
- Merge medio
- 3h 44m
- PR unite (30g)
- 439
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 github/gh-aw-firewall
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
github/gh-aw-firewall#10778 ·
I maintainer di solito rispondono entro 1 giorno
-
agentic-workflows automated dependencies
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
github/gh-aw-firewall#3837 ·
I maintainer di solito rispondono entro 1 giorno
-
agentic-workflows
Difficoltà 4/5 1-2 giorni Idoneità per principianti 35/100
github/gh-aw-firewall#10793 ·
I maintainer di solito rispondono entro 1 giorno
-
agentic-workflows
Difficoltà 4/5 1-2 giorni Idoneità per principianti 35/100
github/gh-aw-firewall#10792 ·
I maintainer di solito rispondono entro 1 giorno
-
agentic-workflows
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
github/gh-aw-firewall#10788 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di github/gh-aw-firewall
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Graphify-Labs/graphify#4860 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
sveltejs/eslint-plugin-svelte#1615 ·
I maintainer di solito rispondono entro 7 giorni
-
Parallel reticle_verify opens per-flow leases without the source lease's ignoreHTTPSErrorsForse già presa @as992949791 l’ha presa oggi. Apertagood first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
reticlehq/reticle#2033 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno