# 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"); ```