@dcl/sdk-commands 7.1.2-4415683908.commit-0a210fd → 7.1.2-4419392799.commit-7961b54
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/commands/start/data-layer/rpc.d.ts +15 -0
- package/dist/commands/start/data-layer/rpc.js +46 -0
- package/dist/commands/start/data-layer/ws.d.ts +3 -0
- package/dist/commands/start/data-layer/ws.js +16 -0
- package/dist/commands/start/index.d.ts +2 -1
- package/dist/commands/start/index.js +8 -4
- package/dist/commands/start/server/routes.d.ts +2 -1
- package/dist/commands/start/server/routes.js +10 -1
- package/package.json +8 -6
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RpcServer } from '@dcl/rpc';
|
|
2
|
+
import { createEngine } from '@dcl/inspector';
|
|
3
|
+
import { CliComponents } from '../../../components';
|
|
4
|
+
export type IEngine = ReturnType<typeof createEngine>;
|
|
5
|
+
export type DataLayerContext = {
|
|
6
|
+
engine: IEngine;
|
|
7
|
+
};
|
|
8
|
+
export type DataLayerRPC = {
|
|
9
|
+
rpcServer: RpcServer<DataLayerContext>;
|
|
10
|
+
/**
|
|
11
|
+
* we use the same engine with multiple transports for all the contexts.
|
|
12
|
+
*/
|
|
13
|
+
engine: IEngine;
|
|
14
|
+
};
|
|
15
|
+
export declare function createDataLayerRpc({ fs }: Pick<CliComponents, 'fs'>): DataLayerRPC;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.createDataLayerRpc = void 0;
|
|
27
|
+
const rpc_1 = require("@dcl/rpc");
|
|
28
|
+
const codegen = __importStar(require("@dcl/rpc/dist/codegen"));
|
|
29
|
+
const inspector_1 = require("@dcl/inspector");
|
|
30
|
+
function createDataLayerRpc({ fs }) {
|
|
31
|
+
const engine = (0, inspector_1.createEngine)();
|
|
32
|
+
setInterval(() => {
|
|
33
|
+
engine.update(0.016).catch((err) => {
|
|
34
|
+
console.error(err);
|
|
35
|
+
debugger;
|
|
36
|
+
});
|
|
37
|
+
}, 16);
|
|
38
|
+
const dataLayer = (0, inspector_1.initRpcMethods)(fs, engine);
|
|
39
|
+
const rpcServer = (0, rpc_1.createRpcServer)({});
|
|
40
|
+
rpcServer.setHandler(rpcHandler);
|
|
41
|
+
async function rpcHandler(serverPort) {
|
|
42
|
+
codegen.registerService(serverPort, inspector_1.DataLayerProto.DataServiceDefinition, async () => dataLayer);
|
|
43
|
+
}
|
|
44
|
+
return { rpcServer, engine };
|
|
45
|
+
}
|
|
46
|
+
exports.createDataLayerRpc = createDataLayerRpc;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleDataLayerWs = void 0;
|
|
4
|
+
const WebSocket_1 = require("@dcl/rpc/dist/transports/WebSocket");
|
|
5
|
+
async function handleDataLayerWs(ws, { rpcServer, engine }) {
|
|
6
|
+
const wsTransport = (0, WebSocket_1.WebSocketTransport)(ws);
|
|
7
|
+
rpcServer.attachTransport(wsTransport, { engine });
|
|
8
|
+
ws.on('error', (error) => {
|
|
9
|
+
console.error(error);
|
|
10
|
+
ws.close();
|
|
11
|
+
});
|
|
12
|
+
ws.on('close', () => {
|
|
13
|
+
console.debug('Websocket closed');
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
exports.handleDataLayerWs = handleDataLayerWs;
|
|
@@ -24,7 +24,8 @@ export declare const args: import("arg").Result<{
|
|
|
24
24
|
'-w': string;
|
|
25
25
|
'--skip-build': BooleanConstructor;
|
|
26
26
|
'--desktop-client': BooleanConstructor;
|
|
27
|
+
'--data-layer': BooleanConstructor;
|
|
27
28
|
}>;
|
|
28
|
-
export declare function help(): string
|
|
29
|
+
export declare function help(): Promise<string>;
|
|
29
30
|
export declare function main(options: Options): Promise<void>;
|
|
30
31
|
export {};
|
|
@@ -49,6 +49,7 @@ const file_watch_notifier_1 = require("./server/file-watch-notifier");
|
|
|
49
49
|
const routes_1 = require("./server/routes");
|
|
50
50
|
const ws_1 = require("./server/ws");
|
|
51
51
|
const project_files_1 = require("../../logic/project-files");
|
|
52
|
+
const rpc_1 = require("./data-layer/rpc");
|
|
52
53
|
exports.args = (0, args_1.getArgs)({
|
|
53
54
|
'--dir': String,
|
|
54
55
|
'--help': Boolean,
|
|
@@ -65,9 +66,10 @@ exports.args = (0, args_1.getArgs)({
|
|
|
65
66
|
'-b': '--no-browser',
|
|
66
67
|
'-w': '--no-watch',
|
|
67
68
|
'--skip-build': Boolean,
|
|
68
|
-
'--desktop-client': Boolean
|
|
69
|
+
'--desktop-client': Boolean,
|
|
70
|
+
'--data-layer': Boolean
|
|
69
71
|
});
|
|
70
|
-
function help() {
|
|
72
|
+
async function help() {
|
|
71
73
|
return `
|
|
72
74
|
Usage: sdk-commands start [options]
|
|
73
75
|
|
|
@@ -102,6 +104,7 @@ async function main(options) {
|
|
|
102
104
|
const openBrowser = !exports.args['--no-browser'] && !isCi;
|
|
103
105
|
const skipBuild = exports.args['--skip-build'];
|
|
104
106
|
const watch = !exports.args['--no-watch'];
|
|
107
|
+
const withDataLayer = exports.args['--data-layer'];
|
|
105
108
|
const enableWeb3 = exports.args['--web3'];
|
|
106
109
|
// TODO: FIX this hardcoded values ?
|
|
107
110
|
const hasPortableExperience = false;
|
|
@@ -159,7 +162,8 @@ async function main(options) {
|
|
|
159
162
|
};
|
|
160
163
|
},
|
|
161
164
|
async main({ components, startComponents }) {
|
|
162
|
-
|
|
165
|
+
const dataLayerRpc = withDataLayer ? (0, rpc_1.createDataLayerRpc)({ fs: components.fs }) : undefined;
|
|
166
|
+
await (0, routes_1.wireRouter)(components, projectRoot, dataLayerRpc);
|
|
163
167
|
if (watch) {
|
|
164
168
|
await (0, file_watch_notifier_1.wireFileWatcherToWebSockets)(components, projectRoot);
|
|
165
169
|
}
|
|
@@ -177,7 +181,7 @@ async function main(options) {
|
|
|
177
181
|
;
|
|
178
182
|
(networkInterfaces[dev] || []).forEach((details) => {
|
|
179
183
|
if (details.family === 'IPv4') {
|
|
180
|
-
let addr = `http://${details.address}:${port}?position=${baseCoords.x}%2C${baseCoords.y}
|
|
184
|
+
let addr = `http://${details.address}:${port}?position=${baseCoords.x}%2C${baseCoords.y}`;
|
|
181
185
|
if (debug) {
|
|
182
186
|
addr = `${addr}&SCENE_DEBUG_PANEL`;
|
|
183
187
|
}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { PreviewComponents } from '../types';
|
|
2
|
-
|
|
2
|
+
import { DataLayerRPC } from '../data-layer/rpc';
|
|
3
|
+
export declare function wireRouter(components: PreviewComponents, dir: string, dataLayer?: DataLayerRPC): Promise<void>;
|
|
@@ -5,9 +5,18 @@ const realm_1 = require("./realm");
|
|
|
5
5
|
const http_server_1 = require("@well-known-components/http-server");
|
|
6
6
|
const endpoints_1 = require("./endpoints");
|
|
7
7
|
const ws_1 = require("@well-known-components/http-server/dist/ws");
|
|
8
|
-
|
|
8
|
+
const ws_2 = require("../data-layer/ws");
|
|
9
|
+
async function wireRouter(components, dir, dataLayer) {
|
|
9
10
|
const router = new http_server_1.Router();
|
|
10
11
|
const sceneUpdateClients = new Set();
|
|
12
|
+
if (dataLayer) {
|
|
13
|
+
router.get('/data-layer', async (ctx, next) => {
|
|
14
|
+
if (ctx.request.headers.get('upgrade') === 'websocket') {
|
|
15
|
+
return (0, ws_1.upgradeWebSocketResponse)((ws) => (0, ws_2.handleDataLayerWs)(ws, dataLayer));
|
|
16
|
+
}
|
|
17
|
+
return next();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
11
20
|
router.get('/', async (ctx, next) => {
|
|
12
21
|
if (ctx.request.headers.get('upgrade') === 'websocket') {
|
|
13
22
|
return (0, ws_1.upgradeWebSocketResponse)((ws) => initWsConnection(ws, sceneUpdateClients));
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/sdk-commands",
|
|
3
|
-
"version": "7.1.2-
|
|
3
|
+
"version": "7.1.2-4419392799.commit-7961b54",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
|
-
"
|
|
7
|
-
"
|
|
6
|
+
"start": "tsc -p tsconfig.json --watch",
|
|
7
|
+
"build": "tsc -p tsconfig.json"
|
|
8
8
|
},
|
|
9
9
|
"bin": {
|
|
10
10
|
"sdk-commands": "./dist/index.js"
|
|
@@ -16,11 +16,13 @@
|
|
|
16
16
|
"author": "Decentraland",
|
|
17
17
|
"license": "Apache-2.0",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@dcl/dcl-rollup": "7.1.2-
|
|
19
|
+
"@dcl/dcl-rollup": "7.1.2-4419392799.commit-7961b54",
|
|
20
20
|
"@dcl/hashing": "1.1.3",
|
|
21
|
+
"@dcl/inspector": "7.1.2-4419392799.commit-7961b54",
|
|
21
22
|
"@dcl/linker-dapp": "0.7.0",
|
|
22
23
|
"@dcl/mini-comms": "1.0.1-20230216163137.commit-a4c75be",
|
|
23
|
-
"@dcl/protocol": "1.0.0-
|
|
24
|
+
"@dcl/protocol": "1.0.0-4408137944.commit-a67c796",
|
|
25
|
+
"@dcl/rpc": "^1.1.1",
|
|
24
26
|
"@dcl/schemas": "6.10.0",
|
|
25
27
|
"@segment/analytics-node": "^1.0.0-beta.22",
|
|
26
28
|
"@well-known-components/env-config-provider": "^1.2.0",
|
|
@@ -54,5 +56,5 @@
|
|
|
54
56
|
"files": [
|
|
55
57
|
"dist"
|
|
56
58
|
],
|
|
57
|
-
"commit": "
|
|
59
|
+
"commit": "7961b54813d767254a533472157b7c07665aeb13"
|
|
58
60
|
}
|