1. А теперь главный вопрос. Зачем было в модуле ES6 реализовывать
module pattern? В этом нет абсолютно никакого смысла. Практика практикой, но все же.
2. В наличии переменной
posts так же нет никакого практического смысла.
const { data } = await HTTP.get('posts');
3. Функцию:
async function _getPostById(id) {
const post = await HTTP.get(`posts/${id}`)
return post
}
Можно смело заменить на:
const _getPostById = id => HTTP.get(`posts/${id}`);
То же можно сделать и с функцией
_getPosts.
4. Где-то let, где-то var, где-то const. Никакой логики в предпочтении одного ключевого слова другому при этом нет. Почитайте современные гайдлайны airbnb, например.
5. Точки с запятой где-то есть где-то нет. Читать такой код неприятно.