Todavía nuevo en el mundo de JavaScript, así que tengan paciencia conmigo...
Recibo un objeto del servidor que, por el bien de la discusión, tiene el siguiente aspecto:
{ "names": [ { "id": 99, "firstName": "John" }, { "id": 13, "firstName": "Andreas" } ], "people": [ { "id": 17, "nameId": 99, "age": 55 }, { "id": 15, "nameId": 13, "age": 16 } ] }Actualmente tengo un montón de métodos de utilidad que parecen
function getPerson(serverObject, personId) { return serverObject.people.find(({id}) => id === personId) } function getName(serverObject, nameId) { return serverObject.names.find(({id}) => id === nameId) } function getFirstNameOfPerson(serverObject, personId) { var person = getPerson(serverObject, personId) return getName(serverObject, person.nameId).firstName }En vez de
getFirstNameOfPerson(serverObject, getPerson(serverObject, 17))Me gustaría trabajar con serverObject de la siguiente manera:
serverObject.getPerson(17).getFirstName() Así que estoy pensando en adjuntar un montón de métodos al objeto del servidor cuando lo reciba del servidor, o crear una clase ServerObjectAccessor separada que envuelva el objeto del servidor y tenga un montón de métodos de acceso.
¿Es esta una práctica común? ¿Hay una mejor manera de hacerlo? ¿Debería usar prototipos para este tipo de cosas? Estoy usando Redux. ¿Sería apropiado envolver en el reductor y almacenar solo ServerObjectAccessor en el estado?
(En realidad estoy usando TypeScript si importa...)