57 lines
1.4 KiB
Markdown
57 lines
1.4 KiB
Markdown
# Utils
|
|
|
|
The utils only use standard JavaScript, so they can be used in Browser and NodeJS.
|
|
|
|
Also they are very small. Uncompressed and unminified only 3kb.
|
|
|
|
The utils have TypeScript definitions and are compatible with ES2015.
|
|
|
|
## Lock
|
|
|
|
Lock is a very simple promise based Locking mechanism for JavaScript.
|
|
|
|
Usage:
|
|
``` typescript
|
|
import { Lock } from "@hibas123/utils";
|
|
|
|
const lock = new Lock();
|
|
|
|
async doThingThatNeedsLocking() {
|
|
let release = await lock.getLock(); // This will wait till lock from others is released
|
|
|
|
// Do stuff that requires lock
|
|
|
|
release(); // Release lock
|
|
}
|
|
```
|
|
|
|
## Observable
|
|
|
|
Very simple and light weight Observable.
|
|
|
|
Usage:
|
|
``` typescript
|
|
import { Observable } from "@hibas123/util";
|
|
|
|
const server = new Observable(); // Get new Observable Server
|
|
|
|
// Server can only send, not subscribe to messages
|
|
// Receiving is only possible via the public API
|
|
const public = server.getPublicApi();
|
|
|
|
const func = (data)=>{
|
|
console.log(data);
|
|
}
|
|
|
|
// func will be callen when a message is available
|
|
public.subscribe(func);
|
|
|
|
server.send("Hello World");
|
|
|
|
// This will unsubscribe the function. Please note, that it can
|
|
// only unsubscribe the exact function, that is used in subscribe
|
|
public.unsubscribe(func);
|
|
|
|
// This now won't call func anymore
|
|
server.send("Hello World2");
|
|
``` |