Json-Chronicler
![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=curium-rocks_json-chronicler&metric=security_rating)
What does it do?
This library facilitates saving records to local files in JSON format. It will
append a record to a json file and honor chronological rotation settings.
How to install
npm install --save @curium.rocks/json-chronicler
How do I use it?
Setup your options
import {JsonChroniclerOptions} from "@curium.rocks/json-chronicler";
const logOptions: JsonChroniclerOptions = {
name: "yourLoggerName",
logDirectory: "./logs",
rotationSettings: {
days: 7,
hours: 1,
minutes: 5,
milliseconds: 750
}
}
Create and save a record
import {JsonChronicler} from "@curium.rocks/json-chronicler";
import {IChronicler} from "@curium.rocks/data-emitter-base";
const chronciler: IChronicler = new JsonChronicler(logOptions);
await chronciler.saveRecord({
toJSON: () => {
return {
property1: 0.123,
property2: "blue"
}
}
})
Make your models compatible
import {IJsonSerializable} from "@curium.rocks/data-emitter-base";
export class Model implements IJsonSerializable {
private hidden = "will not be saved";
private property1 = 0.123;
private property2 = "blue";
toJSON(): Record<string, unknown> {
return {
desiredSavedPropName1: this.property1,
desiredSavedPropName2: this.property2
};
}
}