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

datarecorder

v1.0.3

Published

[![NPM Publish](https://github.com/shiveshnavin/datarecorder/actions/workflows/main.yml/badge.svg)](https://github.com/shiveshnavin/datarecorder/actions/workflows/main.yml)

Downloads

7

Readme

Data Recorder

NPM Publish

A simple library to record data in chunks.

Requirements

Database connection is required for using datarecorder. Refer to MultiDbOrm for more details

Supported databases:

  • MongoDB
  • Google Firestore
  • SQlite3

Install

Run in your NodeJS root

npm install -s datarecorder

Usage

Initialize the reocorder

Initialize with chunk size and multidb database connection.

  • chunkSize : Chunk size is the number of records which will be clubbed and flushed to database.
  • db : Optional. A MultiDbORM database connection. If db is not passed, a local file based sqlite db is used.

Example using SQLite

let recorder = require('datarecorder')

let chunkSize = 100;
let messageRecorder = recorder('myMessageRecorderID')
messageRecorder.init(chunkSize)

Example using firestore:

let recorder = require('datarecorder')

let chunkSize = 100;
const { MultiDbORM, FireStoreDB, MongoDB, SQLiteDB } = require("multi-db-orm");
let db = new FireStoreDB('./path/to/serviceaccount.json');

let messageRecorder = recorder('myMessageRecorderID',db)
messageRecorder.init(chunkSize)

Record data

After every chunkSize records the data will be flushed to database automatically. The objects recorded can be heterogenous.

messageRecorder.record({
    location:"Home",
    message:"An elephant entered the wardrobe"
})
messageRecorder.record({
    location:"Office",
    message:"The wabbit burnt the closet."
})

let urgentMessage = {
    imageUrl : 'http://example.com/elephant.png'
}
messageRecorder.record(urgentMessage)

Once you are done with recording the data or want to flush the data manually , you can explicitly flush using.

messageRecorder.flush()

Read Data

Reads the saved records in ascending order of time and returns an array.

let messages = await messageRecorder.read()
console.log('Read', messages.length, 'messages')

Delete Data

This will remove all the records for messageRecorder

let messages = await messageRecorder.delete()