nx 22.1.0-canary.20251024-7712d2a → 22.1.0-canary.20251027-29467da

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.
Files changed (52) hide show
  1. package/package.json +11 -11
  2. package/src/core/graph/main.js +1 -1
  3. package/src/daemon/client/client.d.ts.map +1 -1
  4. package/src/daemon/client/client.js +18 -8
  5. package/src/daemon/client/daemon-socket-messenger.d.ts.map +1 -1
  6. package/src/daemon/client/daemon-socket-messenger.js +10 -2
  7. package/src/daemon/is-v8-serializer-enabled.d.ts +6 -0
  8. package/src/daemon/is-v8-serializer-enabled.d.ts.map +1 -0
  9. package/src/daemon/is-v8-serializer-enabled.js +10 -0
  10. package/src/daemon/server/file-watching/file-watcher-sockets.d.ts.map +1 -1
  11. package/src/daemon/server/file-watching/file-watcher-sockets.js +1 -1
  12. package/src/daemon/server/handle-context-file-data.js +1 -1
  13. package/src/daemon/server/handle-flush-sync-generator-changes-to-disk.js +1 -1
  14. package/src/daemon/server/handle-get-files-in-directory.js +1 -1
  15. package/src/daemon/server/handle-get-registered-sync-generators.js +1 -1
  16. package/src/daemon/server/handle-get-sync-generator-changes.js +1 -1
  17. package/src/daemon/server/handle-glob.js +2 -2
  18. package/src/daemon/server/handle-hash-tasks.d.ts +1 -1
  19. package/src/daemon/server/handle-hash-tasks.d.ts.map +1 -1
  20. package/src/daemon/server/handle-hash-tasks.js +1 -1
  21. package/src/daemon/server/handle-nx-workspace-files.js +1 -1
  22. package/src/daemon/server/handle-outputs-tracking.js +1 -1
  23. package/src/daemon/server/handle-task-history.d.ts +2 -2
  24. package/src/daemon/server/handle-task-history.js +2 -2
  25. package/src/daemon/server/handle-tasks-execution-hooks.d.ts +1 -1
  26. package/src/daemon/server/handle-tasks-execution-hooks.js +1 -1
  27. package/src/daemon/server/project-graph-listener-sockets.d.ts.map +1 -1
  28. package/src/daemon/server/project-graph-listener-sockets.js +3 -2
  29. package/src/daemon/server/server.d.ts +2 -2
  30. package/src/daemon/server/server.d.ts.map +1 -1
  31. package/src/daemon/server/server.js +49 -28
  32. package/src/daemon/server/shutdown-utils.d.ts.map +1 -1
  33. package/src/daemon/server/shutdown-utils.js +2 -1
  34. package/src/native/nx.wasm32-wasi.wasm +0 -0
  35. package/src/plugins/js/index.d.ts.map +1 -1
  36. package/src/plugins/js/index.js +34 -20
  37. package/src/plugins/js/lock-file/pnpm-parser.d.ts.map +1 -1
  38. package/src/plugins/js/lock-file/pnpm-parser.js +4 -2
  39. package/src/project-graph/plugins/isolation/messaging.d.ts.map +1 -1
  40. package/src/project-graph/plugins/isolation/messaging.js +2 -1
  41. package/src/project-graph/plugins/isolation/plugin-pool.js +19 -5
  42. package/src/project-graph/plugins/loaded-nx-plugin.d.ts.map +1 -1
  43. package/src/project-graph/plugins/loaded-nx-plugin.js +2 -0
  44. package/src/project-graph/plugins/resolve-plugin.d.ts.map +1 -1
  45. package/src/project-graph/plugins/resolve-plugin.js +4 -2
  46. package/src/project-graph/utils/project-configuration-utils.d.ts.map +1 -1
  47. package/src/project-graph/utils/project-configuration-utils.js +3 -0
  48. package/src/tasks-runner/pseudo-ipc.d.ts.map +1 -1
  49. package/src/tasks-runner/pseudo-ipc.js +4 -4
  50. package/src/utils/consume-messages-from-socket.d.ts +2 -0
  51. package/src/utils/consume-messages-from-socket.d.ts.map +1 -1
  52. package/src/utils/consume-messages-from-socket.js +27 -8
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/client/client.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@ const flush_sync_generator_changes_to_disk_1 = require("../message-types/flush-s
32
32
  const delayed_spinner_1 = require("../../utils/delayed-spinner");
33
33
  const run_tasks_execution_hooks_1 = require("../message-types/run-tasks-execution-hooks");
34
34
  const register_project_graph_listener_1 = require("../message-types/register-project-graph-listener");
35
+ const node_v8_1 = require("node:v8");
36
+ const consume_messages_from_socket_1 = require("../../utils/consume-messages-from-socket");
35
37
  const DAEMON_ENV_SETTINGS = {
36
38
  NX_PROJECT_GLOB_CACHE: 'false',
37
39
  NX_CACHE_PROJECTS_CONFIG: 'false',
@@ -149,7 +151,9 @@ class DaemonClient {
149
151
  return this.sendToDaemonViaQueue({
150
152
  type: 'HASH_TASKS',
151
153
  runnerOptions,
152
- env,
154
+ env: process.env.NX_USE_V8_SERIALIZER !== 'false'
155
+ ? structuredClone(process.env)
156
+ : env,
153
157
  tasks,
154
158
  taskGraph,
155
159
  });
@@ -170,7 +174,9 @@ class DaemonClient {
170
174
  await this.queue.sendToQueue(() => {
171
175
  messenger = new daemon_socket_messenger_1.DaemonSocketMessenger((0, net_1.connect)((0, socket_utils_1.getFullOsSocketPath)())).listen((message) => {
172
176
  try {
173
- const parsedMessage = JSON.parse(message);
177
+ const parsedMessage = (0, consume_messages_from_socket_1.isJsonMessage)(message)
178
+ ? JSON.parse(message)
179
+ : (0, node_v8_1.deserialize)(Buffer.from(message, 'binary'));
174
180
  callback(null, parsedMessage);
175
181
  }
176
182
  catch (e) {
@@ -190,7 +196,9 @@ class DaemonClient {
190
196
  await this.queue.sendToQueue(() => {
191
197
  messenger = new daemon_socket_messenger_1.DaemonSocketMessenger((0, net_1.connect)((0, socket_utils_1.getFullOsSocketPath)())).listen((message) => {
192
198
  try {
193
- const parsedMessage = JSON.parse(message);
199
+ const parsedMessage = (0, consume_messages_from_socket_1.isJsonMessage)(message)
200
+ ? JSON.parse(message)
201
+ : (0, node_v8_1.deserialize)(Buffer.from(message, 'binary'));
194
202
  callback(null, parsedMessage);
195
203
  }
196
204
  catch (e) {
@@ -464,10 +472,12 @@ class DaemonClient {
464
472
  }
465
473
  handleMessage(serializedResult) {
466
474
  try {
467
- perf_hooks_1.performance.mark('json-parse-start');
468
- const parsedResult = JSON.parse(serializedResult);
469
- perf_hooks_1.performance.mark('json-parse-end');
470
- perf_hooks_1.performance.measure('deserialize daemon response', 'json-parse-start', 'json-parse-end');
475
+ perf_hooks_1.performance.mark('result-parse-start');
476
+ const parsedResult = (0, consume_messages_from_socket_1.isJsonMessage)(serializedResult)
477
+ ? JSON.parse(serializedResult)
478
+ : (0, node_v8_1.deserialize)(Buffer.from(serializedResult, 'binary'));
479
+ perf_hooks_1.performance.mark('result-parse-end');
480
+ perf_hooks_1.performance.measure('deserialize daemon response', 'result-parse-start', 'result-parse-end');
471
481
  if (parsedResult.error) {
472
482
  if ('message' in parsedResult.error &&
473
483
  (parsedResult.error.message === 'NX_VERSION_CHANGED' ||
@@ -479,7 +489,7 @@ class DaemonClient {
479
489
  }
480
490
  }
481
491
  else {
482
- perf_hooks_1.performance.measure('total for sendMessageToDaemon()', 'sendMessageToDaemon-start', 'json-parse-end');
492
+ perf_hooks_1.performance.measure('total for sendMessageToDaemon()', 'sendMessageToDaemon-start', 'result-parse-end');
483
493
  return this.currentResolve(parsedResult);
484
494
  }
485
495
  }
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-socket-messenger.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/client/daemon-socket-messenger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAI7B,MAAM,WAAW,OAAQ,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE5B,WAAW,CAAC,eAAe,EAAE,OAAO;IAM1C,MAAM,CACJ,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EACjC,OAAO,GAAE,MAAM,IAAe,EAC9B,OAAO,GAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAkB;IAe7C,KAAK;CAGN"}
1
+ {"version":3,"file":"daemon-socket-messenger.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/client/daemon-socket-messenger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAQ7B,MAAM,WAAW,OAAQ,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE5B,WAAW,CAAC,eAAe,EAAE,OAAO;IAW1C,MAAM,CACJ,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EACjC,OAAO,GAAE,MAAM,IAAe,EAC9B,OAAO,GAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAkB;IAe7C,KAAK;CAGN"}
@@ -1,15 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DaemonSocketMessenger = void 0;
4
+ const v8_1 = require("v8");
4
5
  const consume_messages_from_socket_1 = require("../../utils/consume-messages-from-socket");
6
+ const is_v8_serializer_enabled_1 = require("../is-v8-serializer-enabled");
5
7
  class DaemonSocketMessenger {
6
8
  constructor(socket) {
7
9
  this.socket = socket;
8
10
  }
9
11
  async sendMessage(messageToDaemon) {
10
- this.socket.write(JSON.stringify(messageToDaemon));
12
+ if ((0, is_v8_serializer_enabled_1.isV8SerializerEnabled)()) {
13
+ const serialized = (0, v8_1.serialize)(messageToDaemon);
14
+ this.socket.write(serialized.toString('binary'));
15
+ }
16
+ else {
17
+ this.socket.write(JSON.stringify(messageToDaemon));
18
+ }
11
19
  // send EOT to indicate that the message has been fully written
12
- this.socket.write(String.fromCodePoint(4));
20
+ this.socket.write(consume_messages_from_socket_1.MESSAGE_END_SEQ);
13
21
  }
14
22
  listen(onData, onClose = () => { }, onError = (err) => { }) {
15
23
  this.socket.on('data', (0, consume_messages_from_socket_1.consumeMessagesFromSocket)(async (message) => {
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Check if v8 serializer is enabled for daemon communication.
3
+ * V8 serializer is enabled by default unless explicitly disabled.
4
+ */
5
+ export declare function isV8SerializerEnabled(): boolean;
6
+ //# sourceMappingURL=is-v8-serializer-enabled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-v8-serializer-enabled.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/daemon/is-v8-serializer-enabled.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isV8SerializerEnabled = isV8SerializerEnabled;
4
+ /**
5
+ * Check if v8 serializer is enabled for daemon communication.
6
+ * V8 serializer is enabled by default unless explicitly disabled.
7
+ */
8
+ function isV8SerializerEnabled() {
9
+ return process.env.NX_USE_V8_SERIALIZER !== 'false';
10
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"file-watcher-sockets.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/daemon/server/file-watching/file-watcher-sockets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAU7B,eAAO,IAAI,4BAA4B,EAAE;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAChC,2BAA2B,EAAE,OAAO,CAAC;QACrC,wBAAwB,EAAE,OAAO,CAAC;KACnC,CAAC;CACH,EAAO,CAAC;AAET,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,MAAM,QAI/D;AAED,wBAAgB,+BAA+B,YAE9C;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,EAC7B,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,QAwEvB"}
1
+ {"version":3,"file":"file-watcher-sockets.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/daemon/server/file-watching/file-watcher-sockets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAU7B,eAAO,IAAI,4BAA4B,EAAE;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAChC,2BAA2B,EAAE,OAAO,CAAC;QACrC,wBAAwB,EAAE,OAAO,CAAC;KACnC,CAAC;CACH,EAAO,CAAC;AAET,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,MAAM,QAI/D;AAED,wBAAgB,+BAA+B,YAE9C;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,EAC7B,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,QA4EvB"}
@@ -59,7 +59,7 @@ function notifyFileWatcherSockets(createdFiles, updatedFiles, deletedFiles) {
59
59
  changedProjects,
60
60
  changedFiles,
61
61
  }),
62
- }));
62
+ }), 'json');
63
63
  }
64
64
  }));
65
65
  });
@@ -6,7 +6,7 @@ const workspace_root_1 = require("../../utils/workspace-root");
6
6
  async function handleContextFileData() {
7
7
  const files = await (0, workspace_context_1.getAllFileDataInContext)(workspace_root_1.workspaceRoot);
8
8
  return {
9
- response: JSON.stringify(files),
9
+ response: files,
10
10
  description: 'handleContextFileData',
11
11
  };
12
12
  }
@@ -5,7 +5,7 @@ const sync_generators_1 = require("./sync-generators");
5
5
  async function handleFlushSyncGeneratorChangesToDisk(generators) {
6
6
  const result = await (0, sync_generators_1.flushSyncGeneratorChangesToDisk)(generators);
7
7
  return {
8
- response: JSON.stringify(result),
8
+ response: result,
9
9
  description: 'handleFlushSyncGeneratorChangesToDisk',
10
10
  };
11
11
  }
@@ -6,7 +6,7 @@ const workspace_root_1 = require("../../utils/workspace-root");
6
6
  async function handleGetFilesInDirectory(dir) {
7
7
  const files = await (0, workspace_context_1.getFilesInDirectoryUsingContext)(workspace_root_1.workspaceRoot, dir);
8
8
  return {
9
- response: JSON.stringify(files),
9
+ response: files,
10
10
  description: 'handleNxWorkspaceFiles',
11
11
  };
12
12
  }
@@ -5,7 +5,7 @@ const sync_generators_1 = require("./sync-generators");
5
5
  async function handleGetRegisteredSyncGenerators() {
6
6
  const syncGenerators = await (0, sync_generators_1.getCachedRegisteredSyncGenerators)();
7
7
  return {
8
- response: JSON.stringify(syncGenerators),
8
+ response: syncGenerators,
9
9
  description: 'handleGetSyncGeneratorChanges',
10
10
  };
11
11
  }
@@ -14,7 +14,7 @@ async function handleGetSyncGeneratorChanges(generators) {
14
14
  outOfSyncDetails: change.outOfSyncDetails,
15
15
  });
16
16
  return {
17
- response: JSON.stringify(result),
17
+ response: result,
18
18
  description: 'handleGetSyncGeneratorChanges',
19
19
  };
20
20
  }
@@ -7,14 +7,14 @@ const workspace_context_1 = require("../../utils/workspace-context");
7
7
  async function handleGlob(globs, exclude) {
8
8
  const files = await (0, workspace_context_1.globWithWorkspaceContext)(workspace_root_1.workspaceRoot, globs, exclude);
9
9
  return {
10
- response: JSON.stringify(files),
10
+ response: files,
11
11
  description: 'handleGlob',
12
12
  };
13
13
  }
14
14
  async function handleMultiGlob(globs, exclude) {
15
15
  const files = await (0, workspace_context_1.multiGlobWithWorkspaceContext)(workspace_root_1.workspaceRoot, globs, exclude);
16
16
  return {
17
- response: JSON.stringify(files),
17
+ response: files,
18
18
  description: 'handleMultiGlob',
19
19
  };
20
20
  }
@@ -5,7 +5,7 @@ export declare function handleHashTasks(payload: {
5
5
  tasks: Task[];
6
6
  taskGraph: TaskGraph;
7
7
  }): Promise<{
8
- response: string;
8
+ response: import("../../hasher/task-hasher").Hash[];
9
9
  description: string;
10
10
  }>;
11
11
  //# sourceMappingURL=handle-hash-tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handle-hash-tasks.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/handle-hash-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAa1D,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,aAAa,EAAE,GAAG,CAAC;IACnB,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;CACtB;;;GAoCA"}
1
+ {"version":3,"file":"handle-hash-tasks.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/handle-hash-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAa1D,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,aAAa,EAAE,GAAG,CAAC;IACnB,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;CACtB;;;GAsCA"}
@@ -27,7 +27,7 @@ async function handleHashTasks(payload) {
27
27
  storedProjectGraph = projectGraph;
28
28
  storedHasher = new task_hasher_1.InProcessTaskHasher(projectGraph, nxJson, rustReferences, payload.runnerOptions);
29
29
  }
30
- const response = JSON.stringify(await storedHasher.hashTasks(payload.tasks, payload.taskGraph, payload.env));
30
+ const response = await storedHasher.hashTasks(payload.tasks, payload.taskGraph, payload.env);
31
31
  return {
32
32
  response,
33
33
  description: 'handleHashTasks',
@@ -6,7 +6,7 @@ const workspace_root_1 = require("../../utils/workspace-root");
6
6
  async function handleNxWorkspaceFiles(projectRootMap) {
7
7
  const files = await (0, workspace_context_1.getNxWorkspaceFilesFromContext)(workspace_root_1.workspaceRoot, projectRootMap);
8
8
  return {
9
- response: JSON.stringify(files),
9
+ response: files,
10
10
  description: 'handleNxWorkspaceFiles',
11
11
  };
12
12
  }
@@ -22,7 +22,7 @@ async function handleOutputsHashesMatch(payload) {
22
22
  try {
23
23
  const res = await (0, outputs_tracking_1.outputsHashesMatch)(payload.data.outputs, payload.data.hash);
24
24
  return {
25
- response: JSON.stringify(res),
25
+ response: res,
26
26
  description: 'outputsHashesMatch',
27
27
  };
28
28
  }
@@ -4,11 +4,11 @@ export declare function handleRecordTaskRuns(taskRuns: TaskRun[]): Promise<{
4
4
  description: string;
5
5
  }>;
6
6
  export declare function handleGetFlakyTasks(hashes: string[]): Promise<{
7
- response: string;
7
+ response: string[];
8
8
  description: string;
9
9
  }>;
10
10
  export declare function handleGetEstimatedTaskTimings(targets: TaskTarget[]): Promise<{
11
- response: string;
11
+ response: Record<string, number>;
12
12
  description: string;
13
13
  }>;
14
14
  //# sourceMappingURL=handle-task-history.d.ts.map
@@ -16,7 +16,7 @@ async function handleGetFlakyTasks(hashes) {
16
16
  const taskHistory = (0, task_history_1.getTaskHistory)();
17
17
  const history = await taskHistory.getFlakyTasks(hashes);
18
18
  return {
19
- response: JSON.stringify(history),
19
+ response: history,
20
20
  description: 'handleGetFlakyTasks',
21
21
  };
22
22
  }
@@ -24,7 +24,7 @@ async function handleGetEstimatedTaskTimings(targets) {
24
24
  const taskHistory = (0, task_history_1.getTaskHistory)();
25
25
  const history = await taskHistory.getEstimatedTaskTimings(targets);
26
26
  return {
27
- response: JSON.stringify(history),
27
+ response: history,
28
28
  description: 'handleGetEstimatedTaskTimings',
29
29
  };
30
30
  }
@@ -1,6 +1,6 @@
1
1
  import type { PostTasksExecutionContext, PreTasksExecutionContext } from '../../project-graph/plugins/public-api';
2
2
  export declare function handleRunPreTasksExecution(context: PreTasksExecutionContext): Promise<{
3
- response: string;
3
+ response: NodeJS.ProcessEnv[];
4
4
  description: string;
5
5
  error?: undefined;
6
6
  } | {
@@ -7,7 +7,7 @@ async function handleRunPreTasksExecution(context) {
7
7
  try {
8
8
  const envs = await (0, tasks_execution_hooks_1.runPreTasksExecution)(context);
9
9
  return {
10
- response: JSON.stringify(envs),
10
+ response: envs,
11
11
  description: 'handleRunPreTasksExecution',
12
12
  };
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-graph-listener-sockets.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/project-graph-listener-sockets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAGhG,eAAO,IAAI,qCAAqC,EAAE,MAAM,EAAO,CAAC;AAEhE,wBAAgB,0CAA0C,CAAC,MAAM,EAAE,MAAM,QAGxE;AAED,wBAAgB,wCAAwC,YAEvD;AAED,wBAAsB,iCAAiC,CACrD,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,uBAAuB,iBAgBpC"}
1
+ {"version":3,"file":"project-graph-listener-sockets.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/project-graph-listener-sockets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAIhG,eAAO,IAAI,qCAAqC,EAAE,MAAM,EAAO,CAAC;AAEhE,wBAAgB,0CAA0C,CAAC,MAAM,EAAE,MAAM,QAGxE;AAED,wBAAgB,wCAAwC,YAEvD;AAED,wBAAsB,iCAAiC,CACrD,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,uBAAuB,iBAoBpC"}
@@ -5,6 +5,7 @@ exports.removeRegisteredProjectGraphListenerSocket = removeRegisteredProjectGrap
5
5
  exports.hasRegisteredProjectGraphListenerSockets = hasRegisteredProjectGraphListenerSockets;
6
6
  exports.notifyProjectGraphListenerSockets = notifyProjectGraphListenerSockets;
7
7
  const server_1 = require("./server");
8
+ const is_v8_serializer_enabled_1 = require("../is-v8-serializer-enabled");
8
9
  exports.registeredProjectGraphListenerSockets = [];
9
10
  function removeRegisteredProjectGraphListenerSocket(socket) {
10
11
  exports.registeredProjectGraphListenerSockets =
@@ -19,6 +20,6 @@ async function notifyProjectGraphListenerSockets(projectGraph, sourceMaps) {
19
20
  }
20
21
  await Promise.all(exports.registeredProjectGraphListenerSockets.map((socket) => (0, server_1.handleResult)(socket, 'PROJECT_GRAPH_UPDATED', () => Promise.resolve({
21
22
  description: 'Project graph updated',
22
- response: JSON.stringify({ projectGraph, sourceMaps }),
23
- }))));
23
+ response: { projectGraph, sourceMaps },
24
+ }), (0, is_v8_serializer_enabled_1.isV8SerializerEnabled)() ? 'v8' : 'json')));
24
25
  }
@@ -2,9 +2,9 @@ import { Server, Socket } from 'net';
2
2
  export type HandlerResult = {
3
3
  description: string;
4
4
  error?: any;
5
- response?: string;
5
+ response?: string | object | boolean;
6
6
  };
7
7
  export declare const openSockets: Set<Socket>;
8
- export declare function handleResult(socket: Socket, type: string, hrFn: () => Promise<HandlerResult>): Promise<void>;
8
+ export declare function handleResult(socket: Socket, type: string, hrFn: () => Promise<HandlerResult>, mode: 'json' | 'v8'): Promise<void>;
9
9
  export declare function startServer(): Promise<Server>;
10
10
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAkJnD,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,GAAG,CAAC,MAAM,CAAa,CAAC;AAyLlD,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,iBAqBnC;AAoMD,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAgEnD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAsJnD,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACtC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,GAAG,CAAC,MAAM,CAAa,CAAC;AA2QlD,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAClC,IAAI,EAAE,MAAM,GAAG,IAAI,iBAyBpB;AAoMD,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAgEnD"}
@@ -54,6 +54,7 @@ const handle_flush_sync_generator_changes_to_disk_1 = require("./handle-flush-sy
54
54
  const run_tasks_execution_hooks_1 = require("../message-types/run-tasks-execution-hooks");
55
55
  const handle_tasks_execution_hooks_1 = require("./handle-tasks-execution-hooks");
56
56
  const register_project_graph_listener_1 = require("../message-types/register-project-graph-listener");
57
+ const v8_1 = require("v8");
57
58
  let performanceObserver;
58
59
  let workspaceWatcherError;
59
60
  let outputsWatcherError;
@@ -99,32 +100,41 @@ async function handleMessage(socket, data) {
99
100
  (0, shutdown_utils_1.resetInactivityTimeout)(handleInactivityTimeout);
100
101
  const unparsedPayload = data;
101
102
  let payload;
103
+ let mode = 'json';
102
104
  try {
103
- payload = JSON.parse(unparsedPayload);
105
+ // JSON Message
106
+ if ((0, consume_messages_from_socket_1.isJsonMessage)(unparsedPayload)) {
107
+ payload = JSON.parse(unparsedPayload);
108
+ }
109
+ else {
110
+ // V8 Serialized Message
111
+ payload = (0, v8_1.deserialize)(Buffer.from(unparsedPayload, 'binary'));
112
+ mode = 'v8';
113
+ }
104
114
  }
105
115
  catch (e) {
106
116
  await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, `Invalid payload from the client`, new Error(`Unsupported payload sent to daemon server: ${unparsedPayload}`));
107
117
  }
108
118
  if (payload.type === 'PING') {
109
- await handleResult(socket, 'PING', () => Promise.resolve({ response: JSON.stringify(true), description: 'ping' }));
119
+ await handleResult(socket, 'PING', () => Promise.resolve({ response: true, description: 'ping' }), mode);
110
120
  }
111
121
  else if (payload.type === 'REQUEST_PROJECT_GRAPH') {
112
- await handleResult(socket, 'REQUEST_PROJECT_GRAPH', () => (0, handle_request_project_graph_1.handleRequestProjectGraph)());
122
+ await handleResult(socket, 'REQUEST_PROJECT_GRAPH', () => (0, handle_request_project_graph_1.handleRequestProjectGraph)(), mode);
113
123
  }
114
124
  else if (payload.type === 'HASH_TASKS') {
115
- await handleResult(socket, 'HASH_TASKS', () => (0, handle_hash_tasks_1.handleHashTasks)(payload));
125
+ await handleResult(socket, 'HASH_TASKS', () => (0, handle_hash_tasks_1.handleHashTasks)(payload), mode);
116
126
  }
117
127
  else if (payload.type === 'PROCESS_IN_BACKGROUND') {
118
- await handleResult(socket, 'PROCESS_IN_BACKGROUND', () => (0, handle_process_in_background_1.handleProcessInBackground)(payload));
128
+ await handleResult(socket, 'PROCESS_IN_BACKGROUND', () => (0, handle_process_in_background_1.handleProcessInBackground)(payload), mode);
119
129
  }
120
130
  else if (payload.type === 'RECORD_OUTPUTS_HASH') {
121
- await handleResult(socket, 'RECORD_OUTPUTS_HASH', () => (0, handle_outputs_tracking_1.handleRecordOutputsHash)(payload));
131
+ await handleResult(socket, 'RECORD_OUTPUTS_HASH', () => (0, handle_outputs_tracking_1.handleRecordOutputsHash)(payload), mode);
122
132
  }
123
133
  else if (payload.type === 'OUTPUTS_HASHES_MATCH') {
124
- await handleResult(socket, 'OUTPUTS_HASHES_MATCH', () => (0, handle_outputs_tracking_1.handleOutputsHashesMatch)(payload));
134
+ await handleResult(socket, 'OUTPUTS_HASHES_MATCH', () => (0, handle_outputs_tracking_1.handleOutputsHashesMatch)(payload), mode);
125
135
  }
126
136
  else if (payload.type === 'REQUEST_SHUTDOWN') {
127
- await handleResult(socket, 'REQUEST_SHUTDOWN', () => (0, handle_request_shutdown_1.handleRequestShutdown)(server, numberOfOpenConnections));
137
+ await handleResult(socket, 'REQUEST_SHUTDOWN', () => (0, handle_request_shutdown_1.handleRequestShutdown)(server, numberOfOpenConnections), mode);
128
138
  }
129
139
  else if (payload.type === 'REGISTER_FILE_WATCHER') {
130
140
  file_watcher_sockets_1.registeredFileWatcherSockets.push({ socket, config: payload.config });
@@ -133,61 +143,61 @@ async function handleMessage(socket, data) {
133
143
  project_graph_listener_sockets_1.registeredProjectGraphListenerSockets.push(socket);
134
144
  }
135
145
  else if ((0, glob_1.isHandleGlobMessage)(payload)) {
136
- await handleResult(socket, glob_1.GLOB, () => (0, handle_glob_1.handleGlob)(payload.globs, payload.exclude));
146
+ await handleResult(socket, glob_1.GLOB, () => (0, handle_glob_1.handleGlob)(payload.globs, payload.exclude), mode);
137
147
  }
138
148
  else if ((0, glob_1.isHandleMultiGlobMessage)(payload)) {
139
- await handleResult(socket, glob_1.MULTI_GLOB, () => (0, handle_glob_1.handleMultiGlob)(payload.globs, payload.exclude));
149
+ await handleResult(socket, glob_1.MULTI_GLOB, () => (0, handle_glob_1.handleMultiGlob)(payload.globs, payload.exclude), mode);
140
150
  }
141
151
  else if ((0, get_nx_workspace_files_1.isHandleNxWorkspaceFilesMessage)(payload)) {
142
- await handleResult(socket, get_nx_workspace_files_1.GET_NX_WORKSPACE_FILES, () => (0, handle_nx_workspace_files_1.handleNxWorkspaceFiles)(payload.projectRootMap));
152
+ await handleResult(socket, get_nx_workspace_files_1.GET_NX_WORKSPACE_FILES, () => (0, handle_nx_workspace_files_1.handleNxWorkspaceFiles)(payload.projectRootMap), mode);
143
153
  }
144
154
  else if ((0, get_files_in_directory_1.isHandleGetFilesInDirectoryMessage)(payload)) {
145
- await handleResult(socket, get_files_in_directory_1.GET_FILES_IN_DIRECTORY, () => (0, handle_get_files_in_directory_1.handleGetFilesInDirectory)(payload.dir));
155
+ await handleResult(socket, get_files_in_directory_1.GET_FILES_IN_DIRECTORY, () => (0, handle_get_files_in_directory_1.handleGetFilesInDirectory)(payload.dir), mode);
146
156
  }
147
157
  else if ((0, get_context_file_data_1.isHandleContextFileDataMessage)(payload)) {
148
- await handleResult(socket, get_context_file_data_1.GET_CONTEXT_FILE_DATA, () => (0, handle_context_file_data_1.handleContextFileData)());
158
+ await handleResult(socket, get_context_file_data_1.GET_CONTEXT_FILE_DATA, () => (0, handle_context_file_data_1.handleContextFileData)(), mode);
149
159
  }
150
160
  else if ((0, hash_glob_1.isHandleHashGlobMessage)(payload)) {
151
- await handleResult(socket, hash_glob_1.HASH_GLOB, () => (0, handle_hash_glob_1.handleHashGlob)(payload.globs, payload.exclude));
161
+ await handleResult(socket, hash_glob_1.HASH_GLOB, () => (0, handle_hash_glob_1.handleHashGlob)(payload.globs, payload.exclude), mode);
152
162
  }
153
163
  else if ((0, hash_glob_1.isHandleHashMultiGlobMessage)(payload)) {
154
- await handleResult(socket, hash_glob_1.HASH_GLOB, () => (0, handle_hash_glob_1.handleHashMultiGlob)(payload.globGroups));
164
+ await handleResult(socket, hash_glob_1.HASH_GLOB, () => (0, handle_hash_glob_1.handleHashMultiGlob)(payload.globGroups), mode);
155
165
  }
156
166
  else if ((0, task_history_1.isHandleGetFlakyTasksMessage)(payload)) {
157
- await handleResult(socket, task_history_1.GET_FLAKY_TASKS, () => (0, handle_task_history_1.handleGetFlakyTasks)(payload.hashes));
167
+ await handleResult(socket, task_history_1.GET_FLAKY_TASKS, () => (0, handle_task_history_1.handleGetFlakyTasks)(payload.hashes), mode);
158
168
  }
159
169
  else if ((0, task_history_1.isHandleGetEstimatedTaskTimings)(payload)) {
160
- await handleResult(socket, task_history_1.GET_ESTIMATED_TASK_TIMINGS, () => (0, handle_task_history_1.handleGetEstimatedTaskTimings)(payload.targets));
170
+ await handleResult(socket, task_history_1.GET_ESTIMATED_TASK_TIMINGS, () => (0, handle_task_history_1.handleGetEstimatedTaskTimings)(payload.targets), mode);
161
171
  }
162
172
  else if ((0, task_history_1.isHandleWriteTaskRunsToHistoryMessage)(payload)) {
163
- await handleResult(socket, task_history_1.RECORD_TASK_RUNS, () => (0, handle_task_history_1.handleRecordTaskRuns)(payload.taskRuns));
173
+ await handleResult(socket, task_history_1.RECORD_TASK_RUNS, () => (0, handle_task_history_1.handleRecordTaskRuns)(payload.taskRuns), mode);
164
174
  }
165
175
  else if ((0, force_shutdown_1.isHandleForceShutdownMessage)(payload)) {
166
- await handleResult(socket, 'FORCE_SHUTDOWN', () => (0, handle_force_shutdown_1.handleForceShutdown)(server));
176
+ await handleResult(socket, 'FORCE_SHUTDOWN', () => (0, handle_force_shutdown_1.handleForceShutdown)(server), mode);
167
177
  }
168
178
  else if ((0, get_sync_generator_changes_1.isHandleGetSyncGeneratorChangesMessage)(payload)) {
169
- await handleResult(socket, get_sync_generator_changes_1.GET_SYNC_GENERATOR_CHANGES, () => (0, handle_get_sync_generator_changes_1.handleGetSyncGeneratorChanges)(payload.generators));
179
+ await handleResult(socket, get_sync_generator_changes_1.GET_SYNC_GENERATOR_CHANGES, () => (0, handle_get_sync_generator_changes_1.handleGetSyncGeneratorChanges)(payload.generators), mode);
170
180
  }
171
181
  else if ((0, flush_sync_generator_changes_to_disk_1.isHandleFlushSyncGeneratorChangesToDiskMessage)(payload)) {
172
- await handleResult(socket, flush_sync_generator_changes_to_disk_1.FLUSH_SYNC_GENERATOR_CHANGES_TO_DISK, () => (0, handle_flush_sync_generator_changes_to_disk_1.handleFlushSyncGeneratorChangesToDisk)(payload.generators));
182
+ await handleResult(socket, flush_sync_generator_changes_to_disk_1.FLUSH_SYNC_GENERATOR_CHANGES_TO_DISK, () => (0, handle_flush_sync_generator_changes_to_disk_1.handleFlushSyncGeneratorChangesToDisk)(payload.generators), mode);
173
183
  }
174
184
  else if ((0, get_registered_sync_generators_1.isHandleGetRegisteredSyncGeneratorsMessage)(payload)) {
175
- await handleResult(socket, get_registered_sync_generators_1.GET_REGISTERED_SYNC_GENERATORS, () => (0, handle_get_registered_sync_generators_1.handleGetRegisteredSyncGenerators)());
185
+ await handleResult(socket, get_registered_sync_generators_1.GET_REGISTERED_SYNC_GENERATORS, () => (0, handle_get_registered_sync_generators_1.handleGetRegisteredSyncGenerators)(), mode);
176
186
  }
177
187
  else if ((0, update_workspace_context_1.isHandleUpdateWorkspaceContextMessage)(payload)) {
178
- await handleResult(socket, update_workspace_context_1.UPDATE_WORKSPACE_CONTEXT, () => (0, handle_update_workspace_context_1.handleUpdateWorkspaceContext)(payload.createdFiles, payload.updatedFiles, payload.deletedFiles));
188
+ await handleResult(socket, update_workspace_context_1.UPDATE_WORKSPACE_CONTEXT, () => (0, handle_update_workspace_context_1.handleUpdateWorkspaceContext)(payload.createdFiles, payload.updatedFiles, payload.deletedFiles), mode);
179
189
  }
180
190
  else if ((0, run_tasks_execution_hooks_1.isHandlePreTasksExecutionMessage)(payload)) {
181
- await handleResult(socket, run_tasks_execution_hooks_1.PRE_TASKS_EXECUTION, () => (0, handle_tasks_execution_hooks_1.handleRunPreTasksExecution)(payload.context));
191
+ await handleResult(socket, run_tasks_execution_hooks_1.PRE_TASKS_EXECUTION, () => (0, handle_tasks_execution_hooks_1.handleRunPreTasksExecution)(payload.context), mode);
182
192
  }
183
193
  else if ((0, run_tasks_execution_hooks_1.isHandlePostTasksExecutionMessage)(payload)) {
184
- await handleResult(socket, run_tasks_execution_hooks_1.POST_TASKS_EXECUTION, () => (0, handle_tasks_execution_hooks_1.handleRunPostTasksExecution)(payload.context));
194
+ await handleResult(socket, run_tasks_execution_hooks_1.POST_TASKS_EXECUTION, () => (0, handle_tasks_execution_hooks_1.handleRunPostTasksExecution)(payload.context), mode);
185
195
  }
186
196
  else {
187
197
  await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, `Invalid payload from the client`, new Error(`Unsupported payload sent to daemon server: ${unparsedPayload}`));
188
198
  }
189
199
  }
190
- async function handleResult(socket, type, hrFn) {
200
+ async function handleResult(socket, type, hrFn, mode) {
191
201
  let hr;
192
202
  const startMark = new Date();
193
203
  try {
@@ -201,10 +211,13 @@ async function handleResult(socket, type, hrFn) {
201
211
  await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, hr.description, hr.error);
202
212
  }
203
213
  else {
204
- await (0, shutdown_utils_1.respondToClient)(socket, hr.response, hr.description);
214
+ const response = typeof hr.response === 'string'
215
+ ? hr.response
216
+ : serializeUnserializedResult(hr.response, mode);
217
+ await (0, shutdown_utils_1.respondToClient)(socket, response, hr.description);
205
218
  }
206
219
  const endMark = new Date();
207
- logger_1.serverLogger.log(`Handled ${type}. Handling time: ${doneHandlingMark.getTime() - startMark.getTime()}. Response time: ${endMark.getTime() - doneHandlingMark.getTime()}.`);
220
+ logger_1.serverLogger.log(`Handled ${mode} message ${type}. Handling time: ${doneHandlingMark.getTime() - startMark.getTime()}. Response time: ${endMark.getTime() - doneHandlingMark.getTime()}.`);
208
221
  }
209
222
  function handleInactivityTimeout() {
210
223
  if ((0, file_watcher_sockets_1.hasRegisteredFileWatcherSockets)() ||
@@ -415,3 +428,11 @@ async function startServer() {
415
428
  }
416
429
  });
417
430
  }
431
+ function serializeUnserializedResult(response, mode) {
432
+ if (mode === 'json') {
433
+ return JSON.stringify(response);
434
+ }
435
+ else {
436
+ return (0, v8_1.serialize)(response).toString('binary');
437
+ }
438
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"shutdown-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/shutdown-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAI1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,eAAO,MAAM,4BAA4B,EAAG,QAAiB,CAAC;AAI9D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,QAErD;AAED,wBAAgB,kBAAkB,YAEjC;AAID,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,QAE3D;AAED,wBAAgB,wBAAwB,YAEvC;AAED,UAAU,oCAAoC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,wBAAsB,8BAA8B,CAAC,EACnD,MAAM,EACN,MAAM,EACN,OAAO,GACR,EAAE,oCAAoC,iBAmCtC;AAID,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAK3D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,oBAcpB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,iBAsBb"}
1
+ {"version":3,"file":"shutdown-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/shutdown-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAI1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAS5C,eAAO,MAAM,4BAA4B,EAAG,QAAiB,CAAC;AAI9D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,QAErD;AAED,wBAAgB,kBAAkB,YAEjC;AAID,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,QAE3D;AAED,wBAAgB,wBAAwB,YAEvC;AAED,UAAU,oCAAoC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,wBAAsB,8BAA8B,CAAC,EACnD,MAAM,EACN,MAAM,EACN,OAAO,GACR,EAAE,oCAAoC,iBAmCtC;AAID,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAK3D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,oBAcpB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,iBAsBb"}
@@ -16,6 +16,7 @@ const cache_1 = require("../cache");
16
16
  const error_types_1 = require("../../project-graph/error-types");
17
17
  const db_connection_1 = require("../../utils/db-connection");
18
18
  const get_plugins_1 = require("../../project-graph/plugins/get-plugins");
19
+ const consume_messages_from_socket_1 = require("../../utils/consume-messages-from-socket");
19
20
  exports.SERVER_INACTIVITY_TIMEOUT_MS = 10800000; // 10800000 ms = 3 hours
20
21
  let watcherInstance;
21
22
  function storeWatcherInstance(instance) {
@@ -70,7 +71,7 @@ function respondToClient(socket, response, description) {
70
71
  if (description) {
71
72
  logger_1.serverLogger.requestLog(`Responding to the client.`, description);
72
73
  }
73
- socket.write(`${response}${String.fromCodePoint(4)}`, (err) => {
74
+ socket.write(response + consume_messages_from_socket_1.MESSAGE_END_SEQ, (err) => {
74
75
  if (err) {
75
76
  console.error(err);
76
77
  }
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/plugins/js/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAIlB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAkBrC,eAAO,MAAM,IAAI,oCAAoC,CAAC;AAStD,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC;AA8CF,eAAO,MAAM,kBAAkB,EAAE,kBAkDhC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/plugins/js/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAIlB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAkBrC,eAAO,MAAM,IAAI,oCAAoC,CAAC;AAKtD,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC;AAkDF,eAAO,MAAM,kBAAkB,EAAE,kBAgDhC,CAAC"}