Socket
Socket
Sign inDemoInstall

@iobroker/db-objects-file

Package Overview
Dependencies
132
Maintainers
6
Versions
361
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@iobroker/db-objects-file

The Library contains the Database classes for File based objects database client and server.


Version published
Maintainers
6
Weekly downloads
6,607
decreased by-29.17%

Weekly downloads

Readme

Source

File objects DB base classes for ioBroker

The Library contains the Database classes for File based objects database client and server.

Redis simulator

The objects db client is always a redis client, but if the database type is file, it will communicate with a built-in redis simulator instead of a real redis db.

In the js-controller we use ioredis, the library supports all redis commands by simply calling them on the client instance, like redis.set("foo", "bar"). For an explanation of the commands in native redis, we refer to the redis documentation.

Currently, the following commands are supported by the simulator for objects db:

Namespaces

The simulator supports four different namespaces:

  • files (default: cfg.f.)
  • objects (default: cfg.o.)
  • sets (default: cfg.s.)
  • meta (default: meta.)

Overview: Objects db and general functionalities

CommandState of integrationnamespace
quitfullindependent
scriptpartialindependent
evalshafullindependent
publishfullobjects, meta
mgetfullobjects, files
getfullobjects, files, meta
setfullobjects, files, meta
delfullobjects, files
existsfullobjects, files, sets
scanfullobjects, files, sets
keysfullobjects, files, sets
psubscribefullobjects, meta
punsubscribefullobjects
configdummyindependent
clientpartialindependent
multi/execpartialindependent
sadddummyindependent
sremdummyindependent
sscanfullobjects, files, sets
evaldummyindependent

Overview: File db specific

CommandState of integration
mgetfull
getfull
setfull
renamefull
delfull
existsfull
scanfull
keysfull

quit

This will close the connection.

script

When receiving a script, the server mocks the methods load and exists, load will store a funcor design script in memory. On an exists request, the server will return all known scripts.

evalsha

Evalsha can be used to execute a stored script.

publish

On publish the server will publish to all clients who have subscribed to the objects, just like redis does.

mget

mget is used to receive multiple objects/files from the server.

get

get is used to receive a single object/file from the server.

set

set is used to set an object/file to the database.

rename

rename allows renaming a file.

del

del deletes a given object/file from the db.

exists

exists checks if a given object/file exists in the database. For sets this is just a dummy.

scan

scan is just like keys and returns all matching keys, but addtionally it returns the counter (always 0) to satisfy the redis client. For sets this is just a dummy.

keys

It returns all matching keys. For sets this is just a dummy.

psubscribe

Subscribes for a pattern to receive object changes.

punsubscribe

Unsubscribes a pattern to no longer receive object changes.

config

Mainly a dummy, just sends a positive response if lua-time-limit change received.

client

Is used to handle setname and getname requests. setname is used to change the logging namespace. On getname the server will respond with the current connection name, which has been set via getname.

multi/exec

Multi/exec is fully integrated but only works with pipelines and will give a piped response. It will not respond until exec is called. On exec the simulator responds with OK (for multi), QUEUED for every command and the real results as an array for exec.

sadd

Just a dummy, always responds with 1, which means we have added the item to the set.

srem

Just a dummy, always responds with 1, which means we have removed the item from set.

sscan

Does the same as scan.

eval

Just a dummy, always responds with null.

License

Apache 2.0 Copyright 2018-2023 bluefox dogafox@gmail.com

Keywords

FAQs

Last updated on 30 Jan 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc