1. Kod qs kutubxonasini import qiladi, u soʻrovlar qatorlarini tahlil qilish va stringifikatsiya qilish uchun ishlatiladi
2. queryBuilder funktsiyasi ikkita parametrni oladi: url (asosiy URL) va config (so'rov uchun kalit-qiymat juftlarini o'z ichiga olgan ob'ekt parametrlari). config parametri sukut boʻyicha boʻsh obyektga oʻrnatiladi.
3. Funksiya avval config ob'ektining bo'shligini Object.keys(config).length <= 0 yordamida tekshiradi. Agar u bo'sh bo'lsa, ya'ni hech qanday so'rov parametrlari berilmasa, funktsiya hech qanday o'zgartirishlarsiz asl url-ni qaytaradi.
4. Agar config obyekti boʻsh boʻlmasa, funksiya qs.stringify yordamida config obyektini soʻrovlar qatoriga oʻzgartiradi. qs.stringify funksiyasi config obyektini faqat qiymatlarni kodlash orqali, encodeValuesOnly: true opsiyasidan foydalangan holda seriyalashtiradi.
5. Olingan so'rovlar qatori URLSearchParams konstruktoriga uzatiladi va u yangi URLSearchParams ob'ektini yaratadi.
6. Nihoyat, funktsiya shablon literallari yordamida qo'shilgan so'rovlar qatori bilan asl urlni qaytaradi: ${url}?${decodeURIComponent(queryObj.toString())} . queryObj.toString() URLSearchParams ob'ektini satrga aylantiradi va decodeURIComponent so'rovlar qatoridagi har qanday maxsus belgilarni dekodlash uchun ishlatiladi.
Xulosa qilib aytganda, queryBuilder funksiyasi asosiy URL va konfiguratsiya obyektini oladi va konfiguratsiya obyekti asosida qo‘shilgan so‘rov parametrlari bilan yangi URL manzilini qaytaradi.
@Diyorbekk_dev