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 🙏

© 2024 – Pkg Stats / Ryan Hefner

falsisdb

v2.3.2

Published

Falsisdb; Türkçe, hızlı, güvenilir, kullanışlı, açık kaynak kodlu, event ve yedekleme destekli, json ve yaml database modülü.

Downloads

24

Readme

Falsisdb

Falsisdb; Türkçe, hızlı, güvenilir, kullanışlı, açık kaynak kodlu, event ve yedekleme destekli, json ve yaml database modülü.

Kurulum

Modülü kurmak için öncelikle konsola aşağıdaki komutu yazmalısınız.

npm i falsisdb@latest

veya bunun yerine en en güncel sürümü github'dan çekin. (Hatalar olabilir.)

npm i "https://github.com/falsisdev/falsisdb.git#master"

Bunu yazdıktan sonra modülün indirilmesiniz bekleyin. Modül kurulunca main (ana) dosyanıza aşağıdaki kodu ekleyin. Kodu en başa eklerseniz dosyanız düzenli olur.

Yedekleme Sistemi ve Daha Fazlası

Yedekleme sisteminin amacı, ana veri tabanı dosyasına herhangi bir zarar gelirse veri tabanını kolayca yedek dosyasında saklaması. Bunun üzerine Peki ya yedek dosyasına zarar gelirse? tarzı bir soru gelebilir. Bunun için yedek sistemine backupTime ekledik. Örneğin veri tabanına 1 veri eklediğinizde veri anında yedeğe atılmıyor da ayarladığınız sayı kadar veri eklendiğinde yeni bir yedek oluşturup o zaman yedeği atıyor. Böylece yedek dosyası, ana veri tabanı dosyası kadar hareketli ve risk altında olmuyor.

Şimdi biraz kullanımından bahsedelim. Kullanımından Bahsetmeden Önce birkaç şey hatırlatmak istiyorum.

  1. Yedek Sistemindeki tüm ögeler ve nesneler isteğe bağlıdır.
  2. Yedek Sistemi aktif olduğunda, falsisdb klasöründe backupData.json dosyası oluşacaktır. Bu dosyada kaç tane backup alındığı, 1 başlatma sürecinde kaç veri kaydedildiği (time kısmı için kullanılıyor.) ve eğer 1 başlatma sürecinde kaydedilen veri sayısı tanımlanan time değerine eşit değilse eşit olana kadar kaydedilen verilerin yedeği tutulur. Böylece proje kaç kere yeniden başlatılsa bile hiçbir şey sıfırlanmaz. Eğer bir veri önceden yedeklendiyse veya yedekleme sırasına konulduysa tekrar yedeklenmez veya yedekleme sırasına konulmaz. Bu bir hata değil, bilinçli yapılmış bir özelliktir. Ayrıca eğer bir veriyi veri tabanından silerseniz, bu veri yedek dosyasında bulunmaya devam eder. Böylece eğer sildiğiniz veriyi yanlışlıkla sildiyseniz veya veri kendiliğinden silindiyse yedekleme dosyasından tekrar alabilirsiniz.
const { JSONDatabase } = require("falsisdb");
const db = new JSONDatabase({
    filePath: "BURAYA VERI TABANI DOSYASININ DOSYA KONUMU YAZILACAK", //isteğe bağlı
    backup: { //isteğe bağlı
        path: "BURAYA YEDEKLEME DOSYASININ DOSYA KONUMU YAZILACAK", //isteğe bağlı
        time: 5 //BURAYA YEDEKLEMENIN KAÇ VERIDE BIR YAPILACAGI YAZILACAK VARSAYILAN = 5 //isteğe bağlı
    },
    eventInterval: 100 //BURAYA EVENTLERIN KAC MILISANIYEDE (MS) BIR KONTROL EDİLECEĞİ YAZILACAK VARSAYILAN = 100ms //isteğe bağlı
})

Not: { JSONDatabase } kısmı veri tabanının türünü belirler. Bunu isteğe bağlı olarak { YAMLDatabase } ile de değiştirebilirsiniz. Ancak bu değişiklik sonrasında filePath ögesinin de uzantısını değiştirmeniz gerekir. Aksi takdirde bir hata ile karşılaşırsınız. Aynı şekilde new'den sonraki kısım da {} içerisindeki kısımla aynı olmalı. Not: TypeScript için de kullanım bu şekildedir.

filePath ögesi isteğe bağlıdır. Unutmayın, dosya başına ./ konmalıdır! Proje Başlatıldığında Unexpected end of JSON input hatasını alabilrisiniz. Bunun sebebi dosyaya {} (suslü parantez) koymamanız. Dosyaya girip içerisine {} yazın. Ve artık kullanmaya başlayabilirsiniz. backup nesnesi type, path ve time ögelerini içerir. backup.path: Yedekleme Alınacak Dosyayı Tanımlar. backup.time: Yedeklemenin Kaç Veride Bir Yapılacağını Tanımlar. eventInterval: Eventlerin ne kadar sürede bir kontrol edileceğini tanımlar Yukarıdaki Paragraftaki tüm ögeler ve nesneler isteğe bağlıdır. Eğer Yazılmazsa Aşağıdakiler Uygulanır. Veri Tabanı Dosyası: Varsayılanı ./falsisdb/database.json veya ./falsisdb/database.yaml Yedekleme: Eğer hiçbir şey tanımlanmazsa yedekleme alınmaz. Ancak Aşağıdakilerden Herhangi Biri Bile Tanımlanırsa Varsayılanlar Aşağıdaki Gibi Olur. Yedekleme Dosyası: Varsayılanı ./falsisdb/backup.json veya ./falsisdb/backup.yaml Yedekleme Aralığı: Varsayılanı 5 veride bir. Event Interval: Varsayılan 100 milisaniyede bir.

Event Sistemi

  • DataSet

dataSet eventi bir veri eklendiğinde tetiklenecek kodu tanımlamak için kullanılr.

db.on("dataSet", (data) => {
    if(data.changed == true){
        console.log(`📝 Veri Tabanında Bir Veri Değiştirildi\n- Veri İsmi: ${data.key}\n- Eski Değeri: ${data.oldValue}\n- Yeni Değeri: ${data.value}`) 
    }
    console.log(data)
})
  • DataDelete

dataDelete eventi bir veri silindiğinde tetiklenecek kodu tanımlamak için kullanılr.

db.on("dataDelete", (data) => {
        console.log(`📝 Veri Tabanında Bir Veri Silindi\n- Veri İsmi: ${data.key}\n- Eski Değeri: ${data.value}`)
})

Geliştirme

Teşekkürler: lunexdev, berat141, aloima, iamashley0