npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

wb-market-parser

v1.0.2

Published

Wildberries market parser

Readme

wb-market-parser

npm version License: MIT

Парсер для получения информации о пунктах выдачи Wildberries. Библиотека предоставляет удобный API для работы с данными о пунктах выдачи, включая их адреса, координаты, режимы работы и другую информацию.

Особенности

  • 🚀 Быстрый доступ к данным через кэширование
  • 📍 Поддержка геолокации и координат
  • 🌍 Мультиязычность (поддержка разных стран)
  • 🔄 Автоматическое обновление данных
  • 📦 Поддержка CommonJS и ESM
  • 📝 Полная поддержка TypeScript

Установка

npm install wb-market-parser

или

yarn add wb-market-parser

Использование

CommonJS

const { WbMarketParser } = require('wb-market-parser');

const parser = new WbMarketParser();

ESM

import { WbMarketParser } from 'wb-market-parser';

const parser = new WbMarketParser();

API

Конструктор

new WbMarketParser(config?: {
  cacheDuration?: number; // длительность кэширования в миллисекундах (по умолчанию 5 минут)
  logger?: {
    log: (message: string) => void;
    error: (message: string, error?: Error) => void;
    debug: (message: string) => void;
  };
})

Методы

getCountries()

Возвращает список всех стран, где есть пункты выдачи.

const countries = await parser.getCountries();
// ['Russia', 'Belarus', ...]

getByCountry(country: string)

Возвращает список пунктов выдачи для указанной страны.

const markets = await parser.getByCountry('Russia');
// [{ id: 1, address: 'Moscow, Red Square 1', ... }, ...]

getById(id: number)

Возвращает пункт выдачи по его ID.

const market = await parser.getById(1);
// [{ id: 1, address: 'Moscow, Red Square 1', ... }]

markets()

Возвращает все данные о пунктах выдачи, сгруппированные по странам.

const allMarkets = await parser.markets();
// [{ country: 'Russia', markets: [...] }, ...]

Кэширование

Библиотека использует встроенное кэширование для оптимизации производительности и уменьшения нагрузки на API Wildberries.

Настройка кэширования

const parser = new WbMarketParser({
  cacheDuration: 10 * 60 * 1000 // кэш на 10 минут
});

Особенности кэширования

  • Данные кэшируются в памяти
  • Кэш автоматически обновляется при истечении срока действия
  • При ошибках загрузки данных используются кэшированные данные, если они доступны
  • Кэш очищается при создании нового экземпляра парсера

Типы данных

interface MarketType {
  Items: {
    country: string;
    markets: {
      id: number;
      address: string;
      coordinates: [number, number];
      workTime: string;
      photos: string[];
      typePoint: number;
      dtype: number;
      isWb: boolean;
      pickupType: number;
      dest: number;
      dest3: number;
      sign: string;
    }[];
  }[];
}

Разработка

Установка зависимостей

npm install

Запуск тестов

npm test

Сборка

npm run build

Структура проекта

wb-market-parser/
├── src/
│   ├── index.ts        # Точка входа
│   ├── market.ts       # Основная логика парсера
│   ├── market.test.ts  # Тесты
│   └── types.ts        # Типы данных
├── package.json
└── README.md

Вклад в проект

Мы приветствуем вклад в развитие проекта! Вот как вы можете помочь:

  1. Сообщения об ошибках

    • Используйте GitHub Issues
    • Опишите проблему максимально подробно
    • Приложите пример кода, если возможно
  2. Pull Requests

    • Создавайте ветку для каждой новой функции
    • Следуйте существующему стилю кода
    • Добавляйте тесты для новой функциональности
    • Обновляйте документацию
  3. Улучшение документации

    • Исправление ошибок
    • Улучшение примеров
    • Добавление новых разделов

Процесс разработки

  1. Форкните репозиторий
  2. Создайте ветку для ваших изменений
  3. Внесите изменения
  4. Запустите тесты: npm test
  5. Создайте Pull Request

Требования к коду

  • Следуйте стилю кода проекта
  • Пишите тесты для новой функциональности
  • Обновляйте документацию при необходимости
  • Используйте TypeScript для типизации

Лицензия

MIT

Поддержка

Если у вас возникли проблемы или есть вопросы:

  • Создайте Issue на GitHub
  • Опишите проблему максимально подробно
  • Приложите пример кода, если возможно

Безопасность

Если вы обнаружили уязвимость безопасности, пожалуйста, сообщите об этом через GitHub Issues или напрямую разработчикам.