2.10.0 • Published 2 months ago

@sliit-foss/functions v2.10.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

@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 to true or 1 to disable tracing.
2.10.0

2 months ago

2.10.0-blizzard.0

2 months ago

2.9.0

2 months ago

2.8.0

2 months ago

2.9.1

2 months ago

2.7.0

2 months ago

2.7.1

2 months ago

2.5.0

4 months ago

2.6.0

4 months ago

2.4.2

4 months ago

2.6.0-blizzard.0

4 months ago

2.6.0-blizzard.1

4 months ago

2.4.1

4 months ago

2.4.0

4 months ago

2.3.0

4 months ago

2.3.1

4 months ago

2.2.3

9 months ago

2.2.2

10 months ago

2.2.4

7 months ago

2.2.1

1 year ago

2.2.0

1 year ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.2

1 year ago

2.1.1

1 year ago

2.1.0

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.2.0

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago