Дебаггер в JSONata.
JSONata специфичный язык, с которым я познакомился во времена работы над своим PET проектом ThingJS по IoT. Ирония в том, что этот язык использовался для LowCode системы Node-Red, а теперь служит задачам "Архитектуры как код" 😏
На первый взгляд он выглядит сложным, т.к. большинство с "пеленок" привыкло работать с реляционными базами данных. Но, реляционная база, это та, которая УЖЕ является результатом решения о систематизации данных. А в задачах управления архитектурой значительно чаще встречаются задачи СИСТЕМАТИЗАЦИИ. Т.е. нужно сначала набрать и сложить куда-то данные, а затем их как-то обработать, чтобы получилось красиво.
Именно это свойство - обработка неоднородных данных - определяет специфику запросов и синтаксиса JSONata. И именно это свойство очень подходит нам в решении задач систематизации и устранения противоречивости данных.
Но в JSONata БЫЛ один глубокий недостаток - мы не могли отлаживать запросы. Я пытался обойти его разными способами без вмешательства в оригинальный код JSONata. Например, была создана функция $log. Она позволяет вывести значение переменной в лог не воздействуя на нее. Результатом работы этой функции является то же значение, которое ей передается и запись в лог этого значения. Но этого оказалось недостаточно.
Недавно я принял решение о форке JSONata и его адаптации под наши нужды. Эксперимент оказался успешным и теперь есть такая же JSONata, но с возможностью отладки dochub-jsonata. Этой библиотекой может воспользоваться любой желающий также через npm
Post #3
233