Правда, есть и минус в таком подходе. В особенности касается и safeFetch из данного поста. По запаре можешь начать прокидывать необработанный объект с ok, data/error в функцию в качестве аргумента, где ожидается, например, дженерик с объектом.
НЕ подразумевает необходимость обработать users и также НЕ подразумевает, что надо использовать не users, а users.data. Из-за чего начинаешь придумываешь штуки типа usersResult. Хотя это и болезнь axios в целом.
Можно еще раскрывать объект, например, const { data: users, ok: okUsers, error: errorUsers } = await safeFetch, но тут уже глазу неприятно становится.
Возможно, в теории, можно попробовать возвращать не объект, а кортеж типа const [users, errorUsers] = await safeFetch..., и в целом избавиться от ok, а проверять error на null.
На моей памяти самое неудобное - это если необходимо динамически проставлять классы относительно пропсов, то нужно намерено заставить Tailwind компилировать ограниченное число необходимых классов через обходные пути. Ну либо использовать старый добрый style атрибут.
Это мне напомнило, как я когда-то для своего проекта хотел внести обработку ошибок из Go. И поэтому написал мини либу: https://gist.github.com/lshegay/c4298afd7425c5449d60daefc3305fca
Правда, есть и минус в таком подходе. В особенности касается и
safeFetch
из данного поста. По запаре можешь начать прокидывать необработанный объект с ok, data/error в функцию в качестве аргумента, где ожидается, например, дженерик с объектом.Это связано с тем, что вот такая запись:
const users = await safeFetch.get<User[]>('/api/users');
НЕ подразумевает необходимость обработать users и также НЕ подразумевает, что надо использовать не
users
, аusers.data
. Из-за чего начинаешь придумываешь штуки типаusersResult
. Хотя это и болезнь axios в целом.Можно еще раскрывать объект, например,
const { data: users, ok: okUsers, error: errorUsers } = await safeFetch
, но тут уже глазу неприятно становится.Возможно, в теории, можно попробовать возвращать не объект, а кортеж типа
const [users, errorUsers] = await safeFetch...
, и в целом избавиться отok
, а проверятьerror
наnull
.На моей памяти самое неудобное - это если необходимо динамически проставлять классы относительно пропсов, то нужно намерено заставить Tailwind компилировать ограниченное число необходимых классов через обходные пути. Ну либо использовать старый добрый style атрибут.