Проблемы с асинхронностью в source-map



Рома упоминает в посте ту самую единственную библиотеку для работы с сорс-мапами. 2 года назад вышла версия 0.7.0, в которой source-map переписали на раст и стали компилировать в Web Assembly. Благодаря миграции на WASM, библиотека стала работать в 6 раз быстрее, а вместе с изменением алгоритмов в 11 раз. Вместе с этим, API стало асинхронным, а большинство проектов так и остались на 0.6.1. Среди них Jest, Babel, Webpack, PostCSS, CSSO, Less и множество других (npm говорит, что source-map используется в 2333 пакетах).



Мэйнтэйнеры библиотек просят вернуть синхронное API (есть даже PR, но в нём нет никакой активности) и портировать оптимизацию алгоритма и выпустить патч для js версии (тут тоже нет никакого внимания от авторов).



В своих проектах можно использовать форк, ускорящий сборку на 9%. Но конечно хотелось бы увидеть менее костыльный способ.



Кстати, Тобиас Копперс (создатель вебпака) считает, что миграция на WASM не оправдана и вносит лишь дополнительные сложности, но у Мозиллы своё мнение на этот счёт. Они подробно описывают причины рефакторинга в статье Oxidizing Source Maps with Rust and WebAssembly.