agebrock-functional

1.0.2 • Public • Published

Certainly, here is the content formatted in Markdown:

agebrock-functional

Description

agebrock-functional is a utility library designed to assist with functions that may experience long execution times or occasional failures.

Installation

To install agebrock-functional, you can use npm:

npm install agebrock-functional

Usage

Importing

const fn = require('agebrock-functional');
// import {fs} from 'agebrock-functional';

Example Usage

// Define your long-running function
async function longRunningFunctionAsync(a, b){
    //...
}

function longRunningFunction(a, b){
    //...
}

// Wrap the function with functional to cache the result for 2 minutes
const cachedFunc = fn({ func: longRunningFunction, ttl: 120 });

// Use cachedFunc in the same way as you would use longRunningFunction
cacheFunc(1, 2);

// For async functions, it works similarly
const cachedFunc = fn({ func: longRunningFunctionAsync, ttl: 120 });
await cacheFunc(1, 2);

// Attach a scope if needed
const cachedFunc = fn({ scope: myScope, func: longRunningFunction, ttl: 120 });

// Set a refreshInterval to renew the cache in the background every 5 seconds (disables ttl)
const fnCached = fn({ func: testFunc, refreshInterval: 5 });

// To clear the interval, set an out reference to get the controller class
const out = {};
const fnCached = fn({ func: testFunc, refreshInterval: 5, out });
out.fn.clearInterval();

// Add retry count
const fnCached = fn({ func: testFunc, refreshInterval: 5, out, {retry: 5} });

Note

Ensure that you handle any errors or exceptions that may occur during function execution appropriately, especially when using caching and retry mechanisms.

Dependencies (2)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i agebrock-functional

    Weekly Downloads

    0

    Version

    1.0.2

    License

    ISC

    Unpacked Size

    12.1 kB

    Total Files

    4

    Last publish

    Collaborators

    • chbrock