open-index/open-npm huggingface dataset:
npm package: @leonardvandriel/fireman
Description: A wrapper around both a Firebase REST API and a local in-memory database.
Author: Leo Vandriel
Latest version: 0.0.3

<img src="icon.jpg" alt="Fireman Icon" width="72"/>


Fireman
=======

*A wrapper around both Firebase REST API and local in-memory database.*

Fireman provides a unified interface to both remote Firebase database and local flame database. This allows for easy switching between the Firebase REST API in production and a local in-memory database for development and testing.


## Installation

    npm install @leonardvandriel/fireman

NB: *Make sure you first backup your Firebase database before using Fireman.* Fireman is still in alpha stage and might have some serious bugs. Also, you might just accidentally overwrite your Firebase database yourself. More information on the [Firebase website](https://firebase.google.com/docs/database/ios/backups) and on [Stack Overflow](https://stackoverflow.com/questions/27910784/is-it-possible-to-backup-firebase-db).

## Usage

    const fireman = require('@leonardvandriel/fireman')

    // either setup fireman to use local database:
    fireman.useLocalDB('database.json')
    // or setup fireman to use remote database:
    fireman.useRemoteDB('<app-name>', '<api-key>')
    // or use local ephemeral database (in-memory):
    fireman.useLocalDB(null)
    fireman.localDB = { "key": "value" }

    // Read user
    console.log(fireman.get('/user/abcd'))

    // Add user
    fireman.put('/user/efgh', { name: 'Romona Moten', age: 20 })

    // Query users
    console.log(fireman.get('/user/abcd', { orderBy: 'age', limitToLast: 1, startAt: 10 }))

    // Iterate over all users (50 per batch, 2 in parallel)
    this.iterate('/user', 50, 2, user => console.log(user))

    // Use multiple keys
    console.log(fireman.get(['/user/abcd', '/usr/efgh']))
    fireman.put(['/user/abcd', '/usr/efgh'], { name: 'Romona Moten', age: 20 })

    // Reload local database from file
    fireman.reload()
    // Write local database to file (with pretty formatting)
    fireman.save(true)

    // Download remote to local database
    fireman.sync()
    fireman.save()

    // Get all keys of object
    console.log(fireman.keys('/user'))
    // Get all values of object
    console.log(fireman.values('/user'))

    // Increment age by 10
    console.log(fireman.increment('/user/abcd', { age: 10 }))

    // Generate unique firebase keys
    fireman.keyForNow()
    fireman.keyForTimestamp(1234567890)
    fireman.timestampForKey('--08_VAHXMEfyLmXTYVm')

## Rules

Fireman has built-in support for managing database security and validation rules.

    // Use the remote database
    fireman.useRemoteDB()

    // Download rules to file
    fireman.syncRules()

    // Show the difference between file and database
    fireman.diffRules()

    // Update rules from file
    fireman.deployRules()


## Tests

    npm test


## License

Fireman is licensed under the terms of the BSD 3-Clause License, see the included LICENSE file.


## Authors

- Leo Vandriel
- Onno Faber
npm package: @leonardvandriel/flame
Description: A Firebase REST API on a local in-memory database.
Author: Leo Vandriel
Latest version: 0.0.4

<img src="icon.jpg" alt="Flame Icon" width="72"/>


Flame
======

*A Firebase REST API on a local in-memory database.*

With Flame you can use the Firebase REST API on a local in-memory database. This is useful when you for example want to run tests locally.


## Installation

    npm install @leonardvandriel/flame


## Usage

    const flame = require('@leonardvandriel/flame')

    // load database
    const json = '{ "user": { "abcd": { "name": "John", "age": 85 } } }'
    flame.loadJSON(json)
    // or read from file: const json = fs.readFileSync('database.json', 'utf8')

    // Read user
    console.log(flame.get('/user/abcd'))

    // Add user
    flame.put('/user/efgh', { name: 'Romona Moten', age: 20 })

    // Query users
    console.log(flame.get('/user/abcd', { orderBy: 'age', limitToLast: 1, startAt: 10 }))


## Tests

    npm test


## License

Flame is licensed under the terms of the BSD 3-Clause License, see the included LICENSE file.


## Authors

- Leo Vandriel