@nrwl/workspace 12.10.0-beta.3 → 12.10.0
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/package.json +6 -5
- package/src/command-line/nx-commands.js +4 -4
- package/src/command-line/nx-commands.js.map +1 -1
- package/src/core/dep-graph/index.html +2 -1
- package/src/core/dep-graph/main.es5.js +1 -1
- package/src/core/dep-graph/main.esm.js +1 -1
- package/src/core/hasher/file-hasher.d.ts +12 -8
- package/src/core/hasher/file-hasher.js +18 -11
- package/src/core/hasher/file-hasher.js.map +1 -1
- package/src/core/hasher/git-hasher.d.ts +1 -0
- package/src/core/hasher/git-hasher.js +2 -1
- package/src/core/hasher/git-hasher.js.map +1 -1
- package/src/core/project-graph/daemon/{server.d.ts → client/client.d.ts} +6 -9
- package/src/core/project-graph/daemon/client/client.js +181 -0
- package/src/core/project-graph/daemon/client/client.js.map +1 -0
- package/src/core/project-graph/daemon/server/server.d.ts +8 -0
- package/src/core/project-graph/daemon/server/server.js +284 -0
- package/src/core/project-graph/daemon/server/server.js.map +1 -0
- package/src/core/project-graph/daemon/{exec → server}/start.d.ts +0 -0
- package/src/core/project-graph/daemon/{exec → server}/start.js +1 -1
- package/src/core/project-graph/daemon/server/start.js.map +1 -0
- package/src/core/project-graph/daemon/{exec → server}/stop.d.ts +0 -0
- package/src/core/project-graph/daemon/{exec → server}/stop.js +1 -1
- package/src/core/project-graph/daemon/server/stop.js.map +1 -0
- package/src/core/project-graph/daemon/server/watcher.d.ts +10 -0
- package/src/core/project-graph/daemon/server/watcher.js +138 -0
- package/src/core/project-graph/daemon/server/watcher.js.map +1 -0
- package/src/core/project-graph/daemon/socket-utils.d.ts +3 -0
- package/src/core/project-graph/daemon/socket-utils.js +29 -0
- package/src/core/project-graph/daemon/socket-utils.js.map +1 -0
- package/src/core/project-graph/operators.js +1 -1
- package/src/core/project-graph/operators.js.map +1 -1
- package/src/core/project-graph/project-graph.js +4 -6
- package/src/core/project-graph/project-graph.js.map +1 -1
- package/src/utils/versions.js +1 -1
- package/src/core/project-graph/daemon/exec/index.d.ts +0 -3
- package/src/core/project-graph/daemon/exec/index.js +0 -89
- package/src/core/project-graph/daemon/exec/index.js.map +0 -1
- package/src/core/project-graph/daemon/exec/start.js.map +0 -1
- package/src/core/project-graph/daemon/exec/stop.js.map +0 -1
- package/src/core/project-graph/daemon/server.js +0 -345
- package/src/core/project-graph/daemon/server.js.map +0 -1
|
@@ -1,345 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getProjectGraphFromServer = exports.isServerAvailable = exports.killSocketOrPath = exports.stopServer = exports.startServer = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const devkit_1 = require("@nrwl/devkit");
|
|
6
|
-
const app_root_1 = require("@nrwl/tao/src/utils/app-root");
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const net_1 = require("net");
|
|
9
|
-
const os_1 = require("os");
|
|
10
|
-
const path_1 = require("path");
|
|
11
|
-
const perf_hooks_1 = require("perf_hooks");
|
|
12
|
-
const file_hasher_1 = require("../../hasher/file-hasher");
|
|
13
|
-
const git_hasher_1 = require("../../hasher/git-hasher");
|
|
14
|
-
const hashing_impl_1 = require("../../hasher/hashing-impl");
|
|
15
|
-
const project_graph_1 = require("../project-graph");
|
|
16
|
-
/**
|
|
17
|
-
* For IPC with with the daemon server we use unix sockets or windows pipes, depending on the user's operating system.
|
|
18
|
-
* Further notes on the cross-platform concerns are covered below.
|
|
19
|
-
*
|
|
20
|
-
* Unix:
|
|
21
|
-
*
|
|
22
|
-
* - The path is a filesystem pathname. It gets truncated to an OS-dependent length of sizeof(sockaddr_un.sun_path) - 1.
|
|
23
|
-
* Typical values are 107 bytes on Linux and 103 bytes on macOS.
|
|
24
|
-
* - A Unix domain socket will be visible in the filesystem and will persist until unlinked
|
|
25
|
-
*
|
|
26
|
-
* Windows:
|
|
27
|
-
*
|
|
28
|
-
* - The local domain is implemented using a named pipe. The path must refer to an entry in \\?\pipe\ or \\.\pipe\.
|
|
29
|
-
* - Unlike Unix domain sockets, Windows will close and remove the pipe when the owning process exits.
|
|
30
|
-
*
|
|
31
|
-
* We create the socket/pipe based on a path within the current workspace so that we maintain one unique daemon per
|
|
32
|
-
* workspace to ensure that subtle differences between Nx workspaces cannot cause issues.
|
|
33
|
-
*/
|
|
34
|
-
const workspaceSocketPath = path_1.join(app_root_1.appRootPath, './nx-daemon.sock');
|
|
35
|
-
const isWindows = os_1.platform() === 'win32';
|
|
36
|
-
const fullOSSocketPath = isWindows
|
|
37
|
-
? '\\\\.\\pipe\\nx\\' + path_1.resolve(workspaceSocketPath)
|
|
38
|
-
: path_1.resolve(workspaceSocketPath);
|
|
39
|
-
/**
|
|
40
|
-
* We have two different use-cases for the "daemon" server:
|
|
41
|
-
* 1) Running in a background process so that the daemon is purely an implementation detail.
|
|
42
|
-
* 2) Running in the main process in order to aid with development/debugging (technically, of course, in this case
|
|
43
|
-
* it isn't actually a daemon server at all, but for simplicity we stick with the same general name as its primary
|
|
44
|
-
* reason for existence is to be run in a background process).
|
|
45
|
-
*
|
|
46
|
-
* For (1) we do not want to log things from the daemon server to stdout/stderr, so we instead write to a file.
|
|
47
|
-
*
|
|
48
|
-
* This file location will be set by the `./exec/index.ts` utilities when starting the server so that we can
|
|
49
|
-
* provide feedback to the user as to its location via stdout on the parent process and still not cause the child
|
|
50
|
-
* process to be "undetachable".
|
|
51
|
-
*
|
|
52
|
-
* For (2) we simply log to stdout.
|
|
53
|
-
*/
|
|
54
|
-
let _serverLogOutputFile;
|
|
55
|
-
function serverLog(...s) {
|
|
56
|
-
/**
|
|
57
|
-
* If _serverLogOutputFile has not be set when starting the server, it means we are
|
|
58
|
-
* running it in the current process and we should log to stdout.
|
|
59
|
-
*/
|
|
60
|
-
if (!_serverLogOutputFile) {
|
|
61
|
-
console.log(formatLogMessage(`${s.join(' ')}`));
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
fs_1.appendFileSync(_serverLogOutputFile, formatLogMessage(`${s.join(' ')}\n`));
|
|
65
|
-
}
|
|
66
|
-
function formatLogMessage(message) {
|
|
67
|
-
return `[NX Daemon Server] - ${new Date().toISOString()} - ${message}`;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* We cache the latest known HEAD value and an overall hash of the state of the untracked
|
|
71
|
-
* and uncommitted files so that we can potentially skip some initialization work.
|
|
72
|
-
*/
|
|
73
|
-
let cachedGitHead;
|
|
74
|
-
let cachedUntrackedUncommittedState;
|
|
75
|
-
function hashAndCacheUntrackedUncommittedState(untrackedAndUncommittedFileHashes) {
|
|
76
|
-
const fileHashesMapAsFlatArray = [].concat(...Array.from(untrackedAndUncommittedFileHashes));
|
|
77
|
-
cachedUntrackedUncommittedState = hashing_impl_1.defaultHashing.hashArray(fileHashesMapAsFlatArray);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* We cache the latest copy of the serialized project graph itself in memory so that in the
|
|
81
|
-
* best case scenario we can skip all graph construction and serialization work entirely.
|
|
82
|
-
*/
|
|
83
|
-
let cachedSerializedProjectGraph;
|
|
84
|
-
function createAndSerializeProjectGraph() {
|
|
85
|
-
perf_hooks_1.performance.mark('create-project-graph-start');
|
|
86
|
-
const projectGraph = project_graph_1.createProjectGraph(undefined, undefined, undefined, '4.0');
|
|
87
|
-
perf_hooks_1.performance.mark('create-project-graph-end');
|
|
88
|
-
perf_hooks_1.performance.measure('total execution time for createProjectGraph()', 'create-project-graph-start', 'create-project-graph-end');
|
|
89
|
-
perf_hooks_1.performance.mark('json-stringify-start');
|
|
90
|
-
const serializedProjectGraph = JSON.stringify(projectGraph);
|
|
91
|
-
perf_hooks_1.performance.mark('json-stringify-end');
|
|
92
|
-
perf_hooks_1.performance.measure('serialize graph', 'json-stringify-start', 'json-stringify-end');
|
|
93
|
-
return serializedProjectGraph;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* We need to make sure that we instantiate the PerformanceObserver only once, otherwise
|
|
97
|
-
* we will end up with duplicate entries in the server logs.
|
|
98
|
-
*/
|
|
99
|
-
let performanceObserver;
|
|
100
|
-
/**
|
|
101
|
-
* Create the server and register a connection callback.
|
|
102
|
-
*
|
|
103
|
-
* NOTE: It is important that we do not eagerly perform any work directly upon connection
|
|
104
|
-
* of a client.
|
|
105
|
-
*
|
|
106
|
-
* This is because there are two different scenarios for connection that we need to support:
|
|
107
|
-
* 1) Checking if the server is fundamentally available
|
|
108
|
-
* 2) Requesting the project graph to be built
|
|
109
|
-
*
|
|
110
|
-
* For case (1) we want the operation to be as fast as possible - we just need to know if the
|
|
111
|
-
* server exists to connect to, and so this is why we do not perform any work directly upon
|
|
112
|
-
* connection.
|
|
113
|
-
*
|
|
114
|
-
* For case (2) we have a simple known data payload which the client will send to the server
|
|
115
|
-
* in order to trigger the more expensive graph construction logic.
|
|
116
|
-
*
|
|
117
|
-
* The real reason we need have these two separate steps in which we decouple connection from
|
|
118
|
-
* the request to actually build the project graph is down to the fact that on Windows, the named
|
|
119
|
-
* pipe behaves subtly differently from Unix domain sockets in that when you check if it exists
|
|
120
|
-
* as if it were a file (e.g. using fs.existsSync() or fs.open() or fs.statSync() etc), the native
|
|
121
|
-
* code which runs behind the scenes on the OS will actually trigger a connection to the server.
|
|
122
|
-
* Therefore if we were to simply perform the graph creation upon connection we would end up
|
|
123
|
-
* repeating work and throwing `EPIPE` errors.
|
|
124
|
-
*/
|
|
125
|
-
const REQUEST_PROJECT_GRAPH_PAYLOAD = 'REQUEST_PROJECT_GRAPH_PAYLOAD';
|
|
126
|
-
const server = net_1.createServer((socket) => {
|
|
127
|
-
if (!performanceObserver) {
|
|
128
|
-
performanceObserver = new perf_hooks_1.PerformanceObserver((list) => {
|
|
129
|
-
const entry = list.getEntries()[0];
|
|
130
|
-
// Slight indentation to improve readability of the overall log file
|
|
131
|
-
serverLog(` Time taken for '${entry.name}'`, `${entry.duration}ms`);
|
|
132
|
-
});
|
|
133
|
-
performanceObserver.observe({ entryTypes: ['measure'], buffered: false });
|
|
134
|
-
}
|
|
135
|
-
socket.on('data', (data) => {
|
|
136
|
-
/**
|
|
137
|
-
* If anything other than the known project graph creation request payload is sent to
|
|
138
|
-
* the server, we throw an error.
|
|
139
|
-
*/
|
|
140
|
-
const payload = data.toString();
|
|
141
|
-
if (payload !== REQUEST_PROJECT_GRAPH_PAYLOAD) {
|
|
142
|
-
throw new Error(`Unsupported payload sent to daemon server: ${payload}`);
|
|
143
|
-
}
|
|
144
|
-
perf_hooks_1.performance.mark('server-connection');
|
|
145
|
-
serverLog('Client Request for Project Graph Received');
|
|
146
|
-
const currentGitHead = git_hasher_1.gitRevParseHead(app_root_1.appRootPath);
|
|
147
|
-
let serializedProjectGraph;
|
|
148
|
-
/**
|
|
149
|
-
* Cached HEAD has changed, we must perform full file-hashing initialization work and
|
|
150
|
-
* recompute the project graph
|
|
151
|
-
*/
|
|
152
|
-
if (currentGitHead !== cachedGitHead) {
|
|
153
|
-
serverLog(` [SERVER STATE]: Cached HEAD does not match current (${currentGitHead}), performing full file hash init and recomputing project graph...`);
|
|
154
|
-
/**
|
|
155
|
-
* Update the cached values for the HEAD and untracked and uncommitted state which was computed
|
|
156
|
-
* as part of full init()
|
|
157
|
-
*/
|
|
158
|
-
const untrackedAndUncommittedFileHashes = file_hasher_1.defaultFileHasher.init();
|
|
159
|
-
hashAndCacheUntrackedUncommittedState(untrackedAndUncommittedFileHashes);
|
|
160
|
-
cachedGitHead = currentGitHead;
|
|
161
|
-
serializedProjectGraph = createAndSerializeProjectGraph();
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
/**
|
|
165
|
-
* We know at this point that the cached HEAD has not changed but we must still always use git
|
|
166
|
-
* to check for untracked and uncommitted changes (and we then create and cache a hash which
|
|
167
|
-
* represents their overall state).
|
|
168
|
-
*
|
|
169
|
-
* We cannot ever skip this particular git operation, but we can compare its result to our
|
|
170
|
-
* previously cached hash which represents the overall state for untracked and uncommitted changes
|
|
171
|
-
* and then potentially skip project graph creation altogether if it is unchanged and we have an
|
|
172
|
-
* existing cached graph.
|
|
173
|
-
*/
|
|
174
|
-
const previousUntrackedUncommittedState = cachedUntrackedUncommittedState;
|
|
175
|
-
const untrackedAndUncommittedFileHashes = file_hasher_1.defaultFileHasher.incrementalUpdate();
|
|
176
|
-
hashAndCacheUntrackedUncommittedState(untrackedAndUncommittedFileHashes);
|
|
177
|
-
/**
|
|
178
|
-
* Skip project graph creation if the untracked and uncommitted state is unchanged and we have
|
|
179
|
-
* a cached version of the graph available in memory.
|
|
180
|
-
*/
|
|
181
|
-
if (previousUntrackedUncommittedState === cachedUntrackedUncommittedState &&
|
|
182
|
-
cachedSerializedProjectGraph) {
|
|
183
|
-
serverLog(` [SERVER STATE]: State unchanged since last request, resolving in-memory cached project graph...`);
|
|
184
|
-
serializedProjectGraph = cachedSerializedProjectGraph;
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
serverLog(` [SERVER STATE]: Hashed untracked/uncommitted file state changed (now ${cachedUntrackedUncommittedState}), recomputing project graph...`);
|
|
188
|
-
serializedProjectGraph = createAndSerializeProjectGraph();
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Cache the latest version of the project graph in memory so that we can potentially skip a lot
|
|
193
|
-
* of expensive work on the next client request.
|
|
194
|
-
*
|
|
195
|
-
* For reference, on the very large test repo https://github.com/vsavkin/interstellar the project
|
|
196
|
-
* graph nxdeps.json file is about 32MB, so memory utilization should not be a huge concern.
|
|
197
|
-
*/
|
|
198
|
-
cachedSerializedProjectGraph = serializedProjectGraph;
|
|
199
|
-
perf_hooks_1.performance.mark('serialized-project-graph-ready');
|
|
200
|
-
perf_hooks_1.performance.measure('total for creating and serializing project graph', 'server-connection', 'serialized-project-graph-ready');
|
|
201
|
-
socket.write(serializedProjectGraph, () => {
|
|
202
|
-
perf_hooks_1.performance.mark('serialized-project-graph-written-to-client');
|
|
203
|
-
perf_hooks_1.performance.measure('write project graph to socket', 'serialized-project-graph-ready', 'serialized-project-graph-written-to-client');
|
|
204
|
-
/**
|
|
205
|
-
* Close the connection once all data has been written to the socket so that the client
|
|
206
|
-
* knows when to read it.
|
|
207
|
-
*/
|
|
208
|
-
socket.end();
|
|
209
|
-
perf_hooks_1.performance.measure('total for server response', 'server-connection', 'serialized-project-graph-written-to-client');
|
|
210
|
-
const bytesWritten = Buffer.byteLength(serializedProjectGraph, 'utf-8');
|
|
211
|
-
serverLog(`Closed Connection to Client (${bytesWritten} bytes transferred)`);
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
});
|
|
215
|
-
function startServer({ serverLogOutputFile, }) {
|
|
216
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
217
|
-
_serverLogOutputFile = serverLogOutputFile;
|
|
218
|
-
// See notes above on OS differences regarding clean up of existings connections.
|
|
219
|
-
if (!isWindows) {
|
|
220
|
-
killSocketOrPath();
|
|
221
|
-
}
|
|
222
|
-
return new Promise((resolve) => {
|
|
223
|
-
server.listen(fullOSSocketPath, () => {
|
|
224
|
-
serverLog(`Started listening on: ${fullOSSocketPath}`);
|
|
225
|
-
return resolve(server);
|
|
226
|
-
});
|
|
227
|
-
});
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
exports.startServer = startServer;
|
|
231
|
-
function stopServer() {
|
|
232
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
233
|
-
return new Promise((resolve, reject) => {
|
|
234
|
-
server.close((err) => {
|
|
235
|
-
if (err) {
|
|
236
|
-
/**
|
|
237
|
-
* If the server is running in a detached background process then server.close()
|
|
238
|
-
* will throw this error even if server is actually alive. We therefore only reject
|
|
239
|
-
* in case of any other unexpected errors.
|
|
240
|
-
*/
|
|
241
|
-
if (!err.message.startsWith('Server is not running')) {
|
|
242
|
-
return reject(err);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
killSocketOrPath();
|
|
246
|
-
/**
|
|
247
|
-
* The distinction regarding background process or not is not relevant for stopping the server,
|
|
248
|
-
* always pretty print the message to stdout.
|
|
249
|
-
*/
|
|
250
|
-
devkit_1.logger.info('NX Daemon Server - Stopped');
|
|
251
|
-
return resolve();
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
exports.stopServer = stopServer;
|
|
257
|
-
function killSocketOrPath() {
|
|
258
|
-
try {
|
|
259
|
-
fs_1.unlinkSync(fullOSSocketPath);
|
|
260
|
-
}
|
|
261
|
-
catch (_a) { }
|
|
262
|
-
}
|
|
263
|
-
exports.killSocketOrPath = killSocketOrPath;
|
|
264
|
-
/**
|
|
265
|
-
* As noted in the comments above the createServer() call, in order to reliably (meaning it works
|
|
266
|
-
* cross-platform) check whether or not the server is availabe to request a project graph from we
|
|
267
|
-
* need to actually attempt connecting to it.
|
|
268
|
-
*
|
|
269
|
-
* Because of the behavior of named pipes on Windows, we cannot simply treat them as a file and
|
|
270
|
-
* check for their existence on disk (unlike with Unix Sockets).
|
|
271
|
-
*/
|
|
272
|
-
function isServerAvailable() {
|
|
273
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
274
|
-
try {
|
|
275
|
-
const socket = net_1.connect(fullOSSocketPath);
|
|
276
|
-
return new Promise((resolve) => {
|
|
277
|
-
socket.on('connect', () => {
|
|
278
|
-
socket.destroy();
|
|
279
|
-
resolve(true);
|
|
280
|
-
});
|
|
281
|
-
socket.on('error', () => {
|
|
282
|
-
resolve(false);
|
|
283
|
-
});
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
catch (_a) {
|
|
287
|
-
return Promise.resolve(false);
|
|
288
|
-
}
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
exports.isServerAvailable = isServerAvailable;
|
|
292
|
-
/**
|
|
293
|
-
* Establishes a client connection to the daemon server for use in project graph
|
|
294
|
-
* creation utilities.
|
|
295
|
-
*
|
|
296
|
-
* All logs are performed by the devkit logger because this logic does not
|
|
297
|
-
* run "on the server" per se and therefore does not write to its log output.
|
|
298
|
-
*/
|
|
299
|
-
function getProjectGraphFromServer() {
|
|
300
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
301
|
-
return new Promise((resolve, reject) => {
|
|
302
|
-
const socket = net_1.connect(fullOSSocketPath);
|
|
303
|
-
socket.on('error', (err) => {
|
|
304
|
-
let errorMessage;
|
|
305
|
-
if (err.message.startsWith('connect ENOENT')) {
|
|
306
|
-
errorMessage = 'Error: The Daemon Server is not running';
|
|
307
|
-
}
|
|
308
|
-
if (err.message.startsWith('connect ECONNREFUSED')) {
|
|
309
|
-
// If somehow the file descriptor had not been released during a previous shut down.
|
|
310
|
-
if (fs_1.existsSync(fullOSSocketPath)) {
|
|
311
|
-
errorMessage = `Error: A server instance had not been fully shut down. Please try running the command again.`;
|
|
312
|
-
killSocketOrPath();
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
devkit_1.logger.error(`NX Daemon Client - ${errorMessage || err}`);
|
|
316
|
-
return reject(new Error(errorMessage) || err);
|
|
317
|
-
});
|
|
318
|
-
/**
|
|
319
|
-
* Immediately after connecting to the server we send it the known project graph creation
|
|
320
|
-
* request payload. See the notes above createServer() for more context as to why we explicitly
|
|
321
|
-
* request the graph from the client like this.
|
|
322
|
-
*/
|
|
323
|
-
socket.on('connect', () => {
|
|
324
|
-
socket.write(REQUEST_PROJECT_GRAPH_PAYLOAD);
|
|
325
|
-
let serializedProjectGraph = '';
|
|
326
|
-
socket.on('data', (data) => {
|
|
327
|
-
serializedProjectGraph += data.toString();
|
|
328
|
-
});
|
|
329
|
-
socket.on('end', () => {
|
|
330
|
-
try {
|
|
331
|
-
const projectGraph = JSON.parse(serializedProjectGraph);
|
|
332
|
-
devkit_1.logger.info('NX Daemon Client - Resolved ProjectGraph');
|
|
333
|
-
return resolve(projectGraph);
|
|
334
|
-
}
|
|
335
|
-
catch (_a) {
|
|
336
|
-
devkit_1.logger.error('NX Daemon Client - Error: Could not deserialize the ProjectGraph');
|
|
337
|
-
return reject();
|
|
338
|
-
}
|
|
339
|
-
});
|
|
340
|
-
});
|
|
341
|
-
});
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
exports.getProjectGraphFromServer = getProjectGraphFromServer;
|
|
345
|
-
//# sourceMappingURL=server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../../../../packages/workspace/src/core/project-graph/daemon/server.ts"],"names":[],"mappings":"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"}
|