@sliit-foss/functions
v2.10.0
Published
Just a small set of utility functions
Downloads
188
Readme
@sliit-foss/functions
Just a small set of utility functions
Installation
# using npm
npm install @sliit-foss/functions
# using yarn
yarn add @sliit-foss/functions
Usage
# using require
const { trace, traced, cleanTraced, cleanTrace, bindKey, asyncHandler, tracedAsyncHandler } = require("@sliit-foss/functions");
# using import
import { trace, traced, cleanTraced, cleanTrace, bindKey, asyncHandler, tracedAsyncHandler } from "@sliit-foss/functions";
Examples
trace
trace(function foo() {
console.log(123);
});
/*
foo execution initiated
123
foo execution completed - execution_time : 0.2069999985396862
*/
traced
(Same as trace but returns a decorated function)
const tracedFoo = traced(function foo() {
console.log(123);
})();
tracedFoo();
/*
foo execution initiated
123
foo execution completed - execution_time : 0.2069999985396862
*/
cleanTraced and cleanTrace
(Same as the above two but ignores tracing for anonymous functions to avoid polluting the logs)
tracing a function with a layer prefix (Works for all 4 functions above)
const tracedFoo = traced["controller"](function foo() {
console.log(123);
})();
tracedFoo();
/*
controller >>> foo execution initiated
123
controller >>> foo execution completed - execution_time : 0.2069999985396862
*/
bindKey
(Creates a bounded function from a passed object and function key with its context preserved)
const obj = {
name: "test-object",
foo() {
console.log(`Inside ${this.name} function foo`);
}
};
const preserved = bindKey(obj, "foo");
setTimeout(preserved, 0); // Outputs `Inside test-object function foo`
console.log(preserved.name); // Outputs `bound foo`
tracedAsyncHandler
tracedAsyncHandler(async function hello(req, res) => {
res.send("Hello World");
});
/*
hello execution initiated
hello execution completed - execution_time : 0.2069999985396862
*/
asyncHandler
(Same as tracedAsyncHandler but without the tracing. Useful when you don't want to trace the execution time of the function)
asyncHandler(async function hello(req, res) => {
res.send("Hello World");
});
Disabling tracing
- Set the environment variable
DISABLE_FUNCTION_TRACING
totrue
or1
to disable tracing.