npm

Bring the best of OSS JavaScript development to your projects with npm Orgs - private packages & team management tools.Learn more »

@sensenet/client-utils

1.6.0 • Public • Published

sn-client-utils

General sensenet ECM independent client side utilities

Gitter chat Build Status codecov Greenkeeper badge NPM version NPM downloads License Commitizen friendly

Installation

npm install @sensenet/client-utils

Disposable

You can implement disposable resources and use them with a using() or usingAsync() syntax. Example:

class Resource implements IDisposable{
      dispose(){
          // cleanup logics
     }
}
 
using(new Resource(), (resource)=>{
     // do something with the resource
})
 
usingAsync(new Resource(), async (resource)=>{
     // do something with the resource, allows awaiting promises
})

ObservableValue and ValueObservers

You can track value changes using with this simple Observable implementation.

Example:

 
const observableValue = new ObservableValue<number>(0);
const observer = observableValue.subscribe((newValue) => {
    console.log("Value changed:", newValue);
});
 
// To update the value
observableValue.setValue(Math.random());
// if you want to dispose a single observer
observer.dispose();
// if you want to dispose the whole observableValue with all of its observers:
observableValue.dispose();

PathHelper

The class contains small helper methods for path transformation and manipulation.

Retrier

Retrier is a utility that can keep trying an operation until it succeeds, times out or reach a specified retry limit.

const funcToRetry: () => Promise<boolean> = async () => {
            const hasSucceeded = false;
            // ...
            // custom logic
            // ...
            return hasSucceeded;
        };
        const retrierSuccess = await Retrier.create(funcToRetry)
            .setup({
                Retries: 3,
                RetryIntervalMs: 1,
                timeoutMs: 1000,
            })
            .run();

Trace

Trace is an utility that can be used to track method calls, method returns and errors

const methodTracer: IDisposable = Trace.method({
    object: myObjectInstance,           // You can define an object constructor for static methods as well
    method: myObjectInstance.method,    // The method to be tracked
    isAsync: true,                      // if you set to async, method finished will be *await*-ed
    onCalled: (traceData) => {
        console.log("Method called:", traceData)
    },
    onFinished: (traceData) => {
        console.log("Method call finished:", traceData)
    },
    onError: (traceData) => {
        console.log("Method throwed an error:", traceData)
    }
});
 
// if you want to stop receiving events
methodTracer.dispose();

install

npm i @sensenet/client-utils

Downloadsweekly downloads

16

version

1.6.0

license

GPL-2.0

homepage

sensenet.com

repository

Gitgithub

last publish

collaborators

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
Report a vulnerability