node package manager
Orgs are free. Discover, share, and reuse code in your team. Create a free org »

v

V Logo

🔒 Secure ❄️ Synchronized ⚡️ Realtime ☁️ Cloud 🌈 Native JavaScript Variables & Events

npm downloads Greenkeeper badge Build Status codecov bitHound Overall Score
NSP Status Known Vulnerabilities

V extends your in-memory variables to also be saved/persisted instantly. Variables are instantly synchronized between all running instances of V in a room. When you (re)start in a room, variables and constants are reloaded/rehydrated automatically.

Current Features

  • Keep your variables in the cloud
  • Sync variables between instances
  • Automatic reloaded/rehydrated on start-up

Requires ES6 Proxy (Node 6+ and new browsers)

Coming Soon:

  • Web GUI
  • History - Time machine
  • Events pub/sub

Install

Node

npm install --save v
or
npm i -S v

Browser

Unpkg CDN:

<script src="https://unpkg.com/v/v.min.js"></script>

More CDNs coming soon

API

Constructor (3 Ways to do it)

If no roomId is passed, a new one will be assigned automatically and printed in the console.

NodeJS only with deasync support
const V = require('v')
const v = new V([roomId])
Callback
const V = require('v')
V([roomId,] v => {
 
})
Promise
const V = require('v')
V([roomId]).then(v => {
 
}).catch(e => {
 
})

Custom Opts

The opts object has the following options and their default options listed

myOpts = {
  roomId: '',
  server: 'wss://api.online.vars'
}

Use it:

const v = new V(myOpts)

Debug logs

V comes with extensive debugging logs. Each V instance and constructor-call has it own debug namespace.

In node, enable debug logs by setting the DEBUG environment variable to *

DEBUG=* node myProgram.js

In the browser, enable debug logs by running this in the developer console:

localStorage.debug = '*'

Disable by running this:

localStorage.removeItem('debug')

License

GPL-3.0 Copyright © Diego Rodríguez Baquero