есть API, с которого приходят данные в JSON, но в довольно упоротом формате. Я хочу в этом формате попереименовывать поля до адекватного состояния, распарсить даты в нужном формате, поработать с данными, а затем сконвертировать и отправить их обратно. Сейчас я пользуюсь для описания модели самописной штукой, которая собственно конвертированием и занимается. Генерируются соответствующие типы. Выглядит примерно вот так:
const AppealModel = object
.field('id', 'appealid', number())
.field('orgID', 'Appealorg_id', number())
.field('date', 'crd', date())
.field('serviceName', 'Service_Name', string())
const serializedAppeal: Serialized<typeof AppealModel> = {
appealid: 943,
Appealorg_id: 14,
crd: "2021-04-30 10:00:00",
Service_Name: "Починка",
}
AppealModel.parse(serializedAppeal)
/* =>
{
id: 0,
orgID: 0,
date: 2021-04-30T05:00:00.000Z,
serviceName: "Починка"
}
*/
Это же работает и в обратную сторону.
Собственно вопрос, есть ли альтернативы этому велосипеду? Я честно искал, но ничего не нашёл
У mobx был serializr
Там же нету вроде возможности переименовывать поля
А хотя есть, спасибо )
В Superstruct это удобно делается, плюс рантайм валидация будет
Тоже посмотрю, спасибо )
Извините, а как в нём переименовать поле? Не могу найти в документации
Custom coercion например
А, не
Обсуждают сегодня