wmakeev/moysklad

View on GitHub
TODO.md

Summary

Maintainability
Test Coverage
# TODO

> Некоторые вопросы и задачи которые возникают в процессе разработки

## Features

- [ ] `X-Lognex-Get-Content` (?)

  ```
  Чтобы получить в ответе непосредственно файл, нужно использовать специальный заголовок X-Lognex-Get-Content со значение true - увидел, что этой информации нет в документации, это будет исправлено.
  ```

  Откуда это? Не могу найти источника. Как работает этот заголовок?

- [ ] Дополнительный метод `Moysklad#request` как основа для запроса (?)

  ```js
  const ms = Moysklad()
  const response = await ms
    .request('entity/customerorder')
    .setHeader('FOO', 'bar') // можно установить заголовок
    .method('GET') // выбор метода
    .toPromise() // выполнение запроса и возвращаение Promise'а
  ```

- [ ] Нужно ли вообще "давить" ошибки в `.GET/POST/...` запросах даже через опцию? Может полностью передать эту возможность `.request` подобному API в "ручное" управление.

## Enhancements

- [ ] (?) Подключить matchers отдельным модулем

- [ ] Добавить ссылку на сборку в [unpkg.com](https://unpkg.com/browse/moysklad@0.6.0/dist/moysklad.js) + .min.js версия

- [ ] (?) Изменить интерфейс функций времени `parseTimeString` (нужно задавать часовой пояс и ms по умолчанию включены)

  > Например, когда явно надо указывать время в часовом поясе сервера (загрузить остатки с 0:00 по Москве). Или наоборот работать с другим часовым поясом, когда текущий не совпадает.

  > Проблема в том, что при указании времени в атрибутах нельзя указывать миллисекунды (API 1.1, аналогично ли в 1.2?)

  > Что важнее указывать явно отсутствие миллисекунд в дате или наличие?

- [ ] Загрузка параметров из переменных окружения (добавить описание в документацию)

- [ ] (?) Добавить в тайпинг вывод `Response | unknown` для опций при которых возвращается "сырой" ответ

- [ ] Дописать раздел с про тайпинги

  - `import('undici').Response` vs `Response`

- [ ] Требуется еще вычитать документацию, возможно поправить кое-где примеры и обновить описания.

- [ ] Добавить примеры для работы в браузере (в контексте приложения МойСклад)

- [ ] Сложно работать с документацией (синхронно обновлять доки в тайпингах и README)

- [ ] Надо подумать когда лушче запускать создание файла version.js в процессе публикации (он должен быть включен в бандл, а версия двигается через np)

- [ ] Перенести сборку на GitHub Actions

- [ ] Нужно ли добавить различные typeguard'ы? Вроде `isApiError` для проверки на интерфейс `{ errors }`? (можно препутать с классом ошибки `MoyskladApiError`)