analogger 2.3.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/ana-logger.cjs +33 -0
package/package.json
CHANGED
package/src/ana-logger.cjs
CHANGED
|
@@ -898,6 +898,29 @@ class ____AnaLogger
|
|
|
898
898
|
return !this.isNode();
|
|
899
899
|
}
|
|
900
900
|
|
|
901
|
+
/**
|
|
902
|
+
* Get a unique identifier generated once by the logger and saved in the local storage.
|
|
903
|
+
* @returns {string|null}
|
|
904
|
+
*/
|
|
905
|
+
getUid()
|
|
906
|
+
{
|
|
907
|
+
if (!this.isBrowser() || typeof window === "undefined" || !window.localStorage)
|
|
908
|
+
{
|
|
909
|
+
return null;
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
const key = "analogger-uid";
|
|
913
|
+
let uid = window.localStorage.getItem(key);
|
|
914
|
+
|
|
915
|
+
if (!uid)
|
|
916
|
+
{
|
|
917
|
+
uid = "uid-" + Date.now() + "-" + Math.floor(Math.random() * 1000000);
|
|
918
|
+
window.localStorage.setItem(key, uid);
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
return uid;
|
|
922
|
+
}
|
|
923
|
+
|
|
901
924
|
resetLogger()
|
|
902
925
|
{
|
|
903
926
|
this.options = {};
|
|
@@ -938,6 +961,7 @@ class ____AnaLogger
|
|
|
938
961
|
this.options.logToRemoteDebounce = undefined;
|
|
939
962
|
this.options.logToRemoteMaxSize = undefined;
|
|
940
963
|
this.options.logToRemoteMinSize = undefined;
|
|
964
|
+
this.options.logUidToRemote = undefined;
|
|
941
965
|
this.remoteBuffer = [];
|
|
942
966
|
this.remoteTimer = null;
|
|
943
967
|
this.remoteWaitCount = 0;
|
|
@@ -985,6 +1009,7 @@ class ____AnaLogger
|
|
|
985
1009
|
logToRemoteDebounce = undefined,
|
|
986
1010
|
logToRemoteMaxSize = undefined,
|
|
987
1011
|
logToRemoteMinSize = undefined,
|
|
1012
|
+
logUidToRemote = undefined,
|
|
988
1013
|
/** Remote - all optional **/
|
|
989
1014
|
protocol = undefined,
|
|
990
1015
|
host = undefined,
|
|
@@ -1031,6 +1056,7 @@ class ____AnaLogger
|
|
|
1031
1056
|
this.options.logToRemoteDebounce = logToRemoteDebounce;
|
|
1032
1057
|
this.options.logToRemoteMaxSize = logToRemoteMaxSize;
|
|
1033
1058
|
this.options.logToRemoteMinSize = logToRemoteMinSize;
|
|
1059
|
+
this.options.logUidToRemote = logUidToRemote;
|
|
1034
1060
|
|
|
1035
1061
|
if (loadHtmlToImage) {
|
|
1036
1062
|
const code = getHtmlToImage();
|
|
@@ -1058,6 +1084,7 @@ class ____AnaLogger
|
|
|
1058
1084
|
{hidePassingTests},
|
|
1059
1085
|
{logToRemote},
|
|
1060
1086
|
{logToLocalStorage},
|
|
1087
|
+
{logUidToRemote},
|
|
1061
1088
|
].forEach((feature) =>
|
|
1062
1089
|
{
|
|
1063
1090
|
const key = Object.keys(feature)[0];
|
|
@@ -2628,6 +2655,12 @@ class ____AnaLogger
|
|
|
2628
2655
|
|
|
2629
2656
|
message = this.convertArgumentsToText(args);
|
|
2630
2657
|
|
|
2658
|
+
// Ensure UID is set early so it's available in history/context when requested
|
|
2659
|
+
if (this.options.logUidToRemote)
|
|
2660
|
+
{
|
|
2661
|
+
context.uid = this.getUid();
|
|
2662
|
+
}
|
|
2663
|
+
|
|
2631
2664
|
let output = "";
|
|
2632
2665
|
let text = this.format({...context, message});
|
|
2633
2666
|
|