Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@iobroker/db-objects-file

Package Overview
Dependencies
Maintainers
6
Versions
436
Alerts
File Explorer

Advanced tools

Socket logo

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.

  • 6.0.1-alpha.0-20240603-3deca26fa
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
6
Weekly downloads
 
Created
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

Package last updated on 03 Jun 2024

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc