@teardown/cli 1.2.29 → 1.2.31

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.
@@ -2,6 +2,7 @@ import { type FastifyInstance } from "fastify";
2
2
  import type { TerminalReportableEvent } from "metro/src/lib/TerminalReporter";
3
3
  import { KeyboardHandlerManager } from "../dev-menu/keyboard-handler";
4
4
  import { TeardownTerminalReporter } from "../terminal/terminal.reporter";
5
+ import { Inspector } from "./inspector/inspector";
5
6
  import { WebSocketApiServer } from "./plugins/wss/servers/web-socket-api.server";
6
7
  import { WebSocketEventsServer } from "./plugins/wss/servers/web-socket-events.server";
7
8
  import { WebSocketMessageServer } from "./plugins/wss/servers/web-socket-message.server";
@@ -24,22 +25,19 @@ export declare class DevServer {
24
25
  messageServer: WebSocketMessageServer;
25
26
  eventsServer: WebSocketEventsServer;
26
27
  keyboardHandler: KeyboardHandlerManager;
28
+ inspector: Inspector;
27
29
  constructor(config: DevServerOptions);
28
30
  onWrite(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): Promise<void>;
29
31
  getDevServerUrl(): string;
30
32
  onInitializeDone(): void;
31
33
  reportMetroEvent(event: TerminalReportableEvent): void;
32
34
  private onBundleBuilt;
33
- private onMessage;
34
35
  private onClientConnected;
35
36
  private loadMetroConfig;
36
37
  private _metroConfig;
37
38
  private getMetroConfig;
38
39
  private registerPlugins;
39
40
  private onSymbolicate;
40
- private customInspectorMessageHandler;
41
- private onDeviceMessage;
42
- private onDebuggerMessage;
43
41
  private registerHooks;
44
42
  private registerRoutes;
45
43
  initialize(): Promise<void>;
@@ -16,6 +16,7 @@ const metro_1 = __importDefault(require("metro"));
16
16
  const node_stream_1 = require("node:stream");
17
17
  const keyboard_handler_1 = require("../dev-menu/keyboard-handler");
18
18
  const terminal_reporter_1 = require("../terminal/terminal.reporter");
19
+ const inspector_1 = require("./inspector/inspector");
19
20
  const devtools_plugin_1 = require("./plugins/devtools.plugin");
20
21
  const favicon_plugin_1 = require("./plugins/favicon.plugin");
21
22
  const multipart_plugin_1 = require("./plugins/multipart.plugin");
@@ -25,7 +26,6 @@ const web_socket_api_server_1 = require("./plugins/wss/servers/web-socket-api.se
25
26
  const web_socket_events_server_1 = require("./plugins/wss/servers/web-socket-events.server");
26
27
  const web_socket_message_server_1 = require("./plugins/wss/servers/web-socket-message.server");
27
28
  const sybmolicate_plugin_1 = require("./sybmolicate/sybmolicate.plugin");
28
- const inspector_1 = require("./inspector/inspector");
29
29
  class DevServer {
30
30
  config;
31
31
  terminalReporter;
@@ -35,6 +35,7 @@ class DevServer {
35
35
  messageServer;
36
36
  eventsServer;
37
37
  keyboardHandler;
38
+ inspector;
38
39
  constructor(config) {
39
40
  this.config = config;
40
41
  this.terminalReporter = new terminal_reporter_1.TeardownTerminalReporter(this);
@@ -55,13 +56,18 @@ class DevServer {
55
56
  webSocketMessageServer: this.messageServer,
56
57
  });
57
58
  this.keyboardHandler = new keyboard_handler_1.KeyboardHandlerManager(this);
59
+ this.inspector = new inspector_1.Inspector({
60
+ projectRoot: this.config.projectRoot,
61
+ serverBaseUrl: this.getDevServerUrl(),
62
+ // eventReporter: this.terminalReporter,
63
+ });
58
64
  }
59
65
  async onWrite(chunk, encoding, callback) {
60
66
  if (chunk == null) {
61
67
  return;
62
68
  }
63
69
  const log = JSON.parse(chunk.toString());
64
- this.onMessage(log);
70
+ this.apiServer.send(log);
65
71
  callback();
66
72
  }
67
73
  getDevServerUrl() {
@@ -72,6 +78,10 @@ class DevServer {
72
78
  this.keyboardHandler.initialize();
73
79
  }
74
80
  reportMetroEvent(event) {
81
+ this.apiServer.send({
82
+ type: "metro_event",
83
+ event,
84
+ });
75
85
  switch (event.type) {
76
86
  case "client_log":
77
87
  this.eventsServer.broadcastEvent(event);
@@ -80,16 +90,7 @@ class DevServer {
80
90
  }
81
91
  onBundleBuilt(bundlePath) {
82
92
  // console.log("onBundleBuilt", bundlePath);
83
- this.messageServer.broadcast("reload");
84
- }
85
- onMessage(log) {
86
- this.apiServer.send(log);
87
- // console.log(log.msg, log.level);
88
- // this.terminalReporter.update({
89
- // type: "client_log",
90
- // level: "info",
91
- // data: [log.msg],
92
- // });
93
+ // this.messageServer.broadcast("reload");
93
94
  }
94
95
  onClientConnected(platform, clientId) {
95
96
  // this.messageServer.broadcast("reload", undefined, []);
@@ -124,12 +125,7 @@ class DevServer {
124
125
  watch: true,
125
126
  onBundleBuilt: this.onBundleBuilt.bind(this),
126
127
  });
127
- const inspector = new inspector_1.Inspector({
128
- projectRoot: this.config.projectRoot,
129
- serverBaseUrl: this.getDevServerUrl(),
130
- // eventReporter: this.terminalReporter,
131
- });
132
- const websockets = inspector.createWebSocketServers();
128
+ const websockets = this.inspector.createWebSocketServers();
133
129
  // const devMiddleware = createDevMiddleware({
134
130
  // projectRoot: this.config.projectRoot,
135
131
  // serverBaseUrl: `http://${this.config.host}:${this.config.port}`,
@@ -195,36 +191,13 @@ class DevServer {
195
191
  watchFolders: [this.config.projectRoot],
196
192
  }));
197
193
  this.instance.use(serverInstance.metroServer.processRequest);
198
- this.instance.use(inspector.handleHttpRequest);
194
+ this.instance.use((req, resp, next) => this.inspector.handleHttpRequest(req, resp, next));
199
195
  }
200
196
  onSymbolicate(request, reply) {
201
197
  const result = JSON.parse(request.rawBody);
202
198
  const { codeFrame, stack } = result;
203
199
  this.instance.log.info("onSymbolicate", { codeFrame, stack });
204
200
  }
205
- customInspectorMessageHandler(connection) {
206
- this.instance.log.info("Creating custom inspector message handler", {
207
- connection,
208
- });
209
- return {
210
- handleDeviceMessage: (message) => this.onDeviceMessage(connection, message),
211
- handleDebuggerMessage: (message) => this.onDebuggerMessage(connection, message),
212
- };
213
- }
214
- onDeviceMessage(connection, message) {
215
- this.instance.log.info("Device -> Debugger", {
216
- message,
217
- });
218
- connection.debugger.sendMessage(message);
219
- return true;
220
- }
221
- onDebuggerMessage(connection, message) {
222
- this.instance.log.info("Debugger -> Device", {
223
- message,
224
- });
225
- connection.device.sendMessage(message);
226
- return true;
227
- }
228
201
  registerHooks() {
229
202
  this.instance.log.info("Registering hooks");
230
203
  this.instance = this.instance.addHook("onSend", async (request, reply, payload) => {
@@ -41,6 +41,7 @@ class Inspector {
41
41
  }
42
42
  handleHttpRequest(req, res, next) {
43
43
  const pathname = new node_url_1.URL(req.url || "", "http://localhost").pathname;
44
+ console.log("handleHttpRequest", { pathname });
44
45
  if (pathname === JSON_LIST_PATH || pathname === JSON_LIST_PATH_2) {
45
46
  this.sendJsonResponse(res, this.getPageDescriptions());
46
47
  }
@@ -4,15 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.faviconPlugin = void 0;
7
+ const fastify_favicon_1 = __importDefault(require("fastify-favicon"));
7
8
  const fastify_plugin_1 = __importDefault(require("fastify-plugin"));
8
9
  const node_path_1 = __importDefault(require("node:path"));
9
10
  const node_url_1 = require("node:url");
10
11
  // @ts-ignore
11
12
  const dirname = node_path_1.default.dirname((0, node_url_1.fileURLToPath)(import.meta.url));
13
+ console.log("dirname", dirname);
12
14
  const pathToImgDir = node_path_1.default.join(dirname, "../img");
13
15
  exports.faviconPlugin = (0, fastify_plugin_1.default)(async (instance) => {
14
- console.log("pathToImgDir", pathToImgDir);
15
- // instance.register(fastifyFavicon, { path: pathToImgDir });
16
+ instance.register(fastify_favicon_1.default, { path: pathToImgDir });
16
17
  }, {
17
18
  name: "favicon-plugin",
18
19
  });
@@ -1,6 +1,11 @@
1
1
  import type { FastifyInstance } from "fastify";
2
+ import type { TerminalReportableEvent } from "metro/src/lib/TerminalReporter";
2
3
  import type WebSocket from "ws";
3
4
  import { WebSocketServer } from "../web-socket-server";
5
+ export type WebSocketApiEvent = {
6
+ type: "metro_event";
7
+ event: TerminalReportableEvent;
8
+ };
4
9
  /**
5
10
  * Class for creating a WebSocket server for API clients.
6
11
  * Useful to listening for compilation events and new logs.
@@ -22,7 +27,7 @@ export declare class WebSocketApiServer extends WebSocketServer {
22
27
  *
23
28
  * @param event Event string or object to send.
24
29
  */
25
- send(event: unknown): void;
30
+ send(event: unknown | WebSocketApiEvent): void;
26
31
  /**
27
32
  * Process new WebSocket connection from client application.
28
33
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teardown/cli",
3
- "version": "1.2.29",
3
+ "version": "1.2.31",
4
4
  "description": "Teardown CLI",
5
5
  "main": "dist/index.js",
6
6
  "bin": {