eimer 0.1.1 → 0.2.0
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/README.md +12 -6
- package/dist/cjs/eimer/Eimer.d.ts +9 -5
- package/dist/cjs/eimer/Eimer.d.ts.map +1 -1
- package/dist/cjs/eimer/Eimer.js +28 -10
- package/dist/cjs/eimer/Eimer.js.map +1 -1
- package/dist/cjs/eimer/EimerDependencies.d.ts +2 -0
- package/dist/cjs/eimer/EimerDependencies.d.ts.map +1 -1
- package/dist/cjs/eimer/EimerDependencies.js.map +1 -1
- package/dist/cjs/eimer/EimerMessage.d.ts +4 -1
- package/dist/cjs/eimer/EimerMessage.d.ts.map +1 -1
- package/dist/cjs/eimer/EimerMessage.js +3 -1
- package/dist/cjs/eimer/EimerMessage.js.map +1 -1
- package/dist/cjs/eimer/EimerMessageMeta.d.ts +17 -0
- package/dist/cjs/eimer/EimerMessageMeta.d.ts.map +1 -0
- package/dist/cjs/eimer/EimerMessageMeta.js +3 -0
- package/dist/cjs/eimer/EimerMessageMeta.js.map +1 -0
- package/dist/cjs/eimer/PayloadHandler.d.ts +2 -1
- package/dist/cjs/eimer/PayloadHandler.d.ts.map +1 -1
- package/dist/cjs/eimer/RpcHandler.d.ts +2 -1
- package/dist/cjs/eimer/RpcHandler.d.ts.map +1 -1
- package/dist/cjs/eimer/RpcManager.d.ts +4 -2
- package/dist/cjs/eimer/RpcManager.d.ts.map +1 -1
- package/dist/cjs/eimer/TraceContext.d.ts +13 -0
- package/dist/cjs/eimer/TraceContext.d.ts.map +1 -0
- package/dist/cjs/eimer/TraceContext.js +3 -0
- package/dist/cjs/eimer/TraceContext.js.map +1 -0
- package/dist/cjs/eimer/TraceSpan.d.ts +14 -0
- package/dist/cjs/eimer/TraceSpan.d.ts.map +1 -0
- package/dist/cjs/eimer/TraceSpan.js +3 -0
- package/dist/cjs/eimer/TraceSpan.js.map +1 -0
- package/dist/cjs/eimer/Tracer.d.ts +34 -0
- package/dist/cjs/eimer/Tracer.d.ts.map +1 -0
- package/dist/cjs/eimer/Tracer.js +3 -0
- package/dist/cjs/eimer/Tracer.js.map +1 -0
- package/dist/cjs/eimer/TracerBackend.d.ts +21 -0
- package/dist/cjs/eimer/TracerBackend.d.ts.map +1 -0
- package/dist/cjs/eimer/TracerBackend.js +3 -0
- package/dist/cjs/eimer/TracerBackend.js.map +1 -0
- package/dist/cjs/eimer/index.d.ts +5 -0
- package/dist/cjs/eimer/index.d.ts.map +1 -1
- package/dist/cjs/eimer/index.js +5 -0
- package/dist/cjs/eimer/index.js.map +1 -1
- package/dist/cjs/eimer/now.d.ts +12 -0
- package/dist/cjs/eimer/now.d.ts.map +1 -0
- package/dist/cjs/eimer/now.js +17 -0
- package/dist/cjs/eimer/now.js.map +1 -0
- package/dist/cjs/message-bus/EimerMessageBus.d.ts +3 -2
- package/dist/cjs/message-bus/EimerMessageBus.d.ts.map +1 -1
- package/dist/cjs/message-bus/EimerMessageBus.js +21 -3
- package/dist/cjs/message-bus/EimerMessageBus.js.map +1 -1
- package/dist/cjs/rpc/EimerRpcManager.d.ts +9 -6
- package/dist/cjs/rpc/EimerRpcManager.d.ts.map +1 -1
- package/dist/cjs/rpc/EimerRpcManager.js +31 -9
- package/dist/cjs/rpc/EimerRpcManager.js.map +1 -1
- package/dist/cjs/rpc/EimerRpcRequestMessage.d.ts +2 -1
- package/dist/cjs/rpc/EimerRpcRequestMessage.d.ts.map +1 -1
- package/dist/cjs/rpc/EimerRpcRequestMessage.js +2 -2
- package/dist/cjs/rpc/EimerRpcRequestMessage.js.map +1 -1
- package/dist/cjs/rpc/EimerRpcResponseMessage.d.ts +2 -1
- package/dist/cjs/rpc/EimerRpcResponseMessage.d.ts.map +1 -1
- package/dist/cjs/rpc/EimerRpcResponseMessage.js +2 -2
- package/dist/cjs/rpc/EimerRpcResponseMessage.js.map +1 -1
- package/dist/cjs/tracing/ConsoleLoggingTracerBackend.d.ts +53 -0
- package/dist/cjs/tracing/ConsoleLoggingTracerBackend.d.ts.map +1 -0
- package/dist/cjs/tracing/ConsoleLoggingTracerBackend.js +113 -0
- package/dist/cjs/tracing/ConsoleLoggingTracerBackend.js.map +1 -0
- package/dist/cjs/tracing/EimerLoggerTracerBackend.d.ts +12 -0
- package/dist/cjs/tracing/EimerLoggerTracerBackend.d.ts.map +1 -0
- package/dist/cjs/tracing/EimerLoggerTracerBackend.js +18 -0
- package/dist/cjs/tracing/EimerLoggerTracerBackend.js.map +1 -0
- package/dist/cjs/tracing/EimerNoopTracer.d.ts +17 -0
- package/dist/cjs/tracing/EimerNoopTracer.d.ts.map +1 -0
- package/dist/cjs/tracing/EimerNoopTracer.js +27 -0
- package/dist/cjs/tracing/EimerNoopTracer.js.map +1 -0
- package/dist/cjs/tracing/EimerPublishingTracerBackend.d.ts +17 -0
- package/dist/cjs/tracing/EimerPublishingTracerBackend.d.ts.map +1 -0
- package/dist/cjs/tracing/EimerPublishingTracerBackend.js +20 -0
- package/dist/cjs/tracing/EimerPublishingTracerBackend.js.map +1 -0
- package/dist/cjs/tracing/EimerTraceSubscriber.d.ts +17 -0
- package/dist/cjs/tracing/EimerTraceSubscriber.d.ts.map +1 -0
- package/dist/cjs/tracing/EimerTraceSubscriber.js +23 -0
- package/dist/cjs/tracing/EimerTraceSubscriber.js.map +1 -0
- package/dist/cjs/tracing/EimerTracer.d.ts +21 -0
- package/dist/cjs/tracing/EimerTracer.d.ts.map +1 -0
- package/dist/cjs/tracing/EimerTracer.js +59 -0
- package/dist/cjs/tracing/EimerTracer.js.map +1 -0
- package/dist/cjs/tracing/MemoryTracerBackend.d.ts +14 -0
- package/dist/cjs/tracing/MemoryTracerBackend.d.ts.map +1 -0
- package/dist/cjs/tracing/MemoryTracerBackend.js +24 -0
- package/dist/cjs/tracing/MemoryTracerBackend.js.map +1 -0
- package/dist/cjs/tracing/NoopTracer.d.ts +16 -0
- package/dist/cjs/tracing/NoopTracer.d.ts.map +1 -0
- package/dist/cjs/tracing/NoopTracer.js +27 -0
- package/dist/cjs/tracing/NoopTracer.js.map +1 -0
- package/dist/cjs/tracing/index.d.ts +9 -0
- package/dist/cjs/tracing/index.d.ts.map +1 -0
- package/dist/cjs/tracing/index.js +25 -0
- package/dist/cjs/tracing/index.js.map +1 -0
- package/dist/cjs/tracing/now.d.ts +9 -0
- package/dist/cjs/tracing/now.d.ts.map +1 -0
- package/dist/cjs/tracing/now.js +14 -0
- package/dist/cjs/tracing/now.js.map +1 -0
- package/dist/cjs/transports/EimerUtilityProcessTransport.d.ts +5 -2
- package/dist/cjs/transports/EimerUtilityProcessTransport.d.ts.map +1 -1
- package/dist/cjs/transports/EimerUtilityProcessTransport.js +29 -1
- package/dist/cjs/transports/EimerUtilityProcessTransport.js.map +1 -1
- package/dist/esm/eimer/Eimer.js +28 -10
- package/dist/esm/eimer/Eimer.js.map +1 -1
- package/dist/esm/eimer/EimerDependencies.js.map +1 -1
- package/dist/esm/eimer/EimerMessage.js +3 -1
- package/dist/esm/eimer/EimerMessage.js.map +1 -1
- package/dist/esm/eimer/EimerMessageMeta.js +2 -0
- package/dist/esm/eimer/EimerMessageMeta.js.map +1 -0
- package/dist/esm/eimer/TraceContext.js +2 -0
- package/dist/esm/eimer/TraceContext.js.map +1 -0
- package/dist/esm/eimer/TraceSpan.js +2 -0
- package/dist/esm/eimer/TraceSpan.js.map +1 -0
- package/dist/esm/eimer/Tracer.js +2 -0
- package/dist/esm/eimer/Tracer.js.map +1 -0
- package/dist/esm/eimer/TracerBackend.js +2 -0
- package/dist/esm/eimer/TracerBackend.js.map +1 -0
- package/dist/esm/eimer/index.js +5 -0
- package/dist/esm/eimer/index.js.map +1 -1
- package/dist/esm/eimer/now.js +14 -0
- package/dist/esm/eimer/now.js.map +1 -0
- package/dist/esm/message-bus/EimerMessageBus.js +21 -3
- package/dist/esm/message-bus/EimerMessageBus.js.map +1 -1
- package/dist/esm/rpc/EimerRpcManager.js +31 -9
- package/dist/esm/rpc/EimerRpcManager.js.map +1 -1
- package/dist/esm/rpc/EimerRpcRequestMessage.js +2 -2
- package/dist/esm/rpc/EimerRpcRequestMessage.js.map +1 -1
- package/dist/esm/rpc/EimerRpcResponseMessage.js +2 -2
- package/dist/esm/rpc/EimerRpcResponseMessage.js.map +1 -1
- package/dist/esm/tracing/ConsoleLoggingTracerBackend.js +109 -0
- package/dist/esm/tracing/ConsoleLoggingTracerBackend.js.map +1 -0
- package/dist/esm/tracing/EimerLoggerTracerBackend.js +14 -0
- package/dist/esm/tracing/EimerLoggerTracerBackend.js.map +1 -0
- package/dist/esm/tracing/EimerNoopTracer.js +23 -0
- package/dist/esm/tracing/EimerNoopTracer.js.map +1 -0
- package/dist/esm/tracing/EimerPublishingTracerBackend.js +16 -0
- package/dist/esm/tracing/EimerPublishingTracerBackend.js.map +1 -0
- package/dist/esm/tracing/EimerTraceSubscriber.js +19 -0
- package/dist/esm/tracing/EimerTraceSubscriber.js.map +1 -0
- package/dist/esm/tracing/EimerTracer.js +55 -0
- package/dist/esm/tracing/EimerTracer.js.map +1 -0
- package/dist/esm/tracing/MemoryTracerBackend.js +20 -0
- package/dist/esm/tracing/MemoryTracerBackend.js.map +1 -0
- package/dist/esm/tracing/NoopTracer.js +30 -0
- package/dist/esm/tracing/NoopTracer.js.map +1 -0
- package/dist/esm/tracing/index.js +9 -0
- package/dist/esm/tracing/index.js.map +1 -0
- package/dist/esm/tracing/now.js +11 -0
- package/dist/esm/tracing/now.js.map +1 -0
- package/dist/esm/transports/EimerUtilityProcessTransport.js +29 -1
- package/dist/esm/transports/EimerUtilityProcessTransport.js.map +1 -1
- package/package.json +15 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { now } from './now';
|
|
2
|
+
import { MemoryTracerBackend } from './MemoryTracerBackend';
|
|
3
|
+
import { EimerIdGenerator } from '../id-generator/EimerIdGenerator';
|
|
4
|
+
/**
|
|
5
|
+
* A reference `Tracer` implementation.
|
|
6
|
+
*
|
|
7
|
+
* Keeps open spans in memory until they are "end"-ed and then
|
|
8
|
+
* forwards them to its `TracerBackend`
|
|
9
|
+
*/
|
|
10
|
+
export class EimerTracer {
|
|
11
|
+
constructor(backend, idGenerator) {
|
|
12
|
+
this.openSpans = new Map();
|
|
13
|
+
this.backend = backend ?? new MemoryTracerBackend();
|
|
14
|
+
this.idGenerator = idGenerator ?? new EimerIdGenerator();
|
|
15
|
+
}
|
|
16
|
+
setBackend(backend) {
|
|
17
|
+
this.backend = backend;
|
|
18
|
+
}
|
|
19
|
+
startSpan(name, metadata, parent) {
|
|
20
|
+
const traceId = parent?.traceId ?? this.idGenerator.generateId();
|
|
21
|
+
const spanId = this.idGenerator.generateId();
|
|
22
|
+
this.openSpans.set(spanId, {
|
|
23
|
+
traceId,
|
|
24
|
+
spanId,
|
|
25
|
+
...(parent?.spanId ? { parentSpanId: parent?.spanId } : {}),
|
|
26
|
+
name,
|
|
27
|
+
...(metadata ? { metadata } : {}),
|
|
28
|
+
startedAt: now(),
|
|
29
|
+
durationMs: 0,
|
|
30
|
+
});
|
|
31
|
+
return { traceId, spanId };
|
|
32
|
+
}
|
|
33
|
+
endSpan(spanId, metadata) {
|
|
34
|
+
const openSpan = this.openSpans.get(spanId);
|
|
35
|
+
if (!openSpan) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.openSpans.delete(spanId);
|
|
39
|
+
const mergedMetadata = (openSpan.metadata || metadata) ? { ...openSpan.metadata, ...metadata } : undefined;
|
|
40
|
+
const span = {
|
|
41
|
+
traceId: openSpan.traceId,
|
|
42
|
+
spanId,
|
|
43
|
+
...(openSpan.parentSpanId ? { parentSpanId: openSpan.parentSpanId } : {}),
|
|
44
|
+
name: openSpan.name,
|
|
45
|
+
...(mergedMetadata ? { metadata: mergedMetadata } : {}),
|
|
46
|
+
startedAt: openSpan.startedAt,
|
|
47
|
+
durationMs: now() - openSpan.startedAt,
|
|
48
|
+
};
|
|
49
|
+
this.backend.handleSpan(span);
|
|
50
|
+
}
|
|
51
|
+
shutdown() {
|
|
52
|
+
this.backend.shutdown?.();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=EimerTracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EimerTracer.js","sourceRoot":"","sources":["../../../src/tracing/EimerTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAQpE;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IAKpB,YAAY,OAAuB,EAAE,WAAyB;QAF7C,cAAS,GAA2B,IAAI,GAAG,EAAE,CAAC;QAG3D,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,gBAAgB,EAAE,CAAC;IAC7D,CAAC;IAED,UAAU,CAAC,OAAsB;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,QAAkC,EAAE,MAAqB;QAC7E,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;YACvB,OAAO;YACP,MAAM;YACN,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,IAAI;YACJ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,SAAS,EAAE,GAAG,EAAE;YAChB,UAAU,EAAE,CAAC;SAChB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,QAAkC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE9B,MAAM,cAAc,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3G,MAAM,IAAI,GAAc;YACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM;YACN,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,UAAU,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS;SACzC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC9B,CAAC;CACJ"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `TracerBackend` that stores spans in Memory
|
|
3
|
+
*
|
|
4
|
+
* You can extract them with `getRecords`
|
|
5
|
+
*/
|
|
6
|
+
export class MemoryTracerBackend {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.spans = [];
|
|
9
|
+
}
|
|
10
|
+
handleSpan(span) {
|
|
11
|
+
this.spans.push(span);
|
|
12
|
+
}
|
|
13
|
+
getRecords() {
|
|
14
|
+
return [...this.spans];
|
|
15
|
+
}
|
|
16
|
+
clear() {
|
|
17
|
+
this.spans.length = 0;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=MemoryTracerBackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryTracerBackend.js","sourceRoot":"","sources":["../../../src/tracing/MemoryTracerBackend.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAAhC;QACqB,UAAK,GAAgB,EAAE,CAAC;IAa7C,CAAC;IAXG,UAAU,CAAC,IAAe;QACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,CAAC;CACJ"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EimerIdGenerator } from '../id-generator/EimerIdGenerator';
|
|
2
|
+
/**
|
|
3
|
+
* `Tracer` that discards everything except id generation. `startSpan()`
|
|
4
|
+
* still returns a real, unique id - a message carrying
|
|
5
|
+
* `collectEimerTraces: true` through a node with a `NoopTracer` must not
|
|
6
|
+
* collide with `spanId`s minted by a real `Tracer` elsewhere on the mesh.
|
|
7
|
+
* The default whenever no `Tracer` is configured, so instrumented call sites
|
|
8
|
+
* never need to branch on whether one is.
|
|
9
|
+
*/
|
|
10
|
+
export class NoopTracer {
|
|
11
|
+
constructor(idGenerator) {
|
|
12
|
+
this.idGenerator = idGenerator ?? new EimerIdGenerator();
|
|
13
|
+
}
|
|
14
|
+
setBackend() {
|
|
15
|
+
// no-op
|
|
16
|
+
}
|
|
17
|
+
startSpan() {
|
|
18
|
+
return this.idGenerator.generateId();
|
|
19
|
+
}
|
|
20
|
+
startTrace() {
|
|
21
|
+
return { traceId: this.idGenerator.generateId(), spanId: this.idGenerator.generateId() };
|
|
22
|
+
}
|
|
23
|
+
endSpan() {
|
|
24
|
+
// no-op
|
|
25
|
+
}
|
|
26
|
+
shutdown() {
|
|
27
|
+
// no-op
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=NoopTracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopTracer.js","sourceRoot":"","sources":["../../../src/tracing/NoopTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAMpE;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IAGnB,YAAY,WAAyB;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,gBAAgB,EAAE,CAAC;IAC7D,CAAC;IAED,UAAU;QACN,QAAQ;IACZ,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED,UAAU;QACN,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC;IAC7F,CAAC;IAED,OAAO;QACH,QAAQ;IACZ,CAAC;IAED,QAAQ;QACJ,QAAQ;IACZ,CAAC;CACJ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './ConsoleLoggingTracerBackend';
|
|
2
|
+
export * from './EimerLoggerTracerBackend';
|
|
3
|
+
export * from './EimerPublishingTracerBackend';
|
|
4
|
+
export * from './EimerTracer';
|
|
5
|
+
export * from './EimerTraceSubscriber';
|
|
6
|
+
export * from './MemoryTracerBackend';
|
|
7
|
+
export * from './EimerNoopTracer';
|
|
8
|
+
export * from './now';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tracing/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a timestamp (milliseconds since the Unix epoch) accurate enough for trace timing
|
|
3
|
+
*
|
|
4
|
+
* `Date.now()` is low-resolution and affected by adjustments of the system clock.
|
|
5
|
+
*
|
|
6
|
+
* Therefore we use `performance.now()` and add `performance.timeOrigin` to make it comparable across processes.
|
|
7
|
+
*/
|
|
8
|
+
export function now() {
|
|
9
|
+
return performance.timeOrigin + performance.now();
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=now.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"now.js","sourceRoot":"","sources":["../../../src/tracing/now.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,GAAG;IACf,OAAO,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -1,4 +1,32 @@
|
|
|
1
|
+
import { EimerMessage } from '../eimer/EimerMessage';
|
|
1
2
|
import { EimerMessagePortTransport } from './EimerMessagePortTransport';
|
|
3
|
+
/**
|
|
4
|
+
* Wraps a `UtilityProcessPort` so that `'message'` listeners always receive the
|
|
5
|
+
* raw eimer message, regardless of whether the underlying port delivers it directly
|
|
6
|
+
* (`Electron.UtilityProcess`) or wrapped in a `MessageEvent` (`Electron.ParentPort`).
|
|
7
|
+
*/
|
|
8
|
+
class MessageEventUnwrappingPort {
|
|
9
|
+
constructor(port) {
|
|
10
|
+
this.port = port;
|
|
11
|
+
}
|
|
12
|
+
postMessage(message) {
|
|
13
|
+
this.port.postMessage(message);
|
|
14
|
+
}
|
|
15
|
+
on(event, handler) {
|
|
16
|
+
this.port.on(event, (received) => {
|
|
17
|
+
if (!EimerMessage.isEimerMessage(received) && received !== null && typeof received === 'object' && 'data' in received) {
|
|
18
|
+
handler(received.data);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
handler(received);
|
|
22
|
+
});
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
off(event, handler) {
|
|
26
|
+
this.port.off?.(event, handler);
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
2
30
|
/**
|
|
3
31
|
* Eimer UtilityProcess Transport
|
|
4
32
|
*
|
|
@@ -9,7 +37,7 @@ import { EimerMessagePortTransport } from './EimerMessagePortTransport';
|
|
|
9
37
|
*/
|
|
10
38
|
export class EimerUtilityProcessTransport extends EimerMessagePortTransport {
|
|
11
39
|
constructor(port, options, dependencies) {
|
|
12
|
-
super(port, { ...options, logModuleName: options?.logModuleName ?? 'EimerUtilityProcessTransport' }, dependencies);
|
|
40
|
+
super(new MessageEventUnwrappingPort(port), { ...options, logModuleName: options?.logModuleName ?? 'EimerUtilityProcessTransport' }, dependencies);
|
|
13
41
|
}
|
|
14
42
|
}
|
|
15
43
|
//# sourceMappingURL=EimerUtilityProcessTransport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EimerUtilityProcessTransport.js","sourceRoot":"","sources":["../../../src/transports/EimerUtilityProcessTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAwF,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"EimerUtilityProcessTransport.js","sourceRoot":"","sources":["../../../src/transports/EimerUtilityProcessTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAwF,MAAM,6BAA6B,CAAC;AAuB9J;;;;GAIG;AACH,MAAM,0BAA0B;IAC5B,YAA6B,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;IAAG,CAAC;IAEzD,WAAW,CAAC,OAAY;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,EAAE,CAAC,KAAgB,EAAE,OAA+B;QAChD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,QAAa,EAAQ,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACpH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO;YACX,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,KAAgB,EAAE,OAA+B;QACjD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,4BAA6B,SAAQ,yBAAyB;IACvE,YAAY,IAAwB,EAAE,OAA6C,EAAE,YAAuD;QACxI,KAAK,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAgB,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,8BAA8B,EAAE,EAAE,YAAY,CAAC,CAAC;IACtK,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eimer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Electron Interprocess MEssage Router - IPC library for Electron.js",
|
|
5
5
|
"author": "Jan Hapke (https://janhapke.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"nodejs",
|
|
25
25
|
"eimerjs"
|
|
26
26
|
],
|
|
27
|
+
"sideEffects": false,
|
|
27
28
|
"main": "./dist/cjs/index.js",
|
|
28
29
|
"module": "./dist/esm/index.js",
|
|
29
30
|
"types": "./dist/cjs/index.d.ts",
|
|
@@ -32,6 +33,18 @@
|
|
|
32
33
|
"types": "./dist/cjs/index.d.ts",
|
|
33
34
|
"import": "./dist/esm/index.js",
|
|
34
35
|
"require": "./dist/cjs/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./tracing": {
|
|
38
|
+
"types": "./dist/cjs/tracing/index.d.ts",
|
|
39
|
+
"import": "./dist/esm/tracing/index.js",
|
|
40
|
+
"require": "./dist/cjs/tracing/index.js"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"typesVersions": {
|
|
44
|
+
"*": {
|
|
45
|
+
"tracing": [
|
|
46
|
+
"./dist/cjs/tracing/index.d.ts"
|
|
47
|
+
]
|
|
35
48
|
}
|
|
36
49
|
},
|
|
37
50
|
"files": [
|
|
@@ -41,6 +54,7 @@
|
|
|
41
54
|
"build": "npm run build:cjs && npm run build:esm",
|
|
42
55
|
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
43
56
|
"build:esm": "tsc -p tsconfig.esm.json",
|
|
57
|
+
"typecheck": "tsc -p tsconfig.cjs.json --noEmit",
|
|
44
58
|
"test": "vitest run",
|
|
45
59
|
"test-coverage": "vitest run --coverage",
|
|
46
60
|
"clean": "rm -rf dist"
|