1.0.1 • Published 3 years ago

lildata v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Lil Data

When you need the opposite of big data.

What

A small, loosly persisted javascript Map. Since everything is fitted in a JS object, your data should be small, few megabytes at most. All writes are async and flushed every 250ms, loosing data in that time frame must be acceptable or use something else.

Why

Because sometimes you just want to save the state of your app and even pulling sqlite would be overkill.

  • Little overhead on js native Map so it's fairly fast
  • Simple

    This solution fit in 100 lines of code.

How

Usage:

// init the table
// will use the name of the file +.json if import.meta is used
const users = persist(import.meta, { primary: 'id' }) // optional
const users = persist('/path/to/some/file')

// adding data, objects only with the primary key
users.put({
	id: 1,
	name: 'Chris',
	birthDate: '1988-05-11',
})

// removing data
users.del(1)
users.del({ id: 1 }) // or

// wait for next batch write
await users.sync()

// get by primary key
const chris = user.get(1)

// query data
const chris = users.find(user => user.name === 'Chris')

// query multiple elements
const users.filter(user => user.birthDate.startsWith('1988'))

// synchronous cleanup the data file (destroy changes history)
users.vacum()
1.0.1

3 years ago

1.0.0

3 years ago