Refactor model transformers and test helpers to use payload interfaces instead of 'any'
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 42/100
- Type d'issue
- Refactorisation
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- typescript
- Domaine
- api
Piste de recherche
Aucun fichier ni test n’est nommé. Commencez par localiser les transformateurs de modèles et les helpers de test qui utilisent any, puis comparez l’approche payload-model de la pull request #107. C’est terminé lorsque les valeurs de payload concernées utilisent des interfaces explicites au lieu de any et que les tests existants continuent de passer.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Overview of the Feature Request
Refactor model transformers and test helpers to use payload interfaces instead of 'any'
Example
Use a payload model like:
export interface DatasetPreviewPayload {
global_id: string;
name: string;
versionId: number;
majorVersion: number;
minorVersion: number;
versionState: string;
createdAt: string;
updatedAt: string;
published_at?: string;
citation: string;
description: string;
}
export const transformDatasetPreviewsResponseToPreviews = (response: AxiosResponse): DatasetPreview[] => {
const datasetPreviews: DatasetPreview[] = [];
const datasetPreviewsPayload = response.data.data.items;
datasetPreviewsPayload.forEach(function (datasetPreviewPayload: DatasetPreviewPayload) {
datasetPreviews.push(transformDatasetPreviewPayloadToDatasetPreview(datasetPreviewPayload));
});
return datasetPreviews;
};
const transformDatasetPreviewPayloadToDatasetPreview = (
datasetPreviewPayload: DatasetPreviewPayload,
): DatasetPreview => {
return {
persistentId: datasetPreviewPayload.global_id,
title: datasetPreviewPayload.name,
versionId: datasetPreviewPayload.versionId,
versionInfo: {
majorNumber: datasetPreviewPayload.majorVersion,
minorNumber: datasetPreviewPayload.minorVersion,
state: datasetPreviewPayload.versionState as DatasetVersionState,
createTime: new Date(datasetPreviewPayload.createdAt),
lastUpdateTime: new Date(datasetPreviewPayload.updatedAt),
...(datasetPreviewPayload.published_at && { releaseTime: new Date(datasetPreviewPayload.published_at) }),
},
citation: datasetPreviewPayload.citation,
description: datasetPreviewPayload.description,
};
};
Instead of
export const transformDatasetPreviewsResponseToPreviews = (response: AxiosResponse): DatasetPreview[] => {
const datasetPreviews: DatasetPreview[] = [];
const datasetPreviewsPayload = response.data.data.items;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
datasetPreviewsPayload.forEach(function (datasetPreviewPayload: any) {
datasetPreviews.push(transformDatasetPreviewPayloadToDatasetPreview(datasetPreviewPayload));
});
return datasetPreviews;
};
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const transformDatasetPreviewPayloadToDatasetPreview = (datasetPreviewPayload: any): DatasetPreview => {
return {
persistentId: datasetPreviewPayload.global_id,
title: datasetPreviewPayload.name,
versionId: datasetPreviewPayload.versionId,
versionInfo: {
majorNumber: datasetPreviewPayload.majorVersion,
minorNumber: datasetPreviewPayload.minorVersion,
state: datasetPreviewPayload.versionState as DatasetVersionState,
createTime: new Date(datasetPreviewPayload.createdAt),
lastUpdateTime: new Date(datasetPreviewPayload.updatedAt),
...(datasetPreviewPayload.published_at && { releaseTime: new Date(datasetPreviewPayload.published_at) }),
},
citation: datasetPreviewPayload.citation,
description: datasetPreviewPayload.description,
};
};
What kind of user is the feature intended for?
Developer
What inspired the request?
What existing behavior do you want changed?
None
Any brand new behavior do you want to add to Dataverse?
None
Any open or closed issues related to this feature request?
- https://github.com/IQSS/dataverse-client-javascript/pull/107 (First time we introduce payload models to avoid 'any')
- Langage dominant
- TypeScript
- Étoiles
- 20
- Forks
- 11
- Merge moyen
- 4 j 9 h
- PR mergées (30 j)
- 3
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de IQSS/dataverse-client-javascript
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
IQSS/dataverse-client-javascript#477 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
IQSS/dataverse-client-javascript#476 · 4 commentaires ·
-
Missing dependency `p-limit`Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
IQSS/dataverse-client-javascript#465 · 1 commentaire · 2 réactions ·
-
GREI Re-arch
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
Add use cases for dataset curation status and submit for reviewPeut-être pris @ChengShi-1 l’a pris il y a 3 jours. OuverteFY27 Sprint 8 Size: 10 SPA
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
IQSS/dataverse-client-javascript#493 · 1 personne assignée ·
Toutes les issues de IQSS/dataverse-client-javascript
Issues similaires
-
area/frontend area/v2 kind/bug priority/needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
kubeflow/notebooks#1498 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
P1
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
SuruchBoss/Cwork#90 ·
-
bug cli service
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
521xueweihan/HelloGitHub#3922 ·