/ymaps

:round_pushpin:Yandex Maps on-demand promise-based widget loader

Primary LanguageJavaScriptMIT LicenseMIT

ymaps

npm version CircleCI

Yandex Maps on-demand promise-based widget loader.

  • Appends Yandex Maps API script to the document body.
  • Returns a promise which resolves as soon as the script has loaded and the API is ready.

This way the widget doesn’t load until it’s needed to decrease page load time.

View on CodeSandbox →

Quickstart

Install from the command line:

npm install ymaps

Use in your code to load the widget:

import ymaps from 'ymaps';

ymaps
  .load()
  .then(maps => {
    const map = new maps.Map('your-map-container', {
      center: [-8.369326, 115.166023],
      zoom: 7
    });
  })
  .catch(error => console.log('Failed to load Yandex Maps', error));

To use another language simply pass a valid src to ymaps.load

ymaps.load('https://api-maps.yandex.ru/2.1/?lang=en_US').then(maps => {
  /* ... */
});

The information about other options is available in the API docs. Please check out known issues to see not supported options.

Running the tests

npm test

Known issues

  • load parameter, except when it's set to package.full is causing an error "TypeError: s is not a constructor". To reproduce, try to pass "//api-maps.yandex.ru/2.1/?lang=en_US&load=Map" to ymaps.load in the example above. PR is welcome!

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

SemVer is used for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.