telepact 1.0.0-alpha.260 → 1.0.0-alpha.264
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/dist/index.cjs.js +15 -14
- package/dist/index.esm.js +15 -14
- package/dist/index.iife.js +15 -14
- package/dist/src/FunctionRouter.d.ts +8 -0
- package/dist/src/FunctionRouter.js +30 -0
- package/dist/src/FunctionRouter.js.map +1 -0
- package/dist/src/Server.d.ts +3 -7
- package/dist/src/Server.js +1 -14
- package/dist/src/Server.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1099,6 +1099,21 @@ class ClientOptions {
|
|
|
1099
1099
|
}
|
|
1100
1100
|
}
|
|
1101
1101
|
|
|
1102
|
+
class FunctionRouter {
|
|
1103
|
+
functionRoutes;
|
|
1104
|
+
constructor(functionRoutes) {
|
|
1105
|
+
this.functionRoutes = functionRoutes;
|
|
1106
|
+
}
|
|
1107
|
+
async route(requestMessage) {
|
|
1108
|
+
const functionName = requestMessage.getBodyTarget();
|
|
1109
|
+
const functionRoute = this.functionRoutes[functionName];
|
|
1110
|
+
if (functionRoute === undefined) {
|
|
1111
|
+
throw new Error(`Unknown function: ${functionName}`);
|
|
1112
|
+
}
|
|
1113
|
+
return await functionRoute(functionName, requestMessage);
|
|
1114
|
+
}
|
|
1115
|
+
}
|
|
1116
|
+
|
|
1102
1117
|
function serverBinaryEncode(message, binaryEncoder) {
|
|
1103
1118
|
const headers = message[0];
|
|
1104
1119
|
const messageBody = message[1];
|
|
@@ -2350,20 +2365,6 @@ class ServerBase64Encoder extends Base64Encoder {
|
|
|
2350
2365
|
}
|
|
2351
2366
|
}
|
|
2352
2367
|
|
|
2353
|
-
class FunctionRouter {
|
|
2354
|
-
functionRoutes;
|
|
2355
|
-
constructor(functionRoutes) {
|
|
2356
|
-
this.functionRoutes = functionRoutes;
|
|
2357
|
-
}
|
|
2358
|
-
async route(requestMessage) {
|
|
2359
|
-
const functionName = requestMessage.getBodyTarget();
|
|
2360
|
-
const functionRoute = this.functionRoutes[functionName];
|
|
2361
|
-
if (functionRoute === undefined) {
|
|
2362
|
-
throw new Error(`Unknown function: ${functionName}`);
|
|
2363
|
-
}
|
|
2364
|
-
return await functionRoute(functionName, requestMessage);
|
|
2365
|
-
}
|
|
2366
|
-
}
|
|
2367
2368
|
class Server {
|
|
2368
2369
|
functionRouter;
|
|
2369
2370
|
middleware;
|
package/dist/index.esm.js
CHANGED
|
@@ -1097,6 +1097,21 @@ class ClientOptions {
|
|
|
1097
1097
|
}
|
|
1098
1098
|
}
|
|
1099
1099
|
|
|
1100
|
+
class FunctionRouter {
|
|
1101
|
+
functionRoutes;
|
|
1102
|
+
constructor(functionRoutes) {
|
|
1103
|
+
this.functionRoutes = functionRoutes;
|
|
1104
|
+
}
|
|
1105
|
+
async route(requestMessage) {
|
|
1106
|
+
const functionName = requestMessage.getBodyTarget();
|
|
1107
|
+
const functionRoute = this.functionRoutes[functionName];
|
|
1108
|
+
if (functionRoute === undefined) {
|
|
1109
|
+
throw new Error(`Unknown function: ${functionName}`);
|
|
1110
|
+
}
|
|
1111
|
+
return await functionRoute(functionName, requestMessage);
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1100
1115
|
function serverBinaryEncode(message, binaryEncoder) {
|
|
1101
1116
|
const headers = message[0];
|
|
1102
1117
|
const messageBody = message[1];
|
|
@@ -2348,20 +2363,6 @@ class ServerBase64Encoder extends Base64Encoder {
|
|
|
2348
2363
|
}
|
|
2349
2364
|
}
|
|
2350
2365
|
|
|
2351
|
-
class FunctionRouter {
|
|
2352
|
-
functionRoutes;
|
|
2353
|
-
constructor(functionRoutes) {
|
|
2354
|
-
this.functionRoutes = functionRoutes;
|
|
2355
|
-
}
|
|
2356
|
-
async route(requestMessage) {
|
|
2357
|
-
const functionName = requestMessage.getBodyTarget();
|
|
2358
|
-
const functionRoute = this.functionRoutes[functionName];
|
|
2359
|
-
if (functionRoute === undefined) {
|
|
2360
|
-
throw new Error(`Unknown function: ${functionName}`);
|
|
2361
|
-
}
|
|
2362
|
-
return await functionRoute(functionName, requestMessage);
|
|
2363
|
-
}
|
|
2364
|
-
}
|
|
2365
2366
|
class Server {
|
|
2366
2367
|
functionRouter;
|
|
2367
2368
|
middleware;
|
package/dist/index.iife.js
CHANGED
|
@@ -1097,6 +1097,21 @@ var Telepact = (function (exports, msgpackr, crc32) {
|
|
|
1097
1097
|
}
|
|
1098
1098
|
}
|
|
1099
1099
|
|
|
1100
|
+
class FunctionRouter {
|
|
1101
|
+
functionRoutes;
|
|
1102
|
+
constructor(functionRoutes) {
|
|
1103
|
+
this.functionRoutes = functionRoutes;
|
|
1104
|
+
}
|
|
1105
|
+
async route(requestMessage) {
|
|
1106
|
+
const functionName = requestMessage.getBodyTarget();
|
|
1107
|
+
const functionRoute = this.functionRoutes[functionName];
|
|
1108
|
+
if (functionRoute === undefined) {
|
|
1109
|
+
throw new Error(`Unknown function: ${functionName}`);
|
|
1110
|
+
}
|
|
1111
|
+
return await functionRoute(functionName, requestMessage);
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1100
1115
|
function serverBinaryEncode(message, binaryEncoder) {
|
|
1101
1116
|
const headers = message[0];
|
|
1102
1117
|
const messageBody = message[1];
|
|
@@ -2348,20 +2363,6 @@ var Telepact = (function (exports, msgpackr, crc32) {
|
|
|
2348
2363
|
}
|
|
2349
2364
|
}
|
|
2350
2365
|
|
|
2351
|
-
class FunctionRouter {
|
|
2352
|
-
functionRoutes;
|
|
2353
|
-
constructor(functionRoutes) {
|
|
2354
|
-
this.functionRoutes = functionRoutes;
|
|
2355
|
-
}
|
|
2356
|
-
async route(requestMessage) {
|
|
2357
|
-
const functionName = requestMessage.getBodyTarget();
|
|
2358
|
-
const functionRoute = this.functionRoutes[functionName];
|
|
2359
|
-
if (functionRoute === undefined) {
|
|
2360
|
-
throw new Error(`Unknown function: ${functionName}`);
|
|
2361
|
-
}
|
|
2362
|
-
return await functionRoute(functionName, requestMessage);
|
|
2363
|
-
}
|
|
2364
|
-
}
|
|
2365
2366
|
class Server {
|
|
2366
2367
|
functionRouter;
|
|
2367
2368
|
middleware;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Message } from './Message.js';
|
|
2
|
+
export type FunctionRoute = (functionName: string, requestMessage: Message) => Promise<Message>;
|
|
3
|
+
export type FunctionRoutes = Record<string, FunctionRoute>;
|
|
4
|
+
export declare class FunctionRouter {
|
|
5
|
+
functionRoutes: FunctionRoutes;
|
|
6
|
+
constructor(functionRoutes: FunctionRoutes);
|
|
7
|
+
route(requestMessage: Message): Promise<Message>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//|
|
|
2
|
+
//| Copyright The Telepact Authors
|
|
3
|
+
//|
|
|
4
|
+
//| Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
//| you may not use this file except in compliance with the License.
|
|
6
|
+
//| You may obtain a copy of the License at
|
|
7
|
+
//|
|
|
8
|
+
//| https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//|
|
|
10
|
+
//| Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
//| distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
//| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
//| See the License for the specific language governing permissions and
|
|
14
|
+
//| limitations under the License.
|
|
15
|
+
//|
|
|
16
|
+
export class FunctionRouter {
|
|
17
|
+
functionRoutes;
|
|
18
|
+
constructor(functionRoutes) {
|
|
19
|
+
this.functionRoutes = functionRoutes;
|
|
20
|
+
}
|
|
21
|
+
async route(requestMessage) {
|
|
22
|
+
const functionName = requestMessage.getBodyTarget();
|
|
23
|
+
const functionRoute = this.functionRoutes[functionName];
|
|
24
|
+
if (functionRoute === undefined) {
|
|
25
|
+
throw new Error(`Unknown function: ${functionName}`);
|
|
26
|
+
}
|
|
27
|
+
return await functionRoute(functionName, requestMessage);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=FunctionRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionRouter.js","sourceRoot":"","sources":["../../src/FunctionRouter.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAOH,MAAM,OAAO,cAAc;IACvB,cAAc,CAAiB;IAE/B,YAAY,cAA8B;QACtC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,cAAuB;QAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,MAAM,aAAa,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;CACJ"}
|
package/dist/src/Server.d.ts
CHANGED
|
@@ -3,15 +3,11 @@ import { Message } from './Message.js';
|
|
|
3
3
|
import { TelepactSchema } from './TelepactSchema.js';
|
|
4
4
|
import { Serialization } from './Serialization.js';
|
|
5
5
|
import { Response } from './Response.js';
|
|
6
|
-
|
|
7
|
-
export type FunctionRoutes = Record<string, FunctionRoute>;
|
|
6
|
+
import { FunctionRouter } from './FunctionRouter.js';
|
|
8
7
|
export type Middleware = (requestMessage: Message, functionRouter: FunctionRouter) => Promise<Message>;
|
|
9
8
|
export type UpdateHeaders = (headers: Record<string, any>) => void;
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
constructor(functionRoutes: FunctionRoutes);
|
|
13
|
-
route(requestMessage: Message): Promise<Message>;
|
|
14
|
-
}
|
|
9
|
+
export { FunctionRouter } from './FunctionRouter.js';
|
|
10
|
+
export type { FunctionRoute, FunctionRoutes } from './FunctionRouter.js';
|
|
15
11
|
export declare class Server {
|
|
16
12
|
functionRouter: FunctionRouter;
|
|
17
13
|
middleware: Middleware;
|
package/dist/src/Server.js
CHANGED
|
@@ -19,20 +19,7 @@ import { ServerBinaryEncoder } from './internal/binary/ServerBinaryEncoder.js';
|
|
|
19
19
|
import { constructBinaryEncoding } from './internal/binary/ConstructBinaryEncoding.js';
|
|
20
20
|
import { processBytes } from './internal/ProcessBytes.js';
|
|
21
21
|
import { ServerBase64Encoder } from './internal/binary/ServerBase64Encoder.js';
|
|
22
|
-
export
|
|
23
|
-
functionRoutes;
|
|
24
|
-
constructor(functionRoutes) {
|
|
25
|
-
this.functionRoutes = functionRoutes;
|
|
26
|
-
}
|
|
27
|
-
async route(requestMessage) {
|
|
28
|
-
const functionName = requestMessage.getBodyTarget();
|
|
29
|
-
const functionRoute = this.functionRoutes[functionName];
|
|
30
|
-
if (functionRoute === undefined) {
|
|
31
|
-
throw new Error(`Unknown function: ${functionName}`);
|
|
32
|
-
}
|
|
33
|
-
return await functionRoute(functionName, requestMessage);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
22
|
+
export { FunctionRouter } from './FunctionRouter.js';
|
|
36
23
|
export class Server {
|
|
37
24
|
functionRouter;
|
|
38
25
|
middleware;
|
package/dist/src/Server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Server.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAG/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Server.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.js
CHANGED
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,eAAe;CAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,mCAAmC;AACnC,GAAG;AACH,oEAAoE;AACpE,qEAAqE;AACrE,4CAA4C;AAC5C,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,wEAAwE;AACxE,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,mCAAmC;AACnC,GAAG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,eAAe;CAClB,CAAC"}
|