npm

Ready to take your JavaScript development to the next level? Meet npm Enterprise - the ultimate in enterprise JavaScript.Learn more »

@sensenet/client-utils

1.6.4 • Public • Published

@sensenet/client-utils

General sensenet independent client side utilities

NPM version NPM downloads License: GPL v2

Install

# Yarn 
yarn add @sensenet/client-utils
 
# NPM 
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.4

license

GPL-2.0

homepage

sensenet.com

repository

Gitgithub

last publish

collaborators

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