@leanscope/inspection
v0.1.7
Published
## Warning
Downloads
242
Keywords
Readme
Inspection
Warning
Inspection is currently still under development. Therefore be careful when using this package in production since breaking changes will very likely occur.
We currently have a dependency to firebase since our data sender service sends data to a firebase instance. However this does not mean that you have to use firebase in order to use this package. You can also write your own sender service that covers your needs.
About
Inspection is a lightweight package that enables you to track usage data from your app and cache it locally before sending it to a backend server.
Usage
Tracking events
In order to track events and save them locally you need to create an inspector. The type will define what the event context must look like when you call the trackEvent() method. If you have two use cases where the event context differs, the intended way would be to create an inspector for each of the use cases.
const inspector = Inspection.instance().createInspector<T>();
That inspector can then be used to track events. As parameter the trackEvent method take a object that contains the context to the tracked event. The event context gets added to some metadata to create an observation.
const eventContext = {};
inspector.trackEvent(eventContext);
Sending observations to a backend
To send the locally stored observations to a backend you need to add a IDataSenderService
to the Inspection
instance. As second parameter of the addDataSenderService
method you can specify the interval in which the service should send data to the backend. If left empty this defaults to 60000 ms.
const senderService = new ConsoleSenderService();
const sendingIntervalInMs = 120000;
Inspection.instance().addDataSenderService(senderService, sendingIntervalInMs);
If you want to stop the sender service from continually sending data you can also remove it from the inspection instance.
Therefore you need the id of the sender service which you get from the addDataSenderService
method.
const id = Inspection.instance().addDataSenderService(senderService);
Inspection.instance().removeDataSenderService(id);