Пишу тудушницу.
БД это json файл. При старте node.js приложения файл загружается в память целиком и лежит там как типизированный тайпскриптом объект, то есть десереализуется, а для этого я написал type guard который параметром честно принимает unknown. И вот акуратно написать руками этот гвард заняло у меня минут 15.
А зачем что-то 15 минут делать руками, если можно два дня автоматизировать?
Перепробовал я io-ts, который базируется на fp-ts, а для второго надо монады знать, и несколько иначе писать приложение (или нет, но я не нашел быстро нужных утильных функций). Попробовал runtypes, но почему-то компилятор с линтером люто ругаются что все с библиотеки это Any (может WebStorm виноват). Попробовал zod либу, но у неё нету возможности задавать номинативные типы.
И в итоге все эти либы делают не красивый вывод типов для ТС
runtypes.Static, t.typeOf
Илья, какую библиотеку для контрактов вы используете? Можно-ли где-то глянуть как вы с ней работаете?