@logdash/node 1.0.0 → 1.0.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @logdash/core
2
2
 
3
+ ## 1.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - fd7a94b: feat: minor changes
8
+
3
9
  ## 1.0.9
4
10
 
5
11
  ### Patch Changes
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @logdash/node
2
2
 
3
- Logdash is a zero-config observability platform. This package serves a Node.js/Bun/Deno/Browser interface to use it.
3
+ Logdash is a zero-config observability platform. This package serves a NodeJS/Bun/Deno interface to use it.
4
4
 
5
5
  ## Pre-requisites
6
6
 
@@ -57,8 +57,7 @@ await logdash.flush();
57
57
 
58
58
  To see the logs or metrics, go to your project dashboard
59
59
 
60
- ![logs](docs/logs.png)
61
- ![delta](docs/delta.png)
60
+ ![dashboard](docs/image.png)
62
61
 
63
62
  ## Configuration
64
63
 
package/dist/Logdash.d.ts CHANGED
@@ -5,8 +5,8 @@ export interface LogdashOptions {
5
5
  verbose?: boolean;
6
6
  }
7
7
  interface LogdashCore {
8
- logQueue: RequestQueue<LogPayload>;
9
- metricQueue: RequestQueue<MetricPayload>;
8
+ logQueue: RequestQueue<LogPayload> | null;
9
+ metricQueue: RequestQueue<MetricPayload> | null;
10
10
  sequenceNumber: number;
11
11
  verbose: boolean;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Logdash.d.ts","sourceRoot":"","sources":["../src/Logdash.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAEN,UAAU,EACV,aAAa,EACb,MAAM,8BAA8B,CAAC;AAGtC,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAYD,UAAU,WAAW;IACpB,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACnC,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,OAAO;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;gBAExB,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;gBACzC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM;IA8BhD,OAAO,CAAC,aAAa;IAWrB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIjC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAa5C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAe/C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAM9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,GAAG;IAiBX,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,UAAU;CAclB"}
1
+ {"version":3,"file":"Logdash.d.ts","sourceRoot":"","sources":["../src/Logdash.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAEN,UAAU,EACV,aAAa,EACb,MAAM,8BAA8B,CAAC;AAGtC,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,WAAW;IACpB,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAC1C,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,OAAO;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;gBAExB,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;gBACzC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM;IA4ChD,OAAO,CAAC,aAAa;IAWrB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIjC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAiB5C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAmB/C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAM9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,GAAG;IAiBX,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,UAAU;CAclB"}
package/dist/Logdash.js CHANGED
@@ -2,16 +2,7 @@ import chalk from 'chalk';
2
2
  import { internalLogger } from './logger/internalLogger.js';
3
3
  import { RequestQueue } from './queue/RequestQueue.js';
4
4
  import { HttpTransport, } from './transport/HttpTransport.js';
5
- import { LogLevel } from './types/LogLevel.js';
6
- const LOG_LEVEL_COLORS = {
7
- [LogLevel.ERROR]: [231, 0, 11],
8
- [LogLevel.WARN]: [254, 154, 0],
9
- [LogLevel.INFO]: [21, 93, 252],
10
- [LogLevel.HTTP]: [0, 166, 166],
11
- [LogLevel.VERBOSE]: [0, 166, 0],
12
- [LogLevel.DEBUG]: [0, 166, 62],
13
- [LogLevel.SILLY]: [80, 80, 80],
14
- };
5
+ import { LogLevel, LOG_LEVEL_COLORS } from './types/LogLevel.js';
15
6
  export class Logdash {
16
7
  constructor(apiKeyOrCore, optionsOrNamespace) {
17
8
  if (this.isLogdashCore(apiKeyOrCore)) {
@@ -21,17 +12,30 @@ export class Logdash {
21
12
  }
22
13
  else {
23
14
  // Public constructor: new Logdash(apiKey?, options?)
24
- const apiKey = apiKeyOrCore ?? '';
15
+ const apiKey = apiKeyOrCore;
25
16
  const options = optionsOrNamespace;
26
- const host = options?.host ?? 'https://api.logdash.io';
27
17
  const verbose = options?.verbose ?? false;
28
- const transport = new HttpTransport({ host, apiKey });
29
- this.core = {
30
- logQueue: new RequestQueue((logs) => transport.sendLogs(logs)),
31
- metricQueue: new RequestQueue((metrics) => transport.sendMetrics(metrics)),
32
- sequenceNumber: 0,
33
- verbose,
34
- };
18
+ if (apiKey) {
19
+ // Remote mode: create transport and queues
20
+ const host = options?.host ?? 'https://api.logdash.io';
21
+ const transport = new HttpTransport({ host, apiKey });
22
+ this.core = {
23
+ logQueue: new RequestQueue((logs) => transport.sendLogs(logs)),
24
+ metricQueue: new RequestQueue((metrics) => transport.sendMetrics(metrics)),
25
+ sequenceNumber: 0,
26
+ verbose,
27
+ };
28
+ }
29
+ else {
30
+ internalLogger.warn('No API key provided, using local mode.');
31
+ // Local mode: console-only, no transport or queues
32
+ this.core = {
33
+ logQueue: null,
34
+ metricQueue: null,
35
+ sequenceNumber: 0,
36
+ verbose,
37
+ };
38
+ }
35
39
  this.namespace = undefined;
36
40
  }
37
41
  }
@@ -65,6 +69,9 @@ export class Logdash {
65
69
  }
66
70
  // === Metric Methods ===
67
71
  setMetric(name, value) {
72
+ if (!this.core.metricQueue) {
73
+ return; // Local mode: metrics are not supported
74
+ }
68
75
  if (this.core.verbose) {
69
76
  internalLogger.verbose(`Setting metric ${name} to ${value}`);
70
77
  }
@@ -76,6 +83,9 @@ export class Logdash {
76
83
  });
77
84
  }
78
85
  mutateMetric(name, delta) {
86
+ if (!this.core.metricQueue) {
87
+ return; // Local mode: metrics are not supported
88
+ }
79
89
  if (this.core.verbose) {
80
90
  internalLogger.verbose(`Mutating metric ${name} by ${delta}`);
81
91
  }
@@ -92,14 +102,17 @@ export class Logdash {
92
102
  }
93
103
  // === Lifecycle ===
94
104
  async flush() {
105
+ if (!this.core.logQueue || !this.core.metricQueue) {
106
+ return; // Local mode: nothing to flush
107
+ }
95
108
  await Promise.all([
96
109
  this.core.logQueue.flush(),
97
110
  this.core.metricQueue.flush(),
98
111
  ]);
99
112
  }
100
113
  destroy() {
101
- this.core.logQueue.destroy();
102
- this.core.metricQueue.destroy();
114
+ this.core.logQueue?.destroy();
115
+ this.core.metricQueue?.destroy();
103
116
  }
104
117
  // === Private Methods ===
105
118
  log(level, data) {
@@ -107,8 +120,8 @@ export class Logdash {
107
120
  const now = new Date();
108
121
  // Print to console with colors
109
122
  this.printToConsole(level, message, now);
110
- // Queue for sending
111
- this.core.logQueue.add({
123
+ // Queue for sending (only in remote mode)
124
+ this.core.logQueue?.add({
112
125
  message,
113
126
  level,
114
127
  createdAt: now.toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"Logdash.js","sourceRoot":"","sources":["../src/Logdash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Logdash.js","sourceRoot":"","sources":["../src/Logdash.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"internalLogger.d.ts","sourceRoot":"","sources":["../../src/logger/internalLogger.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc;qBACT,OAAO,EAAE;oBAGV,OAAO,EAAE;oBAGT,OAAO,EAAE;uBAGN,OAAO,EAAE;CAG5B,CAAC"}
1
+ {"version":3,"file":"internalLogger.d.ts","sourceRoot":"","sources":["../../src/logger/internalLogger.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,cAAc;qBACT,OAAO,EAAE;oBACV,OAAO,EAAE;oBACT,OAAO,EAAE;uBACN,OAAO,EAAE;CAC5B,CAAC"}
@@ -1,17 +1,21 @@
1
1
  import chalk from 'chalk';
2
- const PREFIX = chalk.rgb(230, 0, 118)('[Logdash]');
2
+ import { LogLevel, LOG_LEVEL_COLORS } from '../types/LogLevel.js';
3
+ const NAMESPACE = 'Logdash';
4
+ function formatMessage(level, args) {
5
+ const color = LOG_LEVEL_COLORS[level];
6
+ const levelPrefix = chalk.rgb(color[0], color[1], color[2])(`${level.toUpperCase()} `);
7
+ const namespacePrefix = chalk.rgb(230, 0, 118)(`${NAMESPACE} `);
8
+ const message = args
9
+ .map((item) => typeof item === 'object' && item !== null
10
+ ? JSON.stringify(item)
11
+ : String(item))
12
+ .join(' ');
13
+ console.log(`${namespacePrefix}${levelPrefix}${message}\n`);
14
+ }
3
15
  export const internalLogger = {
4
- error: (...args) => {
5
- console.log(PREFIX, chalk.red('ERROR'), ...args);
6
- },
7
- warn: (...args) => {
8
- console.log(PREFIX, chalk.yellow('WARN'), ...args);
9
- },
10
- info: (...args) => {
11
- console.log(PREFIX, ...args);
12
- },
13
- verbose: (...args) => {
14
- console.log(PREFIX, chalk.gray(...args));
15
- },
16
+ error: (...args) => formatMessage(LogLevel.ERROR, args),
17
+ warn: (...args) => formatMessage(LogLevel.WARN, args),
18
+ info: (...args) => formatMessage(LogLevel.INFO, args),
19
+ verbose: (...args) => formatMessage(LogLevel.VERBOSE, args),
16
20
  };
17
21
  //# sourceMappingURL=internalLogger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internalLogger.js","sourceRoot":"","sources":["../../src/logger/internalLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"internalLogger.js","sourceRoot":"","sources":["../../src/logger/internalLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,SAAS,GAAG,SAAS,CAAC;AAE5B,SAAS,aAAa,CAAC,KAAe,EAAE,IAAe;IACtD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAC5B,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,CACR,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI;SAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QACxC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QACtB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACf;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,GAAG,WAAW,GAAG,OAAO,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IAClE,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAChE,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAChE,OAAO,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACtE,CAAC"}
@@ -7,4 +7,5 @@ export declare enum LogLevel {
7
7
  DEBUG = "debug",
8
8
  SILLY = "silly"
9
9
  }
10
+ export declare const LOG_LEVEL_COLORS: Record<LogLevel, [number, number, number]>;
10
11
  //# sourceMappingURL=LogLevel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogLevel.d.ts","sourceRoot":"","sources":["../../src/types/LogLevel.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IACnB,KAAK,UAAU;IACf,IAAI,YAAY;IAChB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,KAAK,UAAU;CACf"}
1
+ {"version":3,"file":"LogLevel.d.ts","sourceRoot":"","sources":["../../src/types/LogLevel.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IACnB,KAAK,UAAU;IACf,IAAI,YAAY;IAChB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,KAAK,UAAU;CACf;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQvE,CAAC"}
@@ -8,4 +8,13 @@ export var LogLevel;
8
8
  LogLevel["DEBUG"] = "debug";
9
9
  LogLevel["SILLY"] = "silly";
10
10
  })(LogLevel || (LogLevel = {}));
11
+ export const LOG_LEVEL_COLORS = {
12
+ [LogLevel.ERROR]: [231, 0, 11],
13
+ [LogLevel.WARN]: [254, 154, 0],
14
+ [LogLevel.INFO]: [21, 93, 252],
15
+ [LogLevel.HTTP]: [0, 166, 166],
16
+ [LogLevel.VERBOSE]: [0, 166, 0],
17
+ [LogLevel.DEBUG]: [0, 166, 62],
18
+ [LogLevel.SILLY]: [80, 80, 80],
19
+ };
11
20
  //# sourceMappingURL=LogLevel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogLevel.js","sourceRoot":"","sources":["../../src/types/LogLevel.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IACnB,2BAAe,CAAA;IACf,4BAAgB,CAAA;IAChB,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,2BAAe,CAAA;IACf,2BAAe,CAAA;AAChB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB"}
1
+ {"version":3,"file":"LogLevel.js","sourceRoot":"","sources":["../../src/types/LogLevel.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IACnB,2BAAe,CAAA;IACf,4BAAgB,CAAA;IAChB,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,2BAAe,CAAA;IACf,2BAAe,CAAA;AAChB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAED,MAAM,CAAC,MAAM,gBAAgB,GAA+C;IAC3E,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC9B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC9B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAC9B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IAC9B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CAC9B,CAAC"}
package/docs/image.png ADDED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logdash/node",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "private": false,
5
5
  "description": "How solo founders keep their SaaS apps healthy.",
6
6
  "author": "Logdash Team <logdash.contact@gmail.com>",
package/test.ts CHANGED
@@ -13,14 +13,22 @@ logdash.debug('This is a debug message');
13
13
  logdash.silly('This is a silly message');
14
14
 
15
15
  // Usage with API key
16
- const syncedLogdash = new Logdash('MY_API_KEY');
16
+ const syncedLogdash = new Logdash('API_KEY', {
17
+ host: 'https://dev-api.logdash.io',
18
+ });
17
19
 
18
20
  syncedLogdash.error('This is a SYNCED error message');
19
21
 
20
22
  // Namespaced logging
21
23
  const authLogger = syncedLogdash.withNamespace('auth');
22
24
  authLogger.info('User logged in');
23
- authLogger.setMetric('login_count', 1);
25
+ authLogger.mutateMetric('login_count', 1);
26
+
27
+ const paymentsLogger = syncedLogdash.withNamespace('payments');
28
+ paymentsLogger.info('Payment processed');
29
+ paymentsLogger.warn('Payment gate not responding in 5s');
30
+ paymentsLogger.error('Payment failed');
31
+ paymentsLogger.mutateMetric('payment_count', 1);
24
32
 
25
33
  // Metrics
26
34
  syncedLogdash.setMetric('active_users', 42);
@@ -29,4 +37,5 @@ syncedLogdash.mutateMetric('requests', 1);
29
37
  // Graceful shutdown - wait for all pending items
30
38
  syncedLogdash.flush().then(() => {
31
39
  console.log('All logs and metrics flushed!');
40
+ process.exit(0);
32
41
  });
package/docs/delta.png DELETED
Binary file
package/docs/logs.png DELETED
Binary file