loopbackio / loopbackio/loopback-next
Confusing @model() syntax
Personne n'a encore pris cette issue.
- Langage dominant
- TypeScript
- Étoiles
- 5.1k
- Forks
- 1.1k
- Merge moyen
- 2 j 21 h
- PR mergées (30 j)
- 27
Description
In LB3, users could specify model settings at two levels: as a root property or inside options property.
See https://stackoverflow.com/q/53307168/69868 for an example of LB3 syntax applied in an LB4 project:
@model({
settings: {strict: false},
name: 'client',
plural: 'clients',
options: {
mongodb: {
collection: 'clients',
},
},
})
export class Client extends Entity {
// ...
}
I am proposing to make two changes in LB4 to help users coming from LB3:
-
Recognize
optionsthe same way assettings. In the example above,mongodbsettings are not picked by LB4 now. With the proposed change in place, LB4 will setcollectiontoclientsas expected. Alternatively, tell the user settingoptionsthat they are trying to set an unsupported model-definition property. This can be done at compiler level too. -
Allow settings to be provided as top-level properties, for example:
@model({ name: 'client', strict: false, mongodb: { collection: 'clients', }, }) export class Client extends Entity { // ... }
Guide de contribution
Ouvrir 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.
Piste de recherche
Commencez par le décorateur @model() et suivez la manière dont LB4 lit les paramètres du modèle, en comparant ce comportement avec les exemples LB3 de l’issue. Déterminez si les options doivent être acceptées ou rejetées et si les paramètres de niveau supérieur doivent être pris en charge ; le travail est terminé lorsque le comportement choisi est implémenté et vérifié pour les exemples de Client.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- backend-api-design
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100