loopbackio / loopbackio/loopback-next
Confusing @model() syntax
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 5.1k
- Forks
- 1.1k
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 27
Descripción
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 { // ... }
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza en el decorador @model() y sigue cómo LB4 lee la configuración del modelo, comparando ese comportamiento con los ejemplos de LB3 del issue. Determina si las opciones deben aceptarse o rechazarse y si se deben admitir configuraciones de nivel superior; se considera terminado cuando el comportamiento elegido está implementado y verificado para los ejemplos de Client.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- backend-api-design
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 25/100