Альтернатива макросам в Dart? 👀

Кого-то настолько шокировала отмена макросов, что он не удержался и решил зарелизить свое видение реализации этой фичи в виде пакета macro_kit не использующего стандартный механизм генерации кода, запускаемый посредством build_runner 😎

По заявлениям разработчика кодогенерация, после обмазывания аннотацией и сохранения изменений (Ctrl+s) вы автоматически получите .g.dart-файл за ~ 100мс

code @dataClassMacro class UserProfile with UserProfileData { const UserProfile({required this.name, required this.age});

final String name; final int age; }

Пакет генерирует боллерплейтный код для таких методов, как: fromJson, toJson, copyWith, equality operators и toString.

Пока макросы можно применять только для генерации data classes, да и они не полностью поддерживаются на физических Android и iOS устройствах, но у разработчика уже в планах:

1️⃣ Поддержка применения макросов к переменным и функциям

2️⃣ Дополнительные возможности макросов для разработчиков библиотек

3️⃣ Больше встроенных макросов для распространённых шаблонов

4️⃣ Работа над текущими ограничениями пакета

p.s. В текущей реализации пакет больше смотрится, как более легковестная альтернатива freezed, но есть куда расти 😏

p.s.s. Главный минус - требуется глобальная установка. Т.е. он постоянно будет крутиться у вас в фоне, и отлавливать сохранения в IDE и запускать кодген для сохрененных файлов. Дело в том, что автор выдрал все необходимое для кодгена из билдраннера. И если тому нужен прогрев при запуске, то этот пакет всегда на стреме и готов действовать 🤔

Как вам такой пакет?

👍 - О, да, детка 👌 - Сомнительно, но окей 👎 - Отстой! На кой мне сдался какой-то левый сервис, крутящийся на моей машине в фоне?