TODO.md
# 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`)