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

ombor

v0.0.7

Published

Firebasega uslubidagi, offalyn, mahalliy ma'lumotlar bazasi.

Readme

Ombor

Firebasega uslubidagi, offalyn, mahalliy ma'lumotlar bazasi.

[!NOTE] Learn more in detail at Ombor Docs

Ombor sizga Firebase uslubidagi sodda, kuchli, foydalanuvchi brauzerida saqlanadigan,IndexedDB ma'lumotlar bazasida ishlashni osonlashtiradigan offlayn ma'lumotlar bazasini taqdim etadi.

Siz xohlagancha ma'lumot bazalarini yaratishingiz mumkin.

Ma'lumot bazalari Collectionlar(to'plam) va Documentlar(hujjatlar)ga birlashtirilgan (xuddi Firebase Cloud Firestore kabi).

  • Ma'lumotlar bazalarida collectionlar mavjud (misol: foydalanuvchilar)
  • Collectionlarda documentlar mavjud (misol: { id: 1, ism: 'Otabek', yosh: 19 }

Ombor LocalForage yordamida tuzilgan.

Boshlashdan avval bilib qo'yishingiz yaxshi bo'lgan atamalar.

Atamalar... Quyida ishlatilish mumkin bo'lgan ma'nolarda keltirildi.

  • Metod (Method) - Funksiya, amal. Masalan: .add(), .get(), .update() - bular metodlar.
  • Order - Tartib. Ma'lumotlarni qanday tartibda saralash yoki ko'rsatish.
  • OrderBy - Bo'yicha tartiblash. Ma'lumotlarni ma'lum bir maydon bo'yicha saralash metodi.
  • Ascending (asc) - O'suvchi tartibda. Kichikdan kattaga, A dan Z gacha. Masalan: 1, 2, 3 yoki A, B, C.
  • Descending (desc) - Kamayuvchi tartibda. Kattadan kichikka, Z dan A gacha. Masalan: 3, 2, 1 yoki Z, Y, X.
  • Key(s) - Kalit. Har bir documentning yagona identifikatori (ID). IndexedDB da saqlash uchun ishlatiladi.
  • Limit - Chegara, cheklash. Nechta natija qaytarishni cheklash. Masalan: .limit(10) - faqat 10 ta document qaytaradi.
  • Field - Maydon. Obyektdagi xususiyat, kalit va qiymat juftligi. Masalan: { ism: 'Otabek' } da ism - maydon, 'Otabek' - qiymat.
  • Document - Hujjat yoki ma'lumot. Bitta obyekt, masalan: { id: 1, ism: 'Otabek', yosh: 19 }.
  • Collection - To'plam. Documentlar to'plami. Masalan: foydalanuvchilar collection - barcha foydalanuvchilar ma'lumotlari.
  • Databaza yoki Database - Ma'lumotlar bazasi. Collectionlar saqlanadigan joy. Ombor da siz bir nechta databaza yaratishingiz mumkin.
  • Add - Qo'shish. Yangi document qo'shish.
  • Get - Olish. Ma'lumotni o'qish, olish.
  • Update - Yangilash. Mavjud documentning bir qismini o'zgartirish. Qolgan qismi o'zgarishsiz qoladi.
  • Set - O'rnatish. Bu yerda qayta yozish orqali yangilash ma'nosida. Butun documentni almashtirib yozish.
  • Delete - O'chirish. Document yoki collectionni o'chirish.
  • Overwrite - Ustiga yozish, qayta yozish. Eski ma'lumotni to'liq yangi ma'lumot bilan almashtirish.
  • Promise - Va'da. JavaScript'da asinxron operatsiyalarni boshqarish uchun obyekt. .then() va .catch() bilan ishlaydi.
  • Async/Await - Asinxron/Kutmoq. Promiselar bilan ishlashning zamonaviy usuli. Kodni o'qishni osonlashtiradi.
  • Console - Konsol. Brauzer dasturchilar vositalari (Dev Tools) da JavaScript kodi natijalarini ko'rish joyi.
  • Log - Jurnal, yozuv. Console'ga xabar chiqarish. Masalan: console.log('Salom').
  • Error - Xatolik. Dasturda yuz bergan muammo. Masalan: console.error('Xato yuz berdi').
  • Then - Keyin. Promise muvaffaqiyatli bo'lganda bajariladigan funksiya. Masalan: .then(natija => { ... }).
  • Playground - O'yin maydoni. Kodni sinab ko'rish, tajriba o'tkazish uchun interaktiv muhit.

Mundarija

Ishni Boshlash

O'rnatish va ishga tushirish

Script tegi yordamida

Ishlab chiqish (development) varianti. Ushbu variant siz proyekt ustida ishlayotgan paytingizda tekshirish uchun ancha qulayliklar yaratib beradi. Misol ucun: yangi qo'shilagan, o'zgartirilgan, o'chirilgan va hkz ma'lumotlar to'grisida sizga browseringiz dev-tools(F12 yoki CTRL+SHIFT+I) oynasining console bo'limida rang bilan ajratilgan habarlar yozish imkonini beradi.

<script src="https://unpkg.com/Ombor/dist/Ombor.dev.js"></script>

<script>
  let db = new Ombor('db')
</script>

# Yoki

<script src="./Ombor.dev.js"></script>

<script>
  let db = new Ombor('db')
</script>

Yoki, hajmi kichiklashtirilgan, ishlab chiqarish (production) variantidan foydlaning. Bu variantni siz proyektni tamomlaganingizdan keyin foydalanuvchilarga taqdim etganingizda ishlatishingiz mumkin. Bunda, qo'shilgan, yangilangan, o'chirilgan va hkz ma'lumotlar haqida browser dev-tools console bo'limida habarlar ko'rsatilmaydi. Va ishlab chiqish variantiga qaraganda fayl hajmi kamroq bo'ladi.

<script src="https://unpkg.com/Ombor/dist/Ombor.min.js"></script>

<script>
  let db = new Ombor('db')
</script>

# Yoki

<script src="./Ombor.min.js"></script>

<script>
  let db = new Ombor('db')
</script>

NPM bilan

npm install Ombor --save
import Ombor from 'Ombor'

let db = new Ombor('db')

NuxtJS bilan

npm install Ombor
// plugins/Ombor.js

import Ombor from 'Ombor'
let db = new Ombor('db')
export default (context,inject) => {
  inject('db', db)
}
// nuxt.config.js

export default {
  ...
  plugins: [
    { src: "~/plugins/Ombor", mode: "client" }
  ],
  ...
}
<!-- pages/index.vue -->

<script>
export default {
  head: {
    title: 'Nuxt - bosh sahifa'
  },
  mounted() {
    this.$db.collection('foydalanuvchilar').add({
      id: 1,
      ism: 'Otabek',
      yosh: 19
    })
  }
}
</script>

Video Darslik

Tez kunda... Videodarslik tayyorlanmoqda.

Qisqa Kirish

To'plamga(endilikda collection) hujjat/ma'lumot(endilikda document) qo'shish bilan boshlang. Collection metodida to'plam nomini kiriting (to'plam avtomatik ravishda yaratiladi), keyin add usuli bilan qo'shmoqchi bo'lgan documentni (ma'lumotni) kiriting:

db.collection('foydalanuvchilar').add({
  id: 1,
  ism: 'Otabek',
  yosh: 19
})

Juda ham oddiy!

Collectionga ba'zi ma'lumotlarni qo'shgandan so'ng, siz get metodi bilan butun collectionni olishingiz mumkin:

db.collection('foydalanuvchilar').get().then(foydalanuvchilar => {
  console.log(foydalanuvchilar)
})

//  [
//    { id: 1, ism: 'Otabek', yosh: 19 },
//    { id: 2, ism: 'Abdulaziz', yosh: 34 }
//  ]

Ma'lumot Qo'shish

Collectionga document qo'shish

Misol uchun:

db.collection('foydalanuvchilar').add({
  id: 1,
  ism: 'Otabek',
  yosh: 19
})

Documentni yangilash

Mavjud documentni(qisman yok butunlay) yangilash mumkin. Buning uchun update metodidan foydalaning. Documentga mos kelish uchun faqat maydon va qiymat (odatda id) bo'lgan obyektni kiriting.

Diqqat! agar faqat aynan qaysidir maydonlarning o'zi yangilashi kerak bo'lsa o'sha maydonlarni o'zinigina update metodi ichiga kiriting.

db.collection('foydalanuvchilar').doc({ id: 1 }).update({
  ism: 'Abdulaziz'
})

//  [
//    { id: 1, ism: 'Abdulaziz', yosh: 19 },
//    { id: 2, ism: 'Abdulaziz', yosh: 34 }
//  ]

Diqqat: Agar siz bergan mezon bo'yicha bittadan ko'p documentlar topilsa, misol: .doc({ ism: 'Otabek' }) bo'yicha, unday holatda barcha mos tushgan (topilgan) documentlar yangilanadi.

Documentni o'rnatish (ustiga yozish)

Mavjud documentni set() metodi orqali yangilash. Bunda set() metodi ichida barcha yangilanishi kerak bo'lgan document maydonlari taqdim etilishi kerak. Chunki set() metodi databazadagi collection ichidagi documentga kiritilayotgan yangi maydonlarning o'zini saqlab, eski saqlangan maydonlarni o'chirib yuboradi. Va update() metodi kabi berilgan maydonlarning o'zinigina yangilab, yangisini kiritib, qolganlarini o'z holatida qoldirmaydi. Yani update metodiga o'xshamagan holda, documentni to'liq qayta yozadi. Shuning uchun barcha kerakli maydonlarni set metodi ichida berish kerak.

db.collection('foydalanuvchilar').doc({ id: 2 }).set({
  id: 4, 
  ism: 'Jakhongir',
  yosh: 27
})

//  [
//    { id: 1, ism: 'Otabek', yosh: 19 },
//    { id: 4, ism: 'Jakhongir', yosh: 27 }
//  ]

Diqqat: Agar siz bergan mezon bo'yicha bittadan ko'p documentlar topilsa, misol: .doc({ ism: 'Otabek' }) bo'yicha, unday holatda barcha mos tushgan (topilgan) documentlar o'rnatiladi (qayta yoziladi).

Collectionni o'rnatish (ustiga yozish)

Documentlarning to'plami bo'lgan butun collection o'rnatish metodi bilan qayta yozish orqali yangilanadi.

db.collection('foydalanuvchilar')
  .set([
    {
      id: 1,
      ism: 'Abdulakhad',
      yosh: 20
    },
    {
      id: 2, 
      ism: 'Abdurahmon',
      yosh: 14
    }
  ])

//  [
//    { id: 1, ism: 'Abdulakhad', yosh: 20 },
//    { id: 2, ism: 'Abdurahmon', yosh: 14 }
//  ]

Ma'lumotni olish

Collectionni olish

Collectiondan barcha narsalarni olish. Collection arrayda qaytariladi.

db.collection('foydalanuvchilar').get().then(foydalanuvchilar => {
  console.log(foydalanuvchilar)
})

//  [
//    { id: 1, ism: 'Ahrorxo'ja', yosh: 17 },
//    { id: 2, ism: 'Ulugbek', yosh: 18 }
//  ]

Collectionni tartiblash

Collectionni olish va uni ma'lum bir maydon bo'yicha tartiblash (ascending).

orderBy metodi ikkita argument qabul qiladi. Birinchisi, qarab tartiblanishi kerak bo'lgan maydon. Ikkinchisi, tartiblanish uslubi. Tartiblanish uslubi ikki hil: 1. asc (ascending yani yuqoriga) va desc (descending pastga) qarab tartiblash.

db.collection('foydalanuvchilar').orderBy('yosh').get().then(foydalanuvchilar => {
  console.log('foydalanuvchilar: ', foydalanuvchilar)
})

//  [
//    { id: 2, ism: 'Otabek', yosh: 19 },
//    { id: 1, ism: 'Abdulaziz', yosh: 47 }
//  ]

Collectionni olish va ma'lum bir maydon bo'yicha tartiblash (descending).

db.collection('foydalanuvchilar').orderBy('ism', 'desc').get().then(foydalanuvchilar => {
  console.log('foydalanuvchilar: ', foydalanuvchilar)
})

//  [
//    { id: 2, ism: 'Ulugbek', yosh: 18 },
//    { id: 1, ism: 'Ahrorxo'ja', yosh: 17 }
//  ]

Collectionni checklash

Collection tartiblash va uni ma'lum miqdordagi documentlar bilan checklash.

db.collection('foydalanuvchilar').orderBy('ism', 'desc').limit(1).get().then(foydalanuvchilar => {
  console.log('foydalanuvchilar: ', foydalanuvchilar)
})

//  [
//    { id: 2, ism: 'Ulugbek', yosh: 18 }
//  ]

Documentni olish

Collectiondan individual documentni olish

db.collection('foydalanuvchilar').doc({ id: 1 }).get().then(document => {
  console.log(document)
})

// { id: 1, ism: 'Abdurahmon', yosh: 14 }

Ma'lumotni o'chirish

Documentni o'chirish

Collectiondan documentni o'chirish.

db.collection('foydalanuvchilar').doc({ id: 1 }).delete()

//  [
//    { id: 2, ism: 'Abdulaziz', yosh: 34 }
//  ]

Diqqat: Agar siz bergan mezon bo'yicha bittadan ko'p documentlar topilsa, misol: .doc({ ism: 'Otabek' }) bo'yicha, unday holatda barcha mos tushgan (topilgan) documentlar o'chiriladi.

Collectionni o'chirish

Collectionni va undagi barcha documentlarni o'chirib tashlash.

db.collection('foydalanuvchilar').delete()

Ma'lumotlar bazasini o'chirish

Ma'lumotlar bazasi va undagi barcha documentlarni o'chirib tashlash.

db.delete()

Kalitlardan yuqori darajada foydalanish

Sizning documentlaringiz IndexedDB storeda key bilan saqlanadi:

IndexedDB Store - Keys

Odatda, Ombor bu keylar uchun tasodifiy, tartiblangan, yagona IDlarni yaratadi.

Ammo siz ushbu keylarning (kalitlarning) nomini boshqarishni(o'zgartirishni) xohlashingiz mumkin. Masalan siz:

  • Document qo'shganda o'z keyingizni ko'rsatishingiz.
  • Uni documentlarni tanlash (olayotganda, yangilayotganda, o'rnatayotganda yoki o'chirayotganda) ishlatishingiz
  • Va collectionni olayotganingizda barcha keylarni document maydonlari sifatida qaytarishingiz mumkin. Masalan quyidagidek.
[
  {
    key: 'kalit-2',
    data: {
      { id: 2, ism: 'Abdulaziz', yosh: 34 }
    }
  },
  {
    key: 'kalit-1',
    data: {
      { id: 1, ism: 'Adxamboy', yosh: 21 }
    }
  }
]

Siz bularning barchasini Ombor orqali qilishingiz mumkin:

Document qo'shish va o'z kalitingizni kiritish

Document ma'lumotlarini kiritgandan so'ng, ikkinchi parametr sifatida (IndexedDB store tomonidan foydalaniladigan) keyni kiriting kiriting:

db.collection('foydalanuvchilar').add({
  id: 1,
  ism: 'Otabek',
  yosh: 19
}, 'kalit-1')

Yoki, siz shunchaki set metodini ishlatishingiz mumkin:

db.collection('foydalanuvchilar').doc('kalit-1').set({
  id: 1, 
  ism: 'Abdulakhad',
  yosh: 20
})

IndexedDB da quyidagicha ko'rinadi:

IndexedDB Store - Own Keys

Kalitlarni o'z ichiga olgan collectionni o'natish (ustiga yozish)

To'liq collectionni documentlar arrayi bilan (qayta yozish orqali) o'rnating va har bir document uchun keyni kiriting. `{keys: true}" parametri kiritganingizga ishonch hosil qiling. Bu tanlangan collectionni to'liq qayta yozadi.

db.collection('foydalanuvchilar')
  .set([
    {
      id: 1,
      ism: 'Otabek',
      yosh: 19,
      _key: 'kalit-1'
    },
    {
      id: 2, 
      ism: 'Ulugbek',
      yosh: 18,
      _key: 'kalit-2'
    }
  ], { keys: true })

Documentni kalit bilan olish, yangilash, o'rnatish (qayta yozish) yoki o'chirish (document mezonlari o'rniga)

Documentni doc" metodi bilan tanlayotganda, maydon nomi va qiymati ko'rsatilgan obyekt kiritish o'rniga, shunchaki key bilan string (yoki number) kiriting:

// kalit bilan docuementni olish
db.collection('foydalanuvchilar').doc('kalit-1').get().then(document => {
  console.log(document)
})

// documentni key bilan yangilash
db.collection('foydalanuvchilar').doc('kalit-1').update({
  ism: 'Abdurahmon'
})

// documentni key bilan o'rnatish
db.collection('foydalanuvchilar').doc('kalit-2').set({
  id: 4, 
  ism: 'Adxamboy',
  yosh: 21
})

// documentni key bilan o'chirish
db.collection('foydalanuvchilar').doc('kalit-1').delete()

Collectionni olish va kalitlarni ma'lumotlar bilan birga qaytarish.

Collectionni olayotganda, shunchaki { keys: true } ni get metodi ichida yozib qo'ying:

db.collection('foydalanuvchilar').orderBy('ism', 'desc').get({ keys: true }).then(foydalanuvchilar => {
  console.log('foydalanuvchilar: ', foydalanuvchilar)
})

//  [
  //   {
  //      key: 'kalit-2',
  //      data: {
  //        { id: 1, ism: 'Abdulaziz', yosh: 34 }
  //      }
  //    },
//    {
//      key: 'kalit-1',
//      data: {
//        { id: 2, ism: 'Otabek', yosh:  19}
//      }
//    }
//  ]

Promiselar bilan ishlash

Amallar muvaffaqiyatli bo'lganida yoki xato yuz berganda, barcha operatsiyalarga promise(va'dalar)ni qo'shishingiz va biror narsa bajarishingiz mumkin.

Misol uchun databazaga yangi collection qo'shilganda, u qo'shilganligi haqida browser dev-tools console bo'limida habar chiqarishingiz mumkin.

Documentni qo'shib, keyin biron ish bajarish

db.collection('foydalanuvchilar')
  .add({
    id: 1,
    ism: 'Otabek',
    yosh: 47
  }, 'kalit-1')
  .then(response => {
    console.log("Qo'shish muavvafaqiyatli amalga oshdi.")
  })
  .catch(error => {
    console.log("Xatolik yuz berdi, qaytadan harakat qilib ko'ring.")
  })

// Siz xatoni add() metodi ichida object o'rniga
// string, number yoki boolean yozish bilan
// tekshirib ko'rishingiz mumkin.

Documentni yangilab, keyin biron bir ishni bajarish

db.collection('foydalanuvchilar')
  .doc({ id: 1 })
  .update({
    ism: 'Abdurahmon'
  })
  .then(response => {
    console.log('Yangilash muvaffaqiyatli amalga oshdi.')
  })
  .catch(error => {
    console.log("Xatolik yuz berdi, qaytadan harakat qilib ko'ring.")
  })
  
// Siz xatolikni update() metodi ichiga hech narsa
// yozmaslik orqali tekshirib ko'rishingiz mumkin.

Documentni o'rnatib (ustiga yozib), keyin biron ish bajarish

db.collection('foydalanuvchilar')
  .doc({ id: 1 })
  .set({
    id: 1, 
    ism: 'Ulugbek',
    yosh: 27
  })
  .then(response => {
    console.log("O\'rnatish muvaffaqiyatli amalga oshdi.")
  })
  .catch(error => {
    console.log("Xatolik yuz berdi, qaytadan harakat qilib ko'ring.")
  })

// Siz xatolikni set() metodi ichiga hech narsa
// yozmaslik orqali tekshirib ko'rishingiz mumkin.

Documentni o'chirib tashlab, keyin biron ish bajarish

db.collection('foydalanuvchilar')
  .doc({ id: 1 })
  .delete()
  .then(response => {
    console.log("O'chirish muvaffaqiyatli amalga oshdi.")
  })
  .catch(error => {
    console.log("Xatolik yuz berdi, qaytadan harakat qilib ko'ring.")
  })

  // Siz xatolikni doc() metodi ichiga hech narsa
  // yozmaslik orqali tekshirib ko'rishingiz mumkin

Collectionni o'chirib tashlab, keyin biron ish bajarish

db.collection('foydalanuvchilar')
  .delete()
  .then(response => {
    console.log("Collection muvaffaqiyatli o'chirildi.")
  })
  .catch(error => {
    console.log("Xatolik yuz berdi, boshqatdan harakat qilib ko'ring.")
  })
  
// Siz xatolikni collection() metodi ichiga hech narsa
// yozmaslik orqali tekshirib ko'rishingiz mumkin

Ma'lumotlar bazasini o'chirib tashlab, keyin biron ish bajarish

db.delete()
  .then(response => {
    console.log("Ma'lumotlar bazasi muvaffaqiyatli o'chirildi.")
  })
  .catch(error => {
    console.log("Xatolik yuz berdi, boshqatdan harakat qilib ko'ring.")
  })
  
// Eslatma: ba'zida ma'lumotlar bazasini o'chirib
// tashlaganingizda, sahifani qayta yuklamaguningizcha
// Chrome Dev-tools vositalarida o'zgarish bo'lmaydi

Async / Await

Bundan tashqari, barcha operatsiyalar bilan Async / Await dan foydalanishingiz mumkin

Document qo'shish (Async Await bilan)

async function qoshish() {
  await db.collection('foydalanuvchilar').add({
    id: 1,
    ism: 'Otabek',
    yosh: 19
  })
  console.log("Birinchi foydalanuvchi qo'shildi")
  await db.collection('foydalanuvchilar').add({
    id: 2,
    ism: 'Abdulaziz',
    yosh: 19
  })
  console.log("Ikkinchi foydalanuvchi qo'shildi")
}
qoshish()

Documentlarni yangilash (Async Await bilan)

async function yangilash() {
  let natija = await db.collection('foydalanuvchilar')
    .doc({ id: 1 })
    .update({
      ism: 'Abdulakhad'
    })
  console.log(natija)
}
yangilash()

Documentlarni o'rnatish (ustiga yozish, Async Await bilan)

async function ornatish() {
  let natija = await db.collection('foydalanuvchilar')
    .doc({ id: 2 })
    .set({
      id: 4, 
      ism: 'Abdurahmon',
      yosh: 14
    })
    console.log(natija)
}
ornatish()

Collectionni olish va xatolarni ushlash (Async Await bilan)

async function foydalanuvchilarniOlish() {
  try {
    let foydalanuvchilar = await db.collection('foydalanuvchilar')
      .orderBy('yosh')
      .get()
    console.log('foydalanuvchilar: ', foydalanuvchilar)
  }
  catch(error) {
    console.log('xatolik: ', error)
  }
}
foydalanuvchilarniOlish()

// Siz xatolikni collection() metodi ichiga hech narsa
// yozmaslik orqali tekshirib ko'rishingiz mumkin.

Sozlash

Consoledagi Loglarni o'chirish

Odatda, Ombor ishlab chiqish (development) variantida quyidagi kabi ajoyib loglarni browserning dev-tools console bo'limida chiqarib boradi:

Consoleda chiqadigan loglar

Siz bu loglarni db.config.debug boolean maydonigaa false qiymatini berish orqali o'zgartirishingiz mumkin.

Ma'lumotlar bazasini ishga tushirgandan so'ng va boshqa biror narsa bajarishdan oldin quyidagi kodni kiritish kerak:

import Ombor from 'Ombor'
let db = new Ombor('db')

db.config.debug = false

// Buyog'iga databaza bilan biror narsa qilish kerak

Playground

🎮 Interaktiv Playground mavjud!

Ombor kutubxonasini brauzeringizda bevosita sinab ko'ring! Hech narsa o'rnatmasdan, kodingizni yozib, real vaqtda ishga tushiring.

✨ Xususiyatlar

  • Real-time kod ijrosi - Brauzerda bevosita ishga tushirish
  • Console chiqishi - console.log, error, warn ko'rsatish
  • 6 ta tayyor misol - CRUD operatsiyalari uchun tayyor kod namunalari
  • IndexedDB tozalash - Ma'lumotlar bazasini tozalash funksiyasi
  • Keyboard shortcuts - Ctrl+Enter / Cmd+Enter
  • Responsive dizayn - Desktop va mobile qurilmalarda ishlaydi
  • Dark/Light theme - VitePress theme bilan mos

🚀 Qanday ishlatish?

Online (GitHub Pages)

Bevosita brauzeringizda oching: https://otabekoff.github.io/ombor/playground

Local (development)

# Repository'ni clone qiling
git clone https://github.com/otabekoff/ombor.git
cd ombor

# Dependencies'larni o'rnating
npm install

# Docs serverini ishga tushiring
npm run docs:dev

# Brauzerda oching
# http://localhost:5173/playground

📊 Oddiy misol

// Ma'lumot qo'shish
const db = new Ombor('myDatabase')

await db.collection('users').add({
  name: 'Otabek',
  age: 25,
  city: 'Toshkent'
})

// Ma'lumotlarni o'qish
const users = await db.collection('users').get()
console.log('Foydalanuvchilar:', users)

💡 Tayyor misollar

Playground'da quyidagi tayyor misollar mavjud:

  1. Ma'lumot Qo'shish - add() metodi bilan ishlash
  2. Ma'lumotlarni O'qish - get() metodi
  3. Filterlash - orderBy() va limit()
  4. Yangilash - update() metodi
  5. O'chirish - delete() metodi
  6. Murakkab Misol - To-Do ilovasi (Full CRUD)

🎓 O'xshash playgroundlar

Ombor Playground quyidagi mashhur playgroundlardan ilhom oldi:

📚 Ko'proq ma'lumot

Savol yoki takliflar

Ushbu Ombor nomli kutubxona borasida savollar, fikrlar, e'tirozlar, Ushbu reponing issues bo'limida qoldiring. Shuningdex, xatoliklar bo'lsa, o'zbekcha tarjimalarni yashilash bo'yicha fikrlar bo'lsa ham yuqoridagi issues bo'limida qoldiring. Albatta javob beramiz. E'tiboringiz uchun kattakon rahmat.

Zero errors, zero warnings, zero vulnerabilities, zero effort.