1.0.4 • Published 2 years ago

@ryanforever/collector v1.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

collector

A persistant collector, useful when making long polling requests for data. This will continuously write data to a local JSON file, to persist, even in the event of network errors, or anything else that would cause you to loose data if it was in-memory.

const Collector = require("@ryanforever/collector")
const collector = new Collector({
	name: "test",
	savePath: "../tmp"
})

longPollingFunction.on("data", data => {
	collector.push("items", data) // push data with a key and value. collector will save it to the JSON file
	collector.push("items" ...data) // if data is an array
})

longPollingFunction.on("done", () => {
	let result = collector.get() // get 
	console.log(result)
	collector.delete() // delete the collector's json file
})

usage

Initialize the collector. This will create a JSON file at ../temp/test_collector.json

const Collector = require("@ryanforever/collector")
const collector = new Collector({
	name: "test",
	savePath: "../tmp"
})

Push data into a collector

// push an array of items in, using the spread operator.  same functionality as javascripts Array.prototype.push
let arrayOfItems = ["apple", "orange", "banana", "pear"]
collector.push("items", ...arrayOfItems)

// push a single item
collector.push("items", "strawberry")

Get data from collector

// get a single collector
let items = collector.get("items")

// get all collectors
let allCollectorData = collector.get()

methods

collector.push("key", value) // will create a new key if not exist, and push data into it
collector.add("key", value) // alias for .push()

collector.get("key") // get collector array by key
collector.get() // get all collector arrays

collector.has("key") // returns true if key exists

collector.clear("key") // clear a single collector array
collector.clear() // clear all collector arrays

collector.delete() // ⚠️ deletes the actual JSON file of the collector
1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago