@pluslabs/utils 0.4.1 → 0.4.3

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.
@@ -93,6 +93,22 @@ export declare class LangfusePromptService {
93
93
  * Missing prompt names are simply omitted.
94
94
  */
95
95
  listPromptVersionsWithConfigs(promptNames: string[], concurrency?: number): Promise<Record<string, PromptVersionsResult>>;
96
+ /**
97
+ * Invalidate all cached entries for a given prompt name.
98
+ *
99
+ * Deletes:
100
+ * - The production cache key: `langfuse:prompt:{name}:production`
101
+ * - The versioned cache key (if version provided): `langfuse:prompt:{name}:v{version}`
102
+ * - All composite tool prompt cache keys (`langfuse:toolprompts:*`)
103
+ * - All prompt version listing cache keys (`langfuse:prompt_versions:*`)
104
+ *
105
+ * This is designed to be called from a Langfuse webhook handler.
106
+ * Fail-safe: never throws; errors are logged as warnings.
107
+ */
108
+ deletePromptCache({ promptName, version }: {
109
+ promptName: string;
110
+ version?: number;
111
+ }): Promise<void>;
96
112
  /**
97
113
  * Cached wrapper around listPromptVersionsWithConfigs.
98
114
  * Uses Redis with a short TTL to avoid repeated Langfuse list/get bursts.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/langfuse-prompt-service/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/langfuse-prompt-service/index.ts"],"names":[],"mappings":"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"}
@@ -264,6 +264,58 @@ export class LangfusePromptService {
264
264
  return results;
265
265
  });
266
266
  }
267
+ /**
268
+ * Invalidate all cached entries for a given prompt name.
269
+ *
270
+ * Deletes:
271
+ * - The production cache key: `langfuse:prompt:{name}:production`
272
+ * - The versioned cache key (if version provided): `langfuse:prompt:{name}:v{version}`
273
+ * - All composite tool prompt cache keys (`langfuse:toolprompts:*`)
274
+ * - All prompt version listing cache keys (`langfuse:prompt_versions:*`)
275
+ *
276
+ * This is designed to be called from a Langfuse webhook handler.
277
+ * Fail-safe: never throws; errors are logged as warnings.
278
+ */
279
+ deletePromptCache(_a) {
280
+ return __awaiter(this, arguments, void 0, function* ({ promptName, version }) {
281
+ const keysToDelete = [
282
+ // Always invalidate the production key
283
+ buildPromptCacheKey(promptName)
284
+ ];
285
+ if (version !== undefined) {
286
+ keysToDelete.push(buildPromptCacheKey(promptName, version));
287
+ }
288
+ // Scan for composite tool prompt and prompt version listing keys
289
+ const prefixes = ['langfuse:toolprompts:', 'langfuse:prompt_versions:'];
290
+ for (const prefix of prefixes) {
291
+ try {
292
+ let cursor = 0;
293
+ do {
294
+ const [nextCursor, keys] = yield this.redis.scan(cursor, {
295
+ match: `${prefix}*`,
296
+ count: 100
297
+ });
298
+ cursor = typeof nextCursor === 'string' ? parseInt(nextCursor, 10) : nextCursor;
299
+ keysToDelete.push(...keys);
300
+ } while (cursor !== 0);
301
+ }
302
+ catch (error) {
303
+ logger.warn(`[langfuse-prompt-service] [deletePromptCache] [scan-error] prefix=${prefix}`, error);
304
+ }
305
+ }
306
+ // Delete all collected keys
307
+ for (const key of keysToDelete) {
308
+ try {
309
+ yield this.redis.del(key);
310
+ logger.log(`[langfuse-prompt-service] [deletePromptCache] [deleted] ${key}`);
311
+ }
312
+ catch (error) {
313
+ logger.warn(`[langfuse-prompt-service] [deletePromptCache] [delete-error] key=${key}`, error);
314
+ }
315
+ }
316
+ logger.log(`[langfuse-prompt-service] [deletePromptCache] invalidated ${keysToDelete.length} key(s) for prompt="${promptName}"`);
317
+ });
318
+ }
267
319
  /**
268
320
  * Cached wrapper around listPromptVersionsWithConfigs.
269
321
  * Uses Redis with a short TTL to avoid repeated Langfuse list/get bursts.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/langfuse-prompt-service/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/langfuse-prompt-service/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,16 @@
1
- type context = {
1
+ type TLogger = {
2
+ info: (message: string) => void;
3
+ };
4
+ type StampOptions = {
5
+ enableInProduction?: boolean;
6
+ };
7
+ declare const context: {
2
8
  id: string;
3
9
  idx: string;
4
10
  step: number;
5
11
  now: number;
6
12
  end: () => void;
13
+ logger?: TLogger;
7
14
  };
8
15
  /**
9
16
  * The idea is that you can create a stamp with an id, and then use that id to mark different steps in your code.
@@ -11,13 +18,42 @@ type context = {
11
18
  * @param id String to identify the stamp
12
19
  * @returns
13
20
  */
14
- export declare const createStamp: (id?: string) => {
15
- stamp: (name: string) => context;
16
- end: () => context;
21
+ export declare const createStamp: (id?: string, logger?: TLogger, options?: StampOptions) => {
22
+ stamp: (name: string) => {
23
+ id: string;
24
+ idx: string;
25
+ step: number;
26
+ now: number;
27
+ end: () => void;
28
+ logger?: TLogger;
29
+ };
30
+ end: () => {
31
+ id: string;
32
+ idx: string;
33
+ step: number;
34
+ now: number;
35
+ end: () => void;
36
+ logger?: TLogger;
37
+ };
38
+ };
39
+ export declare function stamp(this: typeof context, name: string): {
40
+ id: string;
41
+ idx: string;
42
+ step: number;
43
+ now: number;
44
+ end: () => void;
45
+ logger?: TLogger;
17
46
  };
18
- export declare function stamp(this: context, name: string): context;
19
47
  export declare namespace stamp {
20
- var end: (this: context) => context;
48
+ var end: typeof import("./index.js").end;
21
49
  }
50
+ export declare function end(this: typeof context): {
51
+ id: string;
52
+ idx: string;
53
+ step: number;
54
+ now: number;
55
+ end: () => void;
56
+ logger?: TLogger;
57
+ };
22
58
  export {};
23
59
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stamp/index.ts"],"names":[],"mappings":"AAGA,KAAK,OAAO,GAAG;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,WAAO;;;CAiBlC,CAAC;AAEF,wBAAgB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAahD;yBAbe,KAAK;oBAiBF,OAAO"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stamp/index.ts"],"names":[],"mappings":"AAEA,KAAK,OAAO,GAAG;IACX,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,QAAA,MAAM,OAAO,EAAE;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAQpB,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,WAAO,EAAE,SAAS,OAAO,EAAE,UAAU,YAAY;;YAzBrE,MAAM;aACL,MAAM;cACL,MAAM;aACP,MAAM;aACN,MAAM,IAAI;iBACN,OAAO;;;YALZ,MAAM;aACL,MAAM;cACL,MAAM;aACP,MAAM;aACN,MAAM,IAAI;iBACN,OAAO;;CAsCnB,CAAC;AAEF,wBAAgB,KAAK,CAAC,IAAI,EAAE,OAAO,OAAO,EAAE,IAAI,EAAE,MAAM;QA7ChD,MAAM;SACL,MAAM;UACL,MAAM;SACP,MAAM;SACN,MAAM,IAAI;aACN,OAAO;EA2DnB;yBAnBe,KAAK;;;AAuBrB,wBAAgB,GAAG,CAAC,IAAI,EAAE,OAAO,OAAO;QApEhC,MAAM;SACL,MAAM;UACL,MAAM;SACP,MAAM;SACN,MAAM,IAAI;aACN,OAAO;EAuEnB"}
@@ -1,18 +1,29 @@
1
- // Copy/pasta from https://github.com/pluslabs/magic-professional/blob/main/packages/stamp/index.ts
2
- // since yarn cant do subdirectories from a monorepo
1
+ const isProd = process.env.NODE_ENV === 'production';
2
+ const context = {
3
+ id: '',
4
+ idx: '',
5
+ step: 0,
6
+ now: 0,
7
+ end: () => { },
8
+ logger: undefined
9
+ };
10
+ const noopLogger = {
11
+ info: () => { }
12
+ };
3
13
  /**
4
14
  * The idea is that you can create a stamp with an id, and then use that id to mark different steps in your code.
5
15
  * `createStamp` should be called at the beginning of the execution context and then createStamp
6
16
  * @param id String to identify the stamp
7
17
  * @returns
8
18
  */
9
- export const createStamp = (id = '') => {
19
+ export const createStamp = (id = '', logger, options) => {
10
20
  const ctx = {
11
21
  id,
12
22
  idx: (Date.now() * Math.random() * 1e6).toString(36),
13
23
  now: Date.now(),
14
24
  step: Date.now(),
15
- end: () => { }
25
+ end: () => { },
26
+ logger: logger || (!(options === null || options === void 0 ? void 0 : options.enableInProduction) && !isProd ? undefined : noopLogger)
16
27
  };
17
28
  // Bind the end function to the context
18
29
  // so we can curry it
@@ -28,11 +39,18 @@ export function stamp(name) {
28
39
  }
29
40
  const diff = Date.now() - this.step;
30
41
  this.step = Date.now();
31
- console.log(`[STAMP][${this.idx}][${this.id}] ${name} took ${diff}ms, total: ${Date.now() - this.now}ms`);
42
+ const delta = Date.now() - this.now;
43
+ const message = `[STAMP][${this.idx}][${this.id}] [step=${name}] [duration=${diff}ms] [total=${delta}ms]`;
44
+ if (this.logger) {
45
+ this.logger.info(message);
46
+ }
47
+ else {
48
+ console.log(message);
49
+ }
32
50
  return this;
33
51
  }
34
52
  stamp.end = end;
35
- function end() {
53
+ export function end() {
36
54
  this.id = '';
37
55
  this.now = 0;
38
56
  this.step = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stamp/index.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,oDAAoD;AAUpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACnC,MAAM,GAAG,GAAG;QACR,EAAE;QACF,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;QAChB,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;KACL,CAAC;IAEb,uCAAuC;IACvC,qBAAqB;IACrB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAExB,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACtB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KACrB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,UAAU,KAAK,CAAgB,IAAY;IAC7C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,OAAO,CAAC,GAAG,CACP,WAAW,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,SAAS,IAAI,cAAc,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAC/F,CAAC;IAEF,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;AAEhB,SAAS,GAAG;IACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAEd,MAAM,GAAG,GAAG,IAAe,CAAC;IAE5B,OAAO,GAAG,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stamp/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AAUrD,MAAM,OAAO,GAOT;IACA,EAAE,EAAE,EAAE;IACN,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;IACb,MAAM,EAAE,SAAS;CACpB,CAAC;AAEF,MAAM,UAAU,GAAY;IACxB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,MAAgB,EAAE,OAAsB,EAAE,EAAE;IAC7E,MAAM,GAAG,GAAG;QACR,EAAE;QACF,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;QAChB,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;QACb,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,CAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;KACvF,CAAC;IAEF,uCAAuC;IACvC,qBAAqB;IACrB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAExB,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACtB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KACrB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,UAAU,KAAK,CAAuB,IAAY;IACpD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAEpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IAEpC,MAAM,OAAO,GAAG,WAAW,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,WAAW,IAAI,eAAe,IAAI,cAAc,KAAK,KAAK,CAAC;IAE1G,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;AAEhB,MAAM,UAAU,GAAG;IACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAEd,MAAM,GAAG,GAAG,IAAsB,CAAC;IAEnC,OAAO,GAAG,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pluslabs/utils",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "A set of utilities used across projects",
5
5
  "keywords": [
6
6
  "javascript",
@@ -423,6 +423,73 @@ export class LangfusePromptService {
423
423
  return results;
424
424
  }
425
425
 
426
+ /**
427
+ * Invalidate all cached entries for a given prompt name.
428
+ *
429
+ * Deletes:
430
+ * - The production cache key: `langfuse:prompt:{name}:production`
431
+ * - The versioned cache key (if version provided): `langfuse:prompt:{name}:v{version}`
432
+ * - All composite tool prompt cache keys (`langfuse:toolprompts:*`)
433
+ * - All prompt version listing cache keys (`langfuse:prompt_versions:*`)
434
+ *
435
+ * This is designed to be called from a Langfuse webhook handler.
436
+ * Fail-safe: never throws; errors are logged as warnings.
437
+ */
438
+ async deletePromptCache({
439
+ promptName,
440
+ version
441
+ }: {
442
+ promptName: string;
443
+ version?: number;
444
+ }): Promise<void> {
445
+ const keysToDelete: string[] = [
446
+ // Always invalidate the production key
447
+ buildPromptCacheKey(promptName)
448
+ ];
449
+
450
+ if (version !== undefined) {
451
+ keysToDelete.push(buildPromptCacheKey(promptName, version));
452
+ }
453
+
454
+ // Scan for composite tool prompt and prompt version listing keys
455
+ const prefixes = ['langfuse:toolprompts:', 'langfuse:prompt_versions:'];
456
+ for (const prefix of prefixes) {
457
+ try {
458
+ let cursor = 0;
459
+ do {
460
+ const [nextCursor, keys] = await this.redis.scan(cursor, {
461
+ match: `${prefix}*`,
462
+ count: 100
463
+ });
464
+ cursor = typeof nextCursor === 'string' ? parseInt(nextCursor, 10) : nextCursor;
465
+ keysToDelete.push(...keys);
466
+ } while (cursor !== 0);
467
+ } catch (error) {
468
+ logger.warn(
469
+ `[langfuse-prompt-service] [deletePromptCache] [scan-error] prefix=${prefix}`,
470
+ error
471
+ );
472
+ }
473
+ }
474
+
475
+ // Delete all collected keys
476
+ for (const key of keysToDelete) {
477
+ try {
478
+ await this.redis.del(key);
479
+ logger.log(`[langfuse-prompt-service] [deletePromptCache] [deleted] ${key}`);
480
+ } catch (error) {
481
+ logger.warn(
482
+ `[langfuse-prompt-service] [deletePromptCache] [delete-error] key=${key}`,
483
+ error
484
+ );
485
+ }
486
+ }
487
+
488
+ logger.log(
489
+ `[langfuse-prompt-service] [deletePromptCache] invalidated ${keysToDelete.length} key(s) for prompt="${promptName}"`
490
+ );
491
+ }
492
+
426
493
  /**
427
494
  * Cached wrapper around listPromptVersionsWithConfigs.
428
495
  * Uses Redis with a short TTL to avoid repeated Langfuse list/get bursts.
@@ -1,12 +1,31 @@
1
- // Copy/pasta from https://github.com/pluslabs/magic-professional/blob/main/packages/stamp/index.ts
2
- // since yarn cant do subdirectories from a monorepo
1
+ const isProd = process.env.NODE_ENV === 'production';
3
2
 
4
- type context = {
3
+ type TLogger = {
4
+ info: (message: string) => void;
5
+ };
6
+
7
+ type StampOptions = {
8
+ enableInProduction?: boolean;
9
+ };
10
+
11
+ const context: {
5
12
  id: string;
6
13
  idx: string;
7
14
  step: number;
8
15
  now: number;
9
16
  end: () => void;
17
+ logger?: TLogger;
18
+ } = {
19
+ id: '',
20
+ idx: '',
21
+ step: 0,
22
+ now: 0,
23
+ end: () => {},
24
+ logger: undefined
25
+ };
26
+
27
+ const noopLogger: TLogger = {
28
+ info: () => {}
10
29
  };
11
30
 
12
31
  /**
@@ -15,14 +34,15 @@ type context = {
15
34
  * @param id String to identify the stamp
16
35
  * @returns
17
36
  */
18
- export const createStamp = (id = '') => {
37
+ export const createStamp = (id = '', logger?: TLogger, options?: StampOptions) => {
19
38
  const ctx = {
20
39
  id,
21
40
  idx: (Date.now() * Math.random() * 1e6).toString(36),
22
41
  now: Date.now(),
23
42
  step: Date.now(),
24
- end: () => {}
25
- } as context;
43
+ end: () => {},
44
+ logger: logger || (!options?.enableInProduction && !isProd ? undefined : noopLogger)
45
+ };
26
46
 
27
47
  // Bind the end function to the context
28
48
  // so we can curry it
@@ -34,29 +54,35 @@ export const createStamp = (id = '') => {
34
54
  };
35
55
  };
36
56
 
37
- export function stamp(this: context, name: string) {
57
+ export function stamp(this: typeof context, name: string) {
38
58
  if (!this.id) {
39
59
  return this;
40
60
  }
41
61
 
42
62
  const diff = Date.now() - this.step;
63
+
43
64
  this.step = Date.now();
65
+ const delta = Date.now() - this.now;
44
66
 
45
- console.log(
46
- `[STAMP][${this.idx}][${this.id}] ${name} took ${diff}ms, total: ${Date.now() - this.now}ms`
47
- );
67
+ const message = `[STAMP][${this.idx}][${this.id}] [step=${name}] [duration=${diff}ms] [total=${delta}ms]`;
68
+
69
+ if (this.logger) {
70
+ this.logger.info(message);
71
+ } else {
72
+ console.log(message);
73
+ }
48
74
 
49
75
  return this;
50
76
  }
51
77
 
52
78
  stamp.end = end;
53
79
 
54
- function end(this: context) {
80
+ export function end(this: typeof context) {
55
81
  this.id = '';
56
82
  this.now = 0;
57
83
  this.step = 0;
58
84
 
59
- const ctx = this as context;
85
+ const ctx = this as typeof context;
60
86
 
61
87
  return ctx;
62
88
  }