@dcl/sdk 7.6.8-12415739875.commit-c9a0fe7 → 7.6.8-12529128672.commit-d6adcb3
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/index.js
CHANGED
@@ -18,6 +18,7 @@ export async function onUpdate(deltaTime) {
|
|
18
18
|
* Function that is called before the first update and after the evaluation of the code.
|
19
19
|
*/
|
20
20
|
export async function onStart() {
|
21
|
+
const rendererMessageInspector = globalThis.rendererMessageInspector;
|
21
22
|
const response = await crdtGetState({ data: new Uint8Array() });
|
22
23
|
// when this condition is true something like `main.crdt` was pre-loaded from the runtime, we don't need to instance the main.composite
|
23
24
|
if (!response.hasEntities) {
|
@@ -34,10 +35,13 @@ export async function onStart() {
|
|
34
35
|
}
|
35
36
|
if (!!rendererTransport.onmessage) {
|
36
37
|
if (response && response.data && response.data.length) {
|
38
|
+
if (rendererMessageInspector) {
|
39
|
+
rendererMessageInspector({ message: response.data, type: 'first-receive' });
|
40
|
+
}
|
37
41
|
for (const byteArray of response.data) {
|
38
42
|
rendererTransport.onmessage(byteArray);
|
39
43
|
}
|
40
44
|
}
|
41
45
|
}
|
42
46
|
}
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEVBQThFO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUE4QixNQUFNLHlDQUF5QyxDQUFBO0FBQzdHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFeEQsd0JBQXdCO0FBQ3hCLFlBQVk7QUFDWixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQTtBQUNoRixNQUFNLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFFdEMsTUFBTSxDQUFDLEtBQUssVUFBVSxRQUFRLENBQUMsU0FBaUI7SUFDOUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2IsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzlCLE1BQU0sVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQzdCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU87SUFDM0IsTUFBTSx3QkFBd0IsR0FBZ0MsVUFBa0IsQ0FBQyx3QkFBd0IsQ0FBQTtJQUN6RyxNQUFNLFFBQVEsR0FBRyxNQUFNLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUUvRCx1SUFBdUk7SUFDdkksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUU7UUFDekIsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUM1RSxJQUFJLGFBQWEsRUFBRTtZQUNqQixJQUFJO2dCQUNGLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO2FBQzdEO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO2dCQUM3RCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ25CO1NBQ0Y7S0FDRjtJQUVELElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtRQUNqQyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3JELElBQUksd0JBQXdCLEVBQUU7Z0JBQzVCLHdCQUF3QixDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUE7YUFDNUU7WUFDRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTthQUN2QztTQUNGO0tBQ0Y7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBhbHBoYSBUSElTIEZJTEUgSU5JVElBTElaRVMgVEhFIERFQ0VOVFJBTEFORCBSVU5USU1FLiBXSUxMIENIQU5HRSBTT09OICovXG5pbXBvcnQgeyBDb21wb3NpdGUsIGVuZ2luZSB9IGZyb20gJ0BkY2wvZWNzJ1xuaW1wb3J0IHsgY3JkdEdldFN0YXRlLCBjcmR0U2VuZFRvUmVuZGVyZXIsIHNlbmRCYXRjaCB9IGZyb20gJ35zeXN0ZW0vRW5naW5lQXBpJ1xuaW1wb3J0IHsgY3JlYXRlUmVuZGVyZXJUcmFuc3BvcnQsIEVuZ2luZUFwaVJlbmRlcmVySW5zcGVjdG9yIH0gZnJvbSAnLi9pbnRlcm5hbC90cmFuc3BvcnRzL3JlbmRlcmVyVHJhbnNwb3J0J1xuaW1wb3J0IHsgcG9sbEV2ZW50cyB9IGZyb20gJy4vb2JzZXJ2YWJsZXMnXG5pbXBvcnQgeyBjb21wb3NpdGVQcm92aWRlciB9IGZyb20gJy4vY29tcG9zaXRlLXByb3ZpZGVyJ1xuXG4vLyBBdHRhY2ggQ1JEVCB0cmFuc3BvcnRcbi8vIEBpbnRlcm5hbFxuZXhwb3J0IGNvbnN0IHJlbmRlcmVyVHJhbnNwb3J0ID0gY3JlYXRlUmVuZGVyZXJUcmFuc3BvcnQoeyBjcmR0U2VuZFRvUmVuZGVyZXIgfSlcbmVuZ2luZS5hZGRUcmFuc3BvcnQocmVuZGVyZXJUcmFuc3BvcnQpXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvblVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xuICBlbmdpbmUuc2VhbCgpXG4gIGF3YWl0IGVuZ2luZS51cGRhdGUoZGVsdGFUaW1lKVxuICBhd2FpdCBwb2xsRXZlbnRzKHNlbmRCYXRjaClcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdXBkYXRlIGFuZCBhZnRlciB0aGUgZXZhbHVhdGlvbiBvZiB0aGUgY29kZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9uU3RhcnQoKSB7XG4gIGNvbnN0IHJlbmRlcmVyTWVzc2FnZUluc3BlY3RvcjogRW5naW5lQXBpUmVuZGVyZXJJbnNwZWN0b3IgPSAoZ2xvYmFsVGhpcyBhcyBhbnkpLnJlbmRlcmVyTWVzc2FnZUluc3BlY3RvclxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNyZHRHZXRTdGF0ZSh7IGRhdGE6IG5ldyBVaW50OEFycmF5KCkgfSlcblxuICAvLyB3aGVuIHRoaXMgY29uZGl0aW9uIGlzIHRydWUgc29tZXRoaW5nIGxpa2UgYG1haW4uY3JkdGAgd2FzIHByZS1sb2FkZWQgZnJvbSB0aGUgcnVudGltZSwgd2UgZG9uJ3QgbmVlZCB0byBpbnN0YW5jZSB0aGUgbWFpbi5jb21wb3NpdGVcbiAgaWYgKCFyZXNwb25zZS5oYXNFbnRpdGllcykge1xuICAgIGNvbnN0IG1haW5Db21wb3NpdGUgPSBjb21wb3NpdGVQcm92aWRlci5nZXRDb21wb3NpdGVPck51bGwoJ21haW4uY29tcG9zaXRlJylcbiAgICBpZiAobWFpbkNvbXBvc2l0ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgQ29tcG9zaXRlLmluc3RhbmNlKGVuZ2luZSwgbWFpbkNvbXBvc2l0ZSwgY29tcG9zaXRlUHJvdmlkZXIpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFdhcm5pbmc6IG1haW4uY29tcG9zaXRlIGNvdWxkbid0IGJlIGluc3RhbmNlZC5gKVxuICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoISFyZW5kZXJlclRyYW5zcG9ydC5vbm1lc3NhZ2UpIHtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuZGF0YSAmJiByZXNwb25zZS5kYXRhLmxlbmd0aCkge1xuICAgICAgaWYgKHJlbmRlcmVyTWVzc2FnZUluc3BlY3Rvcikge1xuICAgICAgICByZW5kZXJlck1lc3NhZ2VJbnNwZWN0b3IoeyBtZXNzYWdlOiByZXNwb25zZS5kYXRhLCB0eXBlOiAnZmlyc3QtcmVjZWl2ZScgfSlcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgYnl0ZUFycmF5IG9mIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgcmVuZGVyZXJUcmFuc3BvcnQub25tZXNzYWdlKGJ5dGVBcnJheSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -1,6 +1,10 @@
|
|
1
1
|
/// <reference types="@dcl/js-runtime" />
|
2
2
|
import { Transport } from '@dcl/ecs';
|
3
3
|
import type { CrdtSendToRendererRequest, CrdtSendToResponse } from '~system/EngineApi';
|
4
|
+
export type EngineApiRendererInspector = ((data: {
|
5
|
+
message: Uint8Array[];
|
6
|
+
type: 'send' | 'receive' | 'first-receive';
|
7
|
+
}) => void) | undefined;
|
4
8
|
export type EngineApiForTransport = {
|
5
9
|
crdtSendToRenderer(body: CrdtSendToRendererRequest): Promise<CrdtSendToResponse>;
|
6
10
|
};
|
@@ -1,10 +1,17 @@
|
|
1
1
|
import { MAX_STATIC_COMPONENT } from '@dcl/ecs/dist/components/component-number';
|
2
2
|
export function createRendererTransport(engineApi) {
|
3
3
|
async function sendToRenderer(message) {
|
4
|
+
const rendererMessageInspector = globalThis.rendererMessageInspector;
|
5
|
+
if (rendererMessageInspector) {
|
6
|
+
rendererMessageInspector({ message: [message], type: 'send' });
|
7
|
+
}
|
4
8
|
const response = await engineApi.crdtSendToRenderer({
|
5
9
|
data: new Uint8Array(message)
|
6
10
|
});
|
7
11
|
if (response && response.data && response.data.length) {
|
12
|
+
if (rendererMessageInspector) {
|
13
|
+
rendererMessageInspector({ message: response.data, type: 'receive' });
|
14
|
+
}
|
8
15
|
if (rendererTransport.onmessage) {
|
9
16
|
for (const byteArray of response.data) {
|
10
17
|
rendererTransport.onmessage(byteArray);
|
@@ -37,4 +44,4 @@ export function createRendererTransport(engineApi) {
|
|
37
44
|
};
|
38
45
|
return rendererTransport;
|
39
46
|
}
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXJUcmFuc3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvdHJhbnNwb3J0cy9yZW5kZXJlclRyYW5zcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQVdoRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBZ0M7SUFDdEUsS0FBSyxVQUFVLGNBQWMsQ0FBQyxPQUFtQjtRQUMvQyxNQUFNLHdCQUF3QixHQUFnQyxVQUFrQixDQUFDLHdCQUF3QixDQUFBO1FBRXpHLElBQUksd0JBQXdCLEVBQUU7WUFDNUIsd0JBQXdCLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtTQUMvRDtRQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLGtCQUFrQixDQUFDO1lBQ2xELElBQUksRUFBRSxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUM7U0FDOUIsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyRCxJQUFJLHdCQUF3QixFQUFFO2dCQUM1Qix3QkFBd0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO2FBQ3RFO1lBRUQsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7Z0JBQy9CLEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtvQkFDckMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2lCQUN2QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBYztRQUNuQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDaEIsSUFBSTtnQkFDRixNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTthQUM5QjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLHlDQUF5QztnQkFDekMsc0NBQXNDO2dCQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUNwQixRQUFRLENBQUE7YUFDVDtRQUNILENBQUM7UUFDRCxNQUFNLENBQUMsT0FBeUI7WUFDOUIsa0RBQWtEO1lBQ2xEO1lBQ0UsOENBQThDO1lBQzdDLE9BQWUsQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLEVBQ25EO2dCQUNBLE9BQU8sS0FBSyxDQUFBO2FBQ2I7WUFFRCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUE7UUFDbEIsQ0FBQztRQUNELElBQUksRUFBRSxVQUFVO0tBQ2pCLENBQUE7SUFFRCxPQUFPLGlCQUFpQixDQUFBO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc3BvcnQsIFRyYW5zcG9ydE1lc3NhZ2UgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1BWF9TVEFUSUNfQ09NUE9ORU5UIH0gZnJvbSAnQGRjbC9lY3MvZGlzdC9jb21wb25lbnRzL2NvbXBvbmVudC1udW1iZXInXG5pbXBvcnQgdHlwZSB7IENyZHRTZW5kVG9SZW5kZXJlclJlcXVlc3QsIENyZHRTZW5kVG9SZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vRW5naW5lQXBpJ1xuXG5leHBvcnQgdHlwZSBFbmdpbmVBcGlSZW5kZXJlckluc3BlY3RvciA9XG4gIHwgKChkYXRhOiB7IG1lc3NhZ2U6IFVpbnQ4QXJyYXlbXTsgdHlwZTogJ3NlbmQnIHwgJ3JlY2VpdmUnIHwgJ2ZpcnN0LXJlY2VpdmUnIH0pID0+IHZvaWQpXG4gIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCB0eXBlIEVuZ2luZUFwaUZvclRyYW5zcG9ydCA9IHtcbiAgY3JkdFNlbmRUb1JlbmRlcmVyKGJvZHk6IENyZHRTZW5kVG9SZW5kZXJlclJlcXVlc3QpOiBQcm9taXNlPENyZHRTZW5kVG9SZXNwb25zZT5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlbmRlcmVyVHJhbnNwb3J0KGVuZ2luZUFwaTogRW5naW5lQXBpRm9yVHJhbnNwb3J0KTogVHJhbnNwb3J0IHtcbiAgYXN5bmMgZnVuY3Rpb24gc2VuZFRvUmVuZGVyZXIobWVzc2FnZTogVWludDhBcnJheSkge1xuICAgIGNvbnN0IHJlbmRlcmVyTWVzc2FnZUluc3BlY3RvcjogRW5naW5lQXBpUmVuZGVyZXJJbnNwZWN0b3IgPSAoZ2xvYmFsVGhpcyBhcyBhbnkpLnJlbmRlcmVyTWVzc2FnZUluc3BlY3RvclxuXG4gICAgaWYgKHJlbmRlcmVyTWVzc2FnZUluc3BlY3Rvcikge1xuICAgICAgcmVuZGVyZXJNZXNzYWdlSW5zcGVjdG9yKHsgbWVzc2FnZTogW21lc3NhZ2VdLCB0eXBlOiAnc2VuZCcgfSlcbiAgICB9XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBlbmdpbmVBcGkuY3JkdFNlbmRUb1JlbmRlcmVyKHtcbiAgICAgIGRhdGE6IG5ldyBVaW50OEFycmF5KG1lc3NhZ2UpXG4gICAgfSlcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuZGF0YSAmJiByZXNwb25zZS5kYXRhLmxlbmd0aCkge1xuICAgICAgaWYgKHJlbmRlcmVyTWVzc2FnZUluc3BlY3Rvcikge1xuICAgICAgICByZW5kZXJlck1lc3NhZ2VJbnNwZWN0b3IoeyBtZXNzYWdlOiByZXNwb25zZS5kYXRhLCB0eXBlOiAncmVjZWl2ZScgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKHJlbmRlcmVyVHJhbnNwb3J0Lm9ubWVzc2FnZSkge1xuICAgICAgICBmb3IgKGNvbnN0IGJ5dGVBcnJheSBvZiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgcmVuZGVyZXJUcmFuc3BvcnQub25tZXNzYWdlKGJ5dGVBcnJheSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlbmRlcmVyVHJhbnNwb3J0OiBUcmFuc3BvcnQgPSB7XG4gICAgYXN5bmMgc2VuZChtZXNzYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBzZW5kVG9SZW5kZXJlcihtZXNzYWdlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gdGhpcyBpcyB0aGUgY29uc29sZS5lcnJvciBvZiB0aGUgc2NlbmVcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgICAgZGVidWdnZXJcbiAgICAgIH1cbiAgICB9LFxuICAgIGZpbHRlcihtZXNzYWdlOiBUcmFuc3BvcnRNZXNzYWdlKSB7XG4gICAgICAvLyBPbmx5IHNlbmQgcmVuZGVyZXIgY29tcG9uZW50cyAoUHJvdG8gR2VuZXJhdGVkKVxuICAgICAgaWYgKFxuICAgICAgICAvLyBmaWx0ZXIgb3V0IG1lc3NhZ2VzIGZvciBub24tY29yZSBjb21wb25lbnRzXG4gICAgICAgIChtZXNzYWdlIGFzIGFueSkuY29tcG9uZW50SWQgPiBNQVhfU1RBVElDX0NPTVBPTkVOVFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gISFtZXNzYWdlXG4gICAgfSxcbiAgICB0eXBlOiAncmVuZGVyZXInXG4gIH1cblxuICByZXR1cm4gcmVuZGVyZXJUcmFuc3BvcnRcbn1cbiJdfQ==
|
package/package.json
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"name": "@dcl/sdk",
|
3
3
|
"description": "",
|
4
|
-
"version": "7.6.8-
|
4
|
+
"version": "7.6.8-12529128672.commit-d6adcb3",
|
5
5
|
"author": "Decentraland",
|
6
6
|
"dependencies": {
|
7
|
-
"@dcl/ecs": "7.6.8-
|
7
|
+
"@dcl/ecs": "7.6.8-12529128672.commit-d6adcb3",
|
8
8
|
"@dcl/ecs-math": "2.1.0",
|
9
9
|
"@dcl/explorer": "1.0.164509-20240802172549.commit-fb95b9b",
|
10
|
-
"@dcl/js-runtime": "7.6.8-
|
11
|
-
"@dcl/react-ecs": "7.6.8-
|
12
|
-
"@dcl/sdk-commands": "7.6.8-
|
10
|
+
"@dcl/js-runtime": "7.6.8-12529128672.commit-d6adcb3",
|
11
|
+
"@dcl/react-ecs": "7.6.8-12529128672.commit-d6adcb3",
|
12
|
+
"@dcl/sdk-commands": "7.6.8-12529128672.commit-d6adcb3",
|
13
13
|
"text-encoding": "0.7.0"
|
14
14
|
},
|
15
15
|
"keywords": [],
|
@@ -35,5 +35,5 @@
|
|
35
35
|
},
|
36
36
|
"types": "./index.d.ts",
|
37
37
|
"typings": "./index.d.ts",
|
38
|
-
"commit": "
|
38
|
+
"commit": "d6adcb304e6e3df4207e35172a722c2b02401ab7"
|
39
39
|
}
|
package/src/index.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/** @alpha THIS FILE INITIALIZES THE DECENTRALAND RUNTIME. WILL CHANGE SOON */
|
2
2
|
import { Composite, engine } from '@dcl/ecs'
|
3
3
|
import { crdtGetState, crdtSendToRenderer, sendBatch } from '~system/EngineApi'
|
4
|
-
import { createRendererTransport } from './internal/transports/rendererTransport'
|
4
|
+
import { createRendererTransport, EngineApiRendererInspector } from './internal/transports/rendererTransport'
|
5
5
|
import { pollEvents } from './observables'
|
6
6
|
import { compositeProvider } from './composite-provider'
|
7
7
|
|
@@ -21,6 +21,7 @@ export async function onUpdate(deltaTime: number) {
|
|
21
21
|
* Function that is called before the first update and after the evaluation of the code.
|
22
22
|
*/
|
23
23
|
export async function onStart() {
|
24
|
+
const rendererMessageInspector: EngineApiRendererInspector = (globalThis as any).rendererMessageInspector
|
24
25
|
const response = await crdtGetState({ data: new Uint8Array() })
|
25
26
|
|
26
27
|
// when this condition is true something like `main.crdt` was pre-loaded from the runtime, we don't need to instance the main.composite
|
@@ -38,6 +39,9 @@ export async function onStart() {
|
|
38
39
|
|
39
40
|
if (!!rendererTransport.onmessage) {
|
40
41
|
if (response && response.data && response.data.length) {
|
42
|
+
if (rendererMessageInspector) {
|
43
|
+
rendererMessageInspector({ message: response.data, type: 'first-receive' })
|
44
|
+
}
|
41
45
|
for (const byteArray of response.data) {
|
42
46
|
rendererTransport.onmessage(byteArray)
|
43
47
|
}
|
@@ -2,16 +2,29 @@ import { Transport, TransportMessage } from '@dcl/ecs'
|
|
2
2
|
import { MAX_STATIC_COMPONENT } from '@dcl/ecs/dist/components/component-number'
|
3
3
|
import type { CrdtSendToRendererRequest, CrdtSendToResponse } from '~system/EngineApi'
|
4
4
|
|
5
|
+
export type EngineApiRendererInspector =
|
6
|
+
| ((data: { message: Uint8Array[]; type: 'send' | 'receive' | 'first-receive' }) => void)
|
7
|
+
| undefined
|
8
|
+
|
5
9
|
export type EngineApiForTransport = {
|
6
10
|
crdtSendToRenderer(body: CrdtSendToRendererRequest): Promise<CrdtSendToResponse>
|
7
11
|
}
|
8
12
|
|
9
13
|
export function createRendererTransport(engineApi: EngineApiForTransport): Transport {
|
10
14
|
async function sendToRenderer(message: Uint8Array) {
|
15
|
+
const rendererMessageInspector: EngineApiRendererInspector = (globalThis as any).rendererMessageInspector
|
16
|
+
|
17
|
+
if (rendererMessageInspector) {
|
18
|
+
rendererMessageInspector({ message: [message], type: 'send' })
|
19
|
+
}
|
11
20
|
const response = await engineApi.crdtSendToRenderer({
|
12
21
|
data: new Uint8Array(message)
|
13
22
|
})
|
14
23
|
if (response && response.data && response.data.length) {
|
24
|
+
if (rendererMessageInspector) {
|
25
|
+
rendererMessageInspector({ message: response.data, type: 'receive' })
|
26
|
+
}
|
27
|
+
|
15
28
|
if (rendererTransport.onmessage) {
|
16
29
|
for (const byteArray of response.data) {
|
17
30
|
rendererTransport.onmessage(byteArray)
|