@rbxts/tether 1.4.14 → 1.4.16
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.
|
@@ -7,6 +7,7 @@ import { ServerEmitter } from "./server-emitter";
|
|
|
7
7
|
import { ClientEmitter } from "./client-emitter";
|
|
8
8
|
import { Relayer } from "../relayer";
|
|
9
9
|
import { Serdes } from "../serdes";
|
|
10
|
+
import { SerializerMetadata } from "@rbxts/serio";
|
|
10
11
|
export interface MessageEmitterOptions<MessageData> {
|
|
11
12
|
readonly batchRemotes: boolean;
|
|
12
13
|
readonly batchRate: number;
|
|
@@ -34,6 +35,11 @@ export declare class MessageEmitter<MessageData> extends Destroyable {
|
|
|
34
35
|
runServerSendMiddlewares<Kind extends keyof MessageData>(message: Kind & BaseMessage, data?: MessageData[Kind]): [boolean, MessageData[Kind]];
|
|
35
36
|
/** @hidden */
|
|
36
37
|
onRemoteFire(isServer: boolean, serializedPackets: SerializedPacket[], player?: Player): void;
|
|
38
|
+
/**
|
|
39
|
+
* Note: Will only work for literal message types, where `MessageData[Kind]` can be exactly inferred
|
|
40
|
+
* @metadata macro
|
|
41
|
+
*/
|
|
42
|
+
getSchema<Kind extends keyof MessageData>(message: Kind & BaseMessage, meta?: Modding.Many<SerializerMetadata<MessageData[Kind]>>): SerializerMetadata<MessageData[Kind]>;
|
|
37
43
|
private runServerReceiveMiddlewares;
|
|
38
44
|
private runClientReceiveMiddlewares;
|
|
39
45
|
private validateData;
|
|
@@ -167,6 +167,9 @@ do
|
|
|
167
167
|
self:executeFunctions(isServer, message, packet)
|
|
168
168
|
end
|
|
169
169
|
end
|
|
170
|
+
function MessageEmitter:getSchema(message, meta)
|
|
171
|
+
return self.serdes:getSchema(message, meta)
|
|
172
|
+
end
|
|
170
173
|
function MessageEmitter:runServerReceiveMiddlewares(message, player, data)
|
|
171
174
|
local ctx = {
|
|
172
175
|
message = message,
|
package/out/serdes.d.ts
CHANGED
|
@@ -3,11 +3,13 @@ import type { Serializer, SerializerMetadata } from "@rbxts/serio";
|
|
|
3
3
|
import type { BaseMessage, SerializedPacket } from "./structs";
|
|
4
4
|
export declare class Serdes<MessageData> {
|
|
5
5
|
serializers: Partial<Record<keyof MessageData, Serializer<MessageData[keyof MessageData]>>>;
|
|
6
|
+
/** @metadata macro */
|
|
7
|
+
getSchema<Kind extends keyof MessageData>(message: Kind & BaseMessage, meta?: Modding.Many<SerializerMetadata<MessageData[Kind]>>): SerializerMetadata<MessageData[Kind]>;
|
|
6
8
|
serializePacket<Kind extends keyof MessageData>(message: Kind & BaseMessage, data?: MessageData[Kind]): SerializedPacket;
|
|
7
9
|
deserializePacket<K extends keyof MessageData>(message: K & BaseMessage, serializedPacket: SerializedPacket): MessageData[K] | undefined;
|
|
8
10
|
/** @metadata macro */
|
|
9
11
|
addSerializer<K extends keyof MessageData>(message: K & BaseMessage, meta?: Modding.Many<SerializerMetadata<MessageData[K]>>): void;
|
|
10
12
|
/** @metadata macro */
|
|
11
13
|
createMessageSerializer<Kind extends keyof MessageData>(meta?: Modding.Many<SerializerMetadata<MessageData[Kind]>>): Serializer<MessageData[Kind]>;
|
|
12
|
-
getSerializer<Kind extends keyof MessageData>(message: Kind & BaseMessage): Serializer<MessageData[Kind]
|
|
14
|
+
getSerializer<Kind extends keyof MessageData>(message: Kind & BaseMessage): Serializer<MessageData[Kind]> | undefined;
|
|
13
15
|
}
|
package/out/serdes.luau
CHANGED
|
@@ -17,6 +17,13 @@ do
|
|
|
17
17
|
function Serdes:constructor()
|
|
18
18
|
self.serializers = {}
|
|
19
19
|
end
|
|
20
|
+
function Serdes:getSchema(message, meta)
|
|
21
|
+
local serializer = self:getSerializer(message)
|
|
22
|
+
if serializer == nil then
|
|
23
|
+
error(`[@rbxts/tether]: Cannot get schema metadata for message '{message}', serializer not found`)
|
|
24
|
+
end
|
|
25
|
+
return serializer:getSchema(meta)
|
|
26
|
+
end
|
|
20
27
|
function Serdes:serializePacket(message, data)
|
|
21
28
|
local serializer = self:getSerializer(message)
|
|
22
29
|
local messageBuf = createMessageBuffer(message)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rbxts/tether",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.16",
|
|
4
4
|
"main": "out/init.luau",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"setup-rokit": "rokit trust lune-org/lune && rokit trust rojo-rbx/rojo && rokit install",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@rbxts/compiler-types": "^3.0.0-types.0",
|
|
35
|
-
"@rbxts/types": "^1.0.
|
|
35
|
+
"@rbxts/types": "^1.0.907",
|
|
36
36
|
"rbxts-transformer-flamework": "^1.3.2",
|
|
37
37
|
"roblox-ts": "^3.0.0",
|
|
38
38
|
"ts-toolbelt": "^9.6.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@rbxts/flamework-meta-utils": "^1.0.7",
|
|
45
45
|
"@rbxts/object-utils": "^1.0.4",
|
|
46
46
|
"@rbxts/repr": "^1.0.3",
|
|
47
|
-
"@rbxts/serio": "^1.2.
|
|
47
|
+
"@rbxts/serio": "^1.2.4",
|
|
48
48
|
"@rbxts/services": "^1.6.0",
|
|
49
49
|
"@rbxts/trash": "^1.0.8"
|
|
50
50
|
}
|