Size: a a a

JavaScript.Ninja

2021 July 06

IL

Ivan Lotarev in JavaScript.Ninja
Подскажите, может была у кого подобная задача. Есть приложение на vue 2, надо логгировать изменения каждого инпута (слать в отдельный сервис старое новое значение и время).
Или может уже есть готовое решение какое.
источник

MA

Maxim Anisimov in JavaScript.Ninja
Всем привет! Наверное задам тупой вопрос, но все же. Вопрос по open source. Есть репозиторий библиотеки графиков, в нем нету тестов. Я хочу пофиксить у них баг, как мне понять что я сделал все правильно? (ни разу не контрибьютил в open source). Это нужно паралельно открывать какой нибудь демо-проект,в который я буду подключать локальную версию этой библиотеки, и проверять там?)
источник

M

Michael in JavaScript.Ninja
Плохая библиотека, если там нету тестов
источник

M

Michael in JavaScript.Ninja
Добавьте тест
источник

MA

Maxim Anisimov in JavaScript.Ninja
Это понятно, что это плохо) Так исторически сложилось, что она у нас в проекте.
источник

MA

Maxim Anisimov in JavaScript.Ninja
Там нету тест раннера, который бы запустил мне тесты
источник

MA

Maxim Anisimov in JavaScript.Ninja
Или Вы предлагаете сделать PR, в котором я закину багфикс + добавлю тест раннер и тесты под багфикс?)
источник

M

Michael in JavaScript.Ninja
Не думаю, что будуд ругать, если вы тест раннер поставите
источник

M

Michael in JavaScript.Ninja
Ага
источник

MA

Maxim Anisimov in JavaScript.Ninja
Я думаю есть шанс что начнут писать: "А почему Jest, а не Karma?" Но как вариант, спасибо
источник

M

Michael in JavaScript.Ninja
Вряд ли. Джест сейчас де-факто стандарт
источник

M

Michael in JavaScript.Ninja
У меня есть функция, где через reduce нужно рекурсивно создавать вложенные объекты и массивы.
Из-за этого нужно делать проверки типа таких
      acc[obj1] = acc[obj1] ?? {};

       acc[obj][arr1] = acc[obj][arrr1] ?? [];


Можно ли как-то это упростить? Например функцией какой-то библиотеки?
источник

MA

Maxim Anisimov in JavaScript.Ninja
А что вам именно нужно упростить? Проверки или рекурсивное создание структур ?
источник

M

Michael in JavaScript.Ninja
ну, код выглядит так
источник

M

Michael in JavaScript.Ninja
я просто думаю может через какую-то функциональную либку это можно упроситть
источник

MA

Maxim Anisimov in JavaScript.Ninja
Ну в проверках я ничего плохого не вижу, как я понял если значения нету то вам нужно его начальной структурой инициализировать

Да и я бы сказал что код читабельный, можно конечно думать над упрощением, но надо ли оно Вам) Лично я не использовал какие то библиотеки, которые заточены конкретно под создание структур рекурсивными алгоритмами

Максимум что могу посоветовать, это взять 'ramda' как библиотеку для функционального программирования, там есть много утилит для декларативного формирования структур как у Вас
источник

MA

Maxim Anisimov in JavaScript.Ninja
Ага, как раз про это и написал)
источник

M

Michael in JavaScript.Ninja
а можете конкретный функции оттуда подсказать, а то я покопался и не особо нашел
источник

MA

Maxim Anisimov in JavaScript.Ninja
Ну я вижу что вы делаете Object.keys(GRADE_ASSETS) для того что бы забрать ключи из объекта и пройтись по ним формируя новую структуру

Можете попробовать посмотреть в сторону mapObjIndexed, если у вас на выходе объект с теми же ключами, что в GRADE_ASSETS
источник

MA

Maxim Anisimov in JavaScript.Ninja
mapObjIndexed это map для объектов, так  вы можете ключи не менять, а вот значение которое храниться под ключем менять, при этом итерации идут по всему объекту
источник