Skip to content

๐Ÿ”’ Secure โ„๏ธ Synchronized โšก๏ธ Realtime โ˜๏ธ Cloud ๐ŸŒˆ Native JavaScript Variables & Events

License

Notifications You must be signed in to change notification settings

DiegoRBaquero/node-v

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

V Logo

๐Ÿ”’ Secure โ„๏ธ Synchronized โšก๏ธ Realtime โ˜๏ธ Cloud ๐ŸŒˆ Native JavaScript Variables & Events

npm downloads Greenkeeper badge Build Status codecov
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

jsDelivr CDN:

<script src="https://cdn.jsdelivr.net/npm/v@latest/v.min.js"></script>

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: 'ws(s)://my-domain.com'
}

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

MIT Copyright ยฉ Diego Rodrรญguez Baquero

About

๐Ÿ”’ Secure โ„๏ธ Synchronized โšก๏ธ Realtime โ˜๏ธ Cloud ๐ŸŒˆ Native JavaScript Variables & Events

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •