# super-var beta

https://www.npmjs.com/package/@telemok/super-var  JS value with .set(), .get(), .assert(), and .addEventListener('change',(e)=>{}).

## Features

- Add event listener to instantly view variable changes.

## Installation:
1. Create your NodeJs, Browser or Webview app.
2. import { SuperVar, SuperBoolean } from "@telemok/super-var"
3. let superVar = new SuperVar();
4. ...
5. superVar.destroy();

## Examples:

1. Parsing students database

  ```javascript
import { valda } from "@telemok/valda"
import { SuperVar } from "@telemok/super-var"

let temperatureCelsius = new SuperVar();
temperatureCelsius.whyNotValue = (value) => {return valda.numberMinMax.whyNot(value, -64, 128);}
temperatureCelsius.addEventListener('change', ()=>{
	let text = "???";
	if(!temperatureCelsius.isClear())
		text = temperatureCelsius.get() + "&deg";
	document.getElementById("spanThemperature").innerText = text;
});
temperatureCelsius.addEventListener('change', ()=>{
	if(!temperatureCelsius.isClear())
    {
        let t = temperatureCelsius.get();
        if(t > 90)/*If temperature*/
            fetch(`https://api.telegram.org/${token}/sendMessage?chat_id=${chatId}&text=overheat_${t}`);
		/* then send message to Telegram */	
    }
});

function end() {
	temperatureCelsius.destroy();//Will destroy all listeners
}

function receive(rawValue) {
	rawValue = valda.integerMinMax.assert(rawValue, 0, 1023);
	temperatureCelsius.set(rawValue / 16);//set data
}

  ```

2. Assert and localStorage 

Only for browser, localStorage don't work on Node.js, 
but window.localStorage can be installed for Node.js

  ```javascript
import {nextUniqueVarName} from "@telemok/super-var"

let superVar = new SuperVar({
	assert: (value)=>{
		if(value > 0.9)
			throw new RangeError(`Test assert: ${value} > 0.9`);
		return value;
	},
	localStorageKey: "example_localStorage_testSuperVar",
});
console.log("value get = ",superVar.toString());
superVar.set(Math.random());
console.log("value set = ",superVar.toString());
  ```

