@enkaku/server 0.13.0 → 0.13.2
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/lib/handlers/channel.d.ts.map +1 -1
- package/lib/handlers/channel.js +18 -8
- package/lib/handlers/event.d.ts.map +1 -1
- package/lib/handlers/event.js +24 -10
- package/lib/handlers/request.d.ts.map +1 -1
- package/lib/handlers/request.js +13 -5
- package/lib/handlers/stream.d.ts.map +1 -1
- package/lib/handlers/stream.js +16 -6
- package/lib/server.d.ts +1 -0
- package/lib/server.d.ts.map +1 -1
- package/lib/server.js +7 -2
- package/lib/utils.js +3 -3
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/handlers/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EACnB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAGV,cAAc,EAGf,MAAM,aAAa,CAAA;AAGpB,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAEnE,wBAAgB,aAAa,CAC3B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EAEzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC7B,GAAG,EAAE,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,GACzC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/handlers/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EACnB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAGV,cAAc,EAGf,MAAM,aAAa,CAAA;AAGpB,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAEnE,wBAAgB,aAAa,CAC3B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EAEzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC7B,GAAG,EAAE,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,GACzC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFvB"}
|
package/lib/handlers/channel.js
CHANGED
|
@@ -5,10 +5,19 @@ export function handleChannel(ctx, msg) {
|
|
|
5
5
|
if (handler == null) {
|
|
6
6
|
return new Error(`No handler for procedure: ${msg.payload.prc}`);
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
const param = msg.payload.prm;
|
|
9
|
+
if (param == null) {
|
|
10
|
+
ctx.logger.trace('handle channel {procedure} with ID {rid}', {
|
|
11
|
+
procedure: msg.payload.prc,
|
|
12
|
+
rid: msg.payload.rid
|
|
13
|
+
});
|
|
14
|
+
} else {
|
|
15
|
+
ctx.logger.trace('handle channel {procedure} with ID {rid} and param: {param}', {
|
|
16
|
+
procedure: msg.payload.prc,
|
|
17
|
+
rid: msg.payload.rid,
|
|
18
|
+
param
|
|
19
|
+
});
|
|
20
|
+
}
|
|
12
21
|
const sendStream = createPipe();
|
|
13
22
|
const controller = Object.assign(new AbortController(), {
|
|
14
23
|
writer: sendStream.writable.getWriter()
|
|
@@ -22,9 +31,10 @@ export function handleChannel(ctx, msg) {
|
|
|
22
31
|
if (controller.signal.aborted) {
|
|
23
32
|
return;
|
|
24
33
|
}
|
|
25
|
-
ctx.logger.trace('send value to channel {procedure} with ID {rid}', {
|
|
34
|
+
ctx.logger.trace('send value to channel {procedure} with ID {rid}: {val}', {
|
|
26
35
|
procedure: msg.payload.prc,
|
|
27
|
-
rid: msg.payload.rid
|
|
36
|
+
rid: msg.payload.rid,
|
|
37
|
+
val
|
|
28
38
|
});
|
|
29
39
|
await ctx.send({
|
|
30
40
|
typ: 'receive',
|
|
@@ -33,7 +43,7 @@ export function handleChannel(ctx, msg) {
|
|
|
33
43
|
});
|
|
34
44
|
}));
|
|
35
45
|
const readable = sendStream.readable.pipeThrough(tap((value)=>{
|
|
36
|
-
ctx.logger.trace('received value from channel {procedure} with ID {rid}', {
|
|
46
|
+
ctx.logger.trace('received value from channel {procedure} with ID {rid}: {value}', {
|
|
37
47
|
procedure: msg.payload.prc,
|
|
38
48
|
rid: msg.payload.rid,
|
|
39
49
|
value
|
|
@@ -41,7 +51,7 @@ export function handleChannel(ctx, msg) {
|
|
|
41
51
|
}));
|
|
42
52
|
const handlerContext = {
|
|
43
53
|
message: msg,
|
|
44
|
-
param
|
|
54
|
+
param,
|
|
45
55
|
readable,
|
|
46
56
|
signal: controller.signal,
|
|
47
57
|
writable: receiveStream.writable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/handlers/event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGzF,OAAO,KAAK,EAAqC,cAAc,EAAE,MAAM,aAAa,CAAA;AAEpF,MAAM,MAAM,cAAc,CACxB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAEjE,wBAAgB,WAAW,CACzB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EACzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/handlers/event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGzF,OAAO,KAAK,EAAqC,cAAc,EAAE,MAAM,aAAa,CAAA;AAEpF,MAAM,MAAM,cAAc,CACxB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAEjE,wBAAgB,WAAW,CACzB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EACzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ChG"}
|
package/lib/handlers/event.js
CHANGED
|
@@ -5,24 +5,38 @@ export function handleEvent(ctx, msg) {
|
|
|
5
5
|
if (handler == null) {
|
|
6
6
|
return new Error(`No handler for procedure: ${msg.payload.prc}`);
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
const data = msg.payload.data;
|
|
9
|
+
if (data == null) {
|
|
10
|
+
ctx.logger.trace('handle event {procedure} without data', {
|
|
11
|
+
procedure: msg.payload.prc
|
|
12
|
+
});
|
|
13
|
+
} else {
|
|
14
|
+
ctx.logger.trace('handle event {procedure} with data: {data}', {
|
|
15
|
+
procedure: msg.payload.prc,
|
|
16
|
+
data: msg.payload.data
|
|
17
|
+
});
|
|
18
|
+
}
|
|
12
19
|
const handlerContext = {
|
|
13
20
|
message: msg,
|
|
14
|
-
data
|
|
21
|
+
data
|
|
15
22
|
};
|
|
16
23
|
return toPromise(()=>handler(handlerContext)).catch((cause)=>{
|
|
17
24
|
const error = HandlerError.from(cause, {
|
|
18
25
|
code: 'EK01',
|
|
19
26
|
message: cause.message ?? 'Handler execution failed'
|
|
20
27
|
});
|
|
21
|
-
|
|
22
|
-
procedure:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
if (data == null) {
|
|
29
|
+
ctx.logger.debug('handler error for event {procedure} without data: {error}', {
|
|
30
|
+
procedure: msg.payload.prc,
|
|
31
|
+
error
|
|
32
|
+
});
|
|
33
|
+
} else {
|
|
34
|
+
ctx.logger.debug('handler error for event {procedure} with data {data}: {error}', {
|
|
35
|
+
procedure: msg.payload.prc,
|
|
36
|
+
data,
|
|
37
|
+
error
|
|
38
|
+
});
|
|
39
|
+
}
|
|
26
40
|
ctx.events.emit('handlerError', {
|
|
27
41
|
error,
|
|
28
42
|
payload: msg.payload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/handlers/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE3F,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAA;AAGjE,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAEnE,wBAAgB,aAAa,CAC3B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EAEzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC7B,GAAG,EAAE,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,GACzC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/handlers/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE3F,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAA;AAGjE,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAEnE,wBAAgB,aAAa,CAC3B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EAEzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC7B,GAAG,EAAE,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,GACzC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BvB"}
|
package/lib/handlers/request.js
CHANGED
|
@@ -4,11 +4,19 @@ export function handleRequest(ctx, msg) {
|
|
|
4
4
|
if (handler == null) {
|
|
5
5
|
return new Error(`No handler for procedure: ${msg.payload.prc}`);
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
const param = msg.payload.prm;
|
|
8
|
+
if (param == null) {
|
|
9
|
+
ctx.logger.trace('handle request {procedure} with ID {rid}', {
|
|
10
|
+
procedure: msg.payload.prc,
|
|
11
|
+
rid: msg.payload.rid
|
|
12
|
+
});
|
|
13
|
+
} else {
|
|
14
|
+
ctx.logger.trace('handle request {procedure} with ID {rid} and param: {param}', {
|
|
15
|
+
procedure: msg.payload.prc,
|
|
16
|
+
rid: msg.payload.rid,
|
|
17
|
+
param
|
|
18
|
+
});
|
|
19
|
+
}
|
|
12
20
|
const controller = new AbortController();
|
|
13
21
|
ctx.controllers[msg.payload.rid] = controller;
|
|
14
22
|
const handlerContext = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/handlers/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,aAAa,CAAA;AAG7E,MAAM,MAAM,eAAe,CACzB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAElE,wBAAgB,YAAY,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EACzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/handlers/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,aAAa,CAAA;AAG7E,MAAM,MAAM,eAAe,CACzB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACjE,aAAa,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAElE,wBAAgB,YAAY,CAC1B,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,MAAM,QAAQ,GAAG,MAAM,EACzC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DjG"}
|
package/lib/handlers/stream.js
CHANGED
|
@@ -5,10 +5,19 @@ export function handleStream(ctx, msg) {
|
|
|
5
5
|
if (handler == null) {
|
|
6
6
|
return new Error(`No handler for procedure: ${msg.payload.prc}`);
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
const param = msg.payload.prm;
|
|
9
|
+
if (param == null) {
|
|
10
|
+
ctx.logger.trace('handle stream {procedure} with ID {rid}', {
|
|
11
|
+
procedure: msg.payload.prc,
|
|
12
|
+
rid: msg.payload.rid
|
|
13
|
+
});
|
|
14
|
+
} else {
|
|
15
|
+
ctx.logger.trace('handle stream {procedure} with ID {rid} and param: {param}', {
|
|
16
|
+
procedure: msg.payload.prc,
|
|
17
|
+
rid: msg.payload.rid,
|
|
18
|
+
param
|
|
19
|
+
});
|
|
20
|
+
}
|
|
12
21
|
const controller = new AbortController();
|
|
13
22
|
ctx.controllers[msg.payload.rid] = controller;
|
|
14
23
|
const receiveStream = createPipe();
|
|
@@ -16,9 +25,10 @@ export function handleStream(ctx, msg) {
|
|
|
16
25
|
if (controller.signal.aborted) {
|
|
17
26
|
return;
|
|
18
27
|
}
|
|
19
|
-
ctx.logger.trace('send value to stream {procedure} with ID {rid}', {
|
|
28
|
+
ctx.logger.trace('send value to stream {procedure} with ID {rid}: {val}', {
|
|
20
29
|
procedure: msg.payload.prc,
|
|
21
|
-
rid: msg.payload.rid
|
|
30
|
+
rid: msg.payload.rid,
|
|
31
|
+
val
|
|
22
32
|
});
|
|
23
33
|
await ctx.send({
|
|
24
34
|
typ: 'receive',
|
package/lib/server.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ export type HandleMessagesParams<Protocol extends ProtocolDefinition> = AccessCo
|
|
|
29
29
|
export type ServerParams<Protocol extends ProtocolDefinition> = {
|
|
30
30
|
access?: ProcedureAccessRecord;
|
|
31
31
|
encryptionPolicy?: EncryptionPolicy;
|
|
32
|
+
getRandomID?: () => string;
|
|
32
33
|
handlers: ProcedureHandlers<Protocol>;
|
|
33
34
|
identity?: Identity;
|
|
34
35
|
limits?: Partial<ResourceLimits>;
|
package/lib/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7D,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EACL,KAAK,kBAAkB,EAGvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAEL,KAAK,QAAQ,EAId,MAAM,eAAe,CAAA;AAEtB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAE3B,MAAM,qBAAqB,CAAA;AAM5B,OAAO,EAAyB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAC9F,OAAO,KAAK,EAIV,iBAAiB,EACjB,aAAa,EAEd,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/lib/server.js
CHANGED
|
@@ -11,6 +11,9 @@ import { handleEvent } from './handlers/event.js';
|
|
|
11
11
|
import { handleRequest } from './handlers/request.js';
|
|
12
12
|
import { handleStream } from './handlers/stream.js';
|
|
13
13
|
import { createResourceLimiter } from './limits.js';
|
|
14
|
+
function defaultRandomID() {
|
|
15
|
+
return globalThis.crypto.randomUUID();
|
|
16
|
+
}
|
|
14
17
|
async function handleMessages(params) {
|
|
15
18
|
const { events, handlers, limiter, logger, signal, transport, validator } = params;
|
|
16
19
|
const controllers = Object.create(null);
|
|
@@ -301,6 +304,7 @@ export class Server extends Disposer {
|
|
|
301
304
|
#abortController;
|
|
302
305
|
#accessControl;
|
|
303
306
|
#events;
|
|
307
|
+
#getRandomID;
|
|
304
308
|
#handlers;
|
|
305
309
|
#handling = [];
|
|
306
310
|
#limiter;
|
|
@@ -340,10 +344,11 @@ export class Server extends Disposer {
|
|
|
340
344
|
});
|
|
341
345
|
this.#abortController = new AbortController();
|
|
342
346
|
this.#events = new EventEmitter();
|
|
347
|
+
this.#getRandomID = params.getRandomID ?? defaultRandomID;
|
|
343
348
|
this.#handlers = params.handlers;
|
|
344
349
|
const serverID = params.identity?.id;
|
|
345
350
|
this.#logger = params.logger ?? getEnkakuLogger('server', {
|
|
346
|
-
serverID: serverID ??
|
|
351
|
+
serverID: serverID ?? this.#getRandomID()
|
|
347
352
|
});
|
|
348
353
|
if (serverID == null) {
|
|
349
354
|
if (params.public) {
|
|
@@ -380,7 +385,7 @@ export class Server extends Disposer {
|
|
|
380
385
|
const publicAccess = options.public ?? this.#accessControl.public;
|
|
381
386
|
const access = options.access ?? this.#accessControl.access ?? {};
|
|
382
387
|
const logger = options.logger ?? this.#logger.getChild('handler').with({
|
|
383
|
-
transportID:
|
|
388
|
+
transportID: this.#getRandomID()
|
|
384
389
|
});
|
|
385
390
|
const encryptionPolicy = this.#accessControl.encryptionPolicy;
|
|
386
391
|
let accessControl;
|
package/lib/utils.js
CHANGED
|
@@ -9,7 +9,7 @@ export async function executeHandler(context, payload, execute) {
|
|
|
9
9
|
try {
|
|
10
10
|
const val = await toPromise(execute);
|
|
11
11
|
if (canSend(controller.signal)) {
|
|
12
|
-
context.logger.trace('send result to {type} {procedure} with ID {rid}', {
|
|
12
|
+
context.logger.trace('send result to {type} {procedure} with ID {rid}: {result}', {
|
|
13
13
|
type: payload.typ,
|
|
14
14
|
procedure: payload.prc,
|
|
15
15
|
rid: payload.rid,
|
|
@@ -27,7 +27,7 @@ export async function executeHandler(context, payload, execute) {
|
|
|
27
27
|
message: 'Handler execution failed'
|
|
28
28
|
});
|
|
29
29
|
if (canSend(controller.signal)) {
|
|
30
|
-
context.logger.trace('send error to {type} {procedure} with ID {rid}', {
|
|
30
|
+
context.logger.trace('send error to {type} {procedure} with ID {rid}: {error}', {
|
|
31
31
|
type: payload.typ,
|
|
32
32
|
procedure: payload.prc,
|
|
33
33
|
rid: payload.rid,
|
|
@@ -35,7 +35,7 @@ export async function executeHandler(context, payload, execute) {
|
|
|
35
35
|
});
|
|
36
36
|
context.send(error.toPayload(payload.rid));
|
|
37
37
|
} else {
|
|
38
|
-
context.logger.debug('handler error for {type} {procedure} with ID {rid} cannot be sent to client', {
|
|
38
|
+
context.logger.debug('handler error for {type} {procedure} with ID {rid} cannot be sent to client: {error}', {
|
|
39
39
|
type: payload.typ,
|
|
40
40
|
procedure: payload.prc,
|
|
41
41
|
rid: payload.rid,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enkaku/server",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"homepage": "https://enkaku.dev",
|
|
6
6
|
"description": "Server logic for Enkaku RPC",
|
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
],
|
|
26
26
|
"sideEffects": false,
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@enkaku/capability": "^0.13.0",
|
|
29
28
|
"@enkaku/async": "^0.13.0",
|
|
30
|
-
"@enkaku/
|
|
31
|
-
"@enkaku/log": "^0.13.0",
|
|
29
|
+
"@enkaku/capability": "^0.13.0",
|
|
32
30
|
"@enkaku/event": "^0.13.0",
|
|
31
|
+
"@enkaku/log": "^0.13.1",
|
|
32
|
+
"@enkaku/protocol": "^0.13.0",
|
|
33
33
|
"@enkaku/schema": "^0.13.0",
|
|
34
|
-
"@enkaku/
|
|
35
|
-
"@enkaku/
|
|
34
|
+
"@enkaku/stream": "^0.13.0",
|
|
35
|
+
"@enkaku/token": "^0.13.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@enkaku/transport": "^0.13.
|
|
38
|
+
"@enkaku/transport": "^0.13.1"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build:clean": "del lib",
|