nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

remoteBase.js (1141B)


      1 import L from 'leaflet';
      2 
      3 function sleep(ms) {
      4     return new Promise((resolve) => setTimeout(resolve, ms));
      5 }
      6 
      7 const BaseProvider = L.Class.extend({
      8     options: {
      9         maxResponses: null,
     10         attribution: null,
     11         delay: 500,
     12     },
     13 
     14     initialize: function (options) {
     15         L.setOptions(this, options);
     16         this.attribution = this.options.attribution;
     17     },
     18 
     19     getRequestLanguages: function (supportedLanguages, defaultLanguage) {
     20         let languages = (navigator.languages ?? [])
     21             .map((s) => s.split('-')[0])
     22             .filter((value, index, arr) => arr.indexOf(value) === index)
     23             .filter((lang) => supportedLanguages.includes(lang));
     24         if (languages.length === 0) {
     25             languages = [defaultLanguage];
     26         }
     27         return languages;
     28     },
     29 
     30     waitNoNewRequestsSent: async function () {
     31         if (this.options.delay) {
     32             this._sleep = sleep(this.options.delay);
     33             const sleepPromise = this._sleep;
     34             await sleepPromise;
     35             return this._sleep === sleepPromise;
     36         }
     37         return true;
     38     },
     39 });
     40 
     41 export {BaseProvider};