Abr@X@bra.ru
FX инструмент командной строки для манипулирования JSON
FX инструмент командной строки для манипулирования JSON

FX инструмент командной строки для манипулирования JSON

22.01.2019
51
fx - это популярный инструмент командной строки для манипулирования JSON. Он может быть установлен через npm, brew, snapcraft или загружен как отдельный бинарный файл.

npm i -g fx

FX работает с командой curl. Если у вас есть какой-то API, который возвращает JSON, и вы хотите заглянуть в структуру или просто увидеть ее, направьте JSON в fx.

curl https://swapi.co/api/planets/ | fx

У fx действительно удобный интерактивный режим для поиска в JSON.

Вы можете использовать мышь или клавиши со стрелками для навигации по JSON. Нажмите клавишу E, чтобы рекурсивно развернуть все поля. Нажмите Shift + E, чтобы свернуть все обратно.

Интерактив

В интерактивном режиме нажмите. (точка) ключ. Вы увидите курсор в конце окна терминала с всплывающими полями JSON. Используйте клавиши со стрелками, чтобы выбрать поле и нажмите Enter, продолжайте, пока не найдете необходимые данные. Если вам нужно вернуться на один уровень назад, нажмите Ctrl + W, чтобы стереть последний сегмент пути.

Кстати, в этом поле вы можете написать любое выражение JavaScript, а не только выражения.

Красивый вывод

Иногда вам не нужен интерактивный режим, и вы хотите направить JSON на стандартный вывод. Это можно сделать, добавив . для команды FX.

curl https://swapi.co/api/planets/1/ | fx .

Или для печати только части JSON укажите желаемый путь.

curl https://swapi.co/api/planets/1/ | fx .films

Запрос API каждый раз занимает много времени, что если мы сначала сохраним его на диск?

curl https://swapi.co/api/planets/1/ > data.json

Теперь мы можем передать файл в качестве первого аргумента в fx.

fx data.json .films

Каждый аргумент для fx может быть некоторой функцией JavaScript, давайте создадим файл .fxrc, в который мы поместим полезную функцию и фрагменты для повторного использования.

Snippets

Давайте добавим сниппет для lodash в нашу командную строку. Установите lodash глобально.

npm i -g lodash

Создайте файл .fxrc в своем проекте. И вставьте в него следующую строку.

Object.assign(global, require('lodash/fp'))

Теперь вы сможете вызывать все методы lodash, даже не используя префикс _.

Например:

curl 'https://api.github.com/repos/facebook/react/commits'  \
| fx 'map("commit.message")' 'map(words)' flatten           \
     'map(lowerCase)' 'groupBy(identity)' 'mapValues(size)' \
      toPairs 'sortBy(1)' reverse 'take(30)' fromPairs


Редактирование

С помощью fx вы можете легко изменять объекты JSON, используя spread оператор.

echo '{"count": 0}' | fx '{...this, count: this.count+1}'

Файл можно сохранить локально с внесенными изменениями

fx data.json '{...this, count: this.count+1}' > data.json

Поиск в JSON

FX поддерживает интерактивный поиск в JSON. Нажмите \, чтобы ввести значения для поиска.

Чтобы перейти к следующему совпадению, нажмите N. Вы можете применить фильтр . также, FX отлично работает с ними обоими одновременно.

Поддержка тем

FX также поддерживает темы. Вы можете изменить цвет и отступ.

global.FX_STYLE_SPACE = 4

Две удивительные темы для FX ниже:

Я надеюсь, вам понравится использовать FX!





FX, JSON
Читайте также:
Vue.js Пишем крутое меню подсветки как в Medium

Vue.js Пишем крутое меню подсветки как в Medium

Крутая особенность в Medium - это меню подсветки, которое появляется при выборе текста. Это меню содержит кнопки, которы...
Читать
Анимированный прелоадер на CSS

Анимированный прелоадер на CSS

В данном посте, хочу рассказать как можно сделать классный прелоадер для сайта на чистом CSS.  
Читать
Ajax подгрузка контента Битрикс

Ajax подгрузка контента Битрикс

Ajax подгрузка контента, бесконечный скроллинг, «вебдванольная постраничка» — этот подход называют по разному, но суть о...
Читать