@ms-cloudpack/cli 0.6.1 → 0.8.1
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/CHANGELOG.json +78 -1
- package/CHANGELOG.md +30 -2
- package/lib/cloudpack.js +4 -1
- package/lib/cloudpack.js.map +1 -1
- package/lib/commands/start/TaskRunner.d.ts +4 -3
- package/lib/commands/start/TaskRunner.js +3 -4
- package/lib/commands/start/TaskRunner.js.map +1 -1
- package/lib/commands/start/bundleTask.d.ts +2 -2
- package/lib/commands/start/start.js +20 -6
- package/lib/commands/start/start.js.map +1 -1
- package/lib/commands/start/startApiServer.d.ts +15 -7
- package/lib/commands/start/startApiServer.js +42 -35
- package/lib/commands/start/startApiServer.js.map +1 -1
- package/lib/commands/start/startAppServer.d.ts +1 -2
- package/lib/commands/start/startAppServer.js +4 -4
- package/lib/commands/start/startAppServer.js.map +1 -1
- package/lib/commands/start/startBundleServer.d.ts +1 -1
- package/lib/commands/start/startBundleServer.js +140 -142
- package/lib/commands/start/startBundleServer.js.map +1 -1
- package/lib/commands/start/taskRunner.test.js +1 -0
- package/lib/commands/start/taskRunner.test.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,84 @@
|
|
|
2
2
|
"name": "@ms-cloudpack/cli",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Fri, 09 Sep 2022 08:15:15 GMT",
|
|
6
|
+
"tag": "@ms-cloudpack/cli_v0.8.1",
|
|
7
|
+
"version": "0.8.1",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"author": "elcraig@microsoft.com",
|
|
12
|
+
"package": "@ms-cloudpack/cli",
|
|
13
|
+
"commit": "a94425304322aa40cd6837969d8c3a3f25d21ca2",
|
|
14
|
+
"message": "Improve async error handling"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"date": "Wed, 07 Sep 2022 08:14:20 GMT",
|
|
21
|
+
"tag": "@ms-cloudpack/cli_v0.8.0",
|
|
22
|
+
"version": "0.8.0",
|
|
23
|
+
"comments": {
|
|
24
|
+
"minor": [
|
|
25
|
+
{
|
|
26
|
+
"author": "dake.3601@gmail.com",
|
|
27
|
+
"package": "@ms-cloudpack/cli",
|
|
28
|
+
"commit": "40594c97b5b9eb23dbcd763a6ea23cca9f6452f6",
|
|
29
|
+
"comment": "Fixing action undefined"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"author": "beachball",
|
|
33
|
+
"package": "@ms-cloudpack/cli",
|
|
34
|
+
"comment": "Bump @ms-cloudpack/bundler to v0.4.1",
|
|
35
|
+
"commit": "40594c97b5b9eb23dbcd763a6ea23cca9f6452f6"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"date": "Tue, 06 Sep 2022 08:17:50 GMT",
|
|
42
|
+
"tag": "@ms-cloudpack/cli_v0.7.0",
|
|
43
|
+
"version": "0.7.0",
|
|
44
|
+
"comments": {
|
|
45
|
+
"none": [
|
|
46
|
+
{
|
|
47
|
+
"author": "dzearing@microsoft.com",
|
|
48
|
+
"package": "@ms-cloudpack/cli",
|
|
49
|
+
"commit": "2b961ca2bb0304eec6a5ce25d49a3c66072a113f",
|
|
50
|
+
"comment": "Updating api-extractor."
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"minor": [
|
|
54
|
+
{
|
|
55
|
+
"author": "dake.3601@gmail.com",
|
|
56
|
+
"package": "@ms-cloudpack/cli",
|
|
57
|
+
"commit": "5edd43e769c3fa7fa1f2fb16952e0031f57cbb43",
|
|
58
|
+
"comment": "Integrating PackageDefinitions implementation."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"author": "beachball",
|
|
62
|
+
"package": "@ms-cloudpack/cli",
|
|
63
|
+
"comment": "Bump @ms-cloudpack/bundler to v0.4.0",
|
|
64
|
+
"commit": "6bfb08a58af608b2e633ae7a4b686a6eabea29ca"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"author": "beachball",
|
|
68
|
+
"package": "@ms-cloudpack/cli",
|
|
69
|
+
"comment": "Bump @ms-cloudpack/package-utilities to v0.10.0",
|
|
70
|
+
"commit": "6bfb08a58af608b2e633ae7a4b686a6eabea29ca"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"author": "beachball",
|
|
74
|
+
"package": "@ms-cloudpack/cli",
|
|
75
|
+
"comment": "Bump @ms-cloudpack/path-utilities to v0.4.0",
|
|
76
|
+
"commit": "6bfb08a58af608b2e633ae7a4b686a6eabea29ca"
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"date": "Sun, 04 Sep 2022 08:14:55 GMT",
|
|
6
83
|
"tag": "@ms-cloudpack/cli_v0.6.1",
|
|
7
84
|
"version": "0.6.1",
|
|
8
85
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,40 @@
|
|
|
1
1
|
# Change Log - @ms-cloudpack/cli
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Fri, 09 Sep 2022 08:15:15 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 0.8.1
|
|
8
|
+
|
|
9
|
+
Fri, 09 Sep 2022 08:15:15 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- undefined (elcraig@microsoft.com)
|
|
14
|
+
|
|
15
|
+
## 0.8.0
|
|
16
|
+
|
|
17
|
+
Wed, 07 Sep 2022 08:14:20 GMT
|
|
18
|
+
|
|
19
|
+
### Minor changes
|
|
20
|
+
|
|
21
|
+
- Fixing action undefined (dake.3601@gmail.com)
|
|
22
|
+
- Bump @ms-cloudpack/bundler to v0.4.1
|
|
23
|
+
|
|
24
|
+
## 0.7.0
|
|
25
|
+
|
|
26
|
+
Tue, 06 Sep 2022 08:17:50 GMT
|
|
27
|
+
|
|
28
|
+
### Minor changes
|
|
29
|
+
|
|
30
|
+
- Integrating PackageDefinitions implementation. (dake.3601@gmail.com)
|
|
31
|
+
- Bump @ms-cloudpack/bundler to v0.4.0
|
|
32
|
+
- Bump @ms-cloudpack/package-utilities to v0.10.0
|
|
33
|
+
- Bump @ms-cloudpack/path-utilities to v0.4.0
|
|
34
|
+
|
|
7
35
|
## 0.6.1
|
|
8
36
|
|
|
9
|
-
Sun, 04 Sep 2022 08:14:
|
|
37
|
+
Sun, 04 Sep 2022 08:14:55 GMT
|
|
10
38
|
|
|
11
39
|
### Patches
|
|
12
40
|
|
package/lib/cloudpack.js
CHANGED
package/lib/cloudpack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudpack.js","sourceRoot":"","sources":["../src/cloudpack.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"cloudpack.js","sourceRoot":"","sources":["../src/cloudpack.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACpB,OAAO,CAAC,KAAK,CAAE,GAAa,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -19,13 +19,14 @@ export declare class TaskRunner {
|
|
|
19
19
|
*/
|
|
20
20
|
add<TReturn>(task: Task<TReturn>): Promise<TReturn>;
|
|
21
21
|
/**
|
|
22
|
-
* Returns Task with id.
|
|
22
|
+
* Returns result from completed Task with id.
|
|
23
|
+
* TODO: rename to getResult?
|
|
23
24
|
*/
|
|
24
|
-
get(id: string):
|
|
25
|
+
get<TReturn>(id: string): TReturn | undefined;
|
|
25
26
|
/**
|
|
26
27
|
* Returns if Task with id is pending.
|
|
27
28
|
*/
|
|
28
|
-
pending(id: string): Promise<
|
|
29
|
+
pending<TReturn>(id: string): Promise<TReturn> | undefined;
|
|
29
30
|
/**
|
|
30
31
|
* Deletes Task with id.
|
|
31
32
|
*/
|
|
@@ -23,7 +23,7 @@ export class TaskRunner {
|
|
|
23
23
|
const action = this._completedTasks.get(id);
|
|
24
24
|
if (action !== undefined) {
|
|
25
25
|
log(`Previous action found, returning: "${name}:${id}"`);
|
|
26
|
-
return action;
|
|
26
|
+
return Promise.resolve(action);
|
|
27
27
|
}
|
|
28
28
|
// Check if we are already running the task with that id.
|
|
29
29
|
const pending = this._pendingTasks.get(id);
|
|
@@ -50,16 +50,15 @@ export class TaskRunner {
|
|
|
50
50
|
return resultPromise;
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
* Returns Task with id.
|
|
53
|
+
* Returns result from completed Task with id.
|
|
54
|
+
* TODO: rename to getResult?
|
|
54
55
|
*/
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
56
|
get(id) {
|
|
57
57
|
return this._completedTasks.get(id);
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* Returns if Task with id is pending.
|
|
61
61
|
*/
|
|
62
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
62
|
pending(id) {
|
|
64
63
|
return this._pendingTasks.get(id);
|
|
65
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../../../src/commands/start/TaskRunner.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAG7B,MAAM,GAAG,GAAG,CAAC,GAAG,QAAmB,EAAE,EAAE;IACrC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AAQF;;;GAGG;AACH,MAAM,OAAO,UAAU;IAOrB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAU,IAAmB;QAC9B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEnC,2DAA2D;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../../../src/commands/start/TaskRunner.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAG7B,MAAM,GAAG,GAAG,CAAC,GAAG,QAAmB,EAAE,EAAE;IACrC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AAQF;;;GAGG;AACH,MAAM,OAAO,UAAU;IAOrB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAU,IAAmB;QAC9B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEnC,2DAA2D;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAwB,CAAC;QACnE,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,GAAG,CAAC,sCAAsC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YACzD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAChC;QAED,yDAAyD;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAiC,CAAC;QAC3E,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,GAAG,CAAC,oCAAoC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YACvD,OAAO,OAAO,CAAC;SAChB;QAED,sCAAsC;QACtC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,CAAC,MAAM;iBACR,GAAG,CAAC,OAAO,CAAC;iBACZ,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,8CAA8C;gBAC9C,2CAA2C;gBAE3C,yBAAyB;gBACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBAErC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAE1C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,GAAG,CAAU,EAAU;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAwB,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,OAAO,CAAU,EAAU;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BundlerResult } from '@ms-cloudpack/bundler-types';
|
|
2
2
|
/**
|
|
3
|
-
* Tracks a given bundle result.
|
|
3
|
+
* Tracks a given bundle request and its result.
|
|
4
4
|
*/
|
|
5
5
|
export interface BundleRequest {
|
|
6
6
|
id: string;
|
|
@@ -11,6 +11,6 @@ export interface BundleRequest {
|
|
|
11
11
|
isExternal: boolean;
|
|
12
12
|
result?: BundlerResult;
|
|
13
13
|
isRebuildRequired?: boolean;
|
|
14
|
-
dispose?: () => void
|
|
14
|
+
dispose?: () => Promise<void>;
|
|
15
15
|
}
|
|
16
16
|
export declare function bundleTask(bundleRequest: BundleRequest, force?: boolean): Promise<BundleRequest>;
|
|
@@ -19,14 +19,28 @@ export async function start() {
|
|
|
19
19
|
bundleServer,
|
|
20
20
|
apiServer,
|
|
21
21
|
});
|
|
22
|
+
const cleanup = async () => {
|
|
23
|
+
for (const server of [bundleServer, appServer, apiServer]) {
|
|
24
|
+
try {
|
|
25
|
+
await server.close();
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
console.warn('Error closing server:', err);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
22
32
|
// Setup cleanup and close things on completion.
|
|
23
|
-
process.on('SIGINT',
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
process.exit(0);
|
|
33
|
+
process.on('SIGINT', () => {
|
|
34
|
+
cleanup().finally(() => {
|
|
35
|
+
process.exit(0);
|
|
36
|
+
});
|
|
28
37
|
});
|
|
29
38
|
// Open the browser.
|
|
30
|
-
|
|
39
|
+
const url = `http://localhost:${appServer.port}`;
|
|
40
|
+
openBrowser(url).catch((err) => {
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
42
|
+
console.warn('Error opening browser:', err?.stack || err);
|
|
43
|
+
console.warn('Please open the browser manually to:', url);
|
|
44
|
+
});
|
|
31
45
|
}
|
|
32
46
|
//# sourceMappingURL=start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/start/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE9B,iCAAiC;IACjC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEjD,qEAAqE;IACrE,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEpD,yDAAyD;IACzD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;QACrC,OAAO;QACP,YAAY;QACZ,SAAS;KACV,CAAC,CAAC;IAEH,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/start/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE9B,iCAAiC;IACjC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEjD,qEAAqE;IACrE,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEpD,yDAAyD;IACzD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;QACrC,OAAO;QACP,YAAY;QACZ,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,KAAK,MAAM,MAAM,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;YACzD,IAAI;gBACF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;aACtB;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;aAC5C;SACF;IACH,CAAC,CAAC;IAEF,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,GAAG,GAAG,oBAAoB,SAAS,CAAC,IAAI,EAAE,CAAC;IACjD,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7B,sEAAsE;QACtE,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -14,12 +14,15 @@ export interface ApiServer {
|
|
|
14
14
|
reportStart: (options: TaskStartDescription) => void;
|
|
15
15
|
reportEnd: (options: TaskEndDescription) => void;
|
|
16
16
|
addTask: <TReturn>(task: Task<TReturn>) => Promise<TReturn>;
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Gets the result of a completed task.
|
|
19
|
+
*/
|
|
20
|
+
getTask: <TReturn>(id: string) => TReturn | undefined;
|
|
21
|
+
pendingTask: <TReturn>(id: string) => Promise<TReturn> | undefined;
|
|
19
22
|
deleteTask: (id: string) => void;
|
|
20
|
-
close: () => void
|
|
23
|
+
close: () => Promise<void>;
|
|
21
24
|
}
|
|
22
|
-
interface TaskError {
|
|
25
|
+
export interface TaskError {
|
|
23
26
|
message: string;
|
|
24
27
|
pluginName: string;
|
|
25
28
|
stack: string;
|
|
@@ -27,17 +30,23 @@ interface TaskError {
|
|
|
27
30
|
lineNumber: number;
|
|
28
31
|
columnNumber: number;
|
|
29
32
|
}
|
|
30
|
-
interface TaskStartDescription {
|
|
33
|
+
export interface TaskStartDescription {
|
|
31
34
|
id: string;
|
|
32
35
|
name: string;
|
|
33
36
|
inputPath: string;
|
|
34
37
|
outputPath: string;
|
|
35
38
|
}
|
|
36
|
-
interface TaskEndDescription {
|
|
39
|
+
export interface TaskEndDescription {
|
|
37
40
|
id: string;
|
|
38
41
|
errors?: TaskError[];
|
|
39
42
|
warnings?: TaskError[];
|
|
40
43
|
}
|
|
44
|
+
export interface TaskDescription extends TaskStartDescription, TaskEndDescription {
|
|
45
|
+
status: 'pending' | 'complete';
|
|
46
|
+
startTime: number;
|
|
47
|
+
durationMilliseconds?: number;
|
|
48
|
+
lastUpdated?: number;
|
|
49
|
+
}
|
|
41
50
|
/**
|
|
42
51
|
* The api server handles the data pub/sub (for things like reporting build status)
|
|
43
52
|
* and hosting the dashboard verb backend (for executing actions like loading vscode,
|
|
@@ -55,4 +64,3 @@ interface TaskEndDescription {
|
|
|
55
64
|
export declare function startApiServer({ session }: {
|
|
56
65
|
session: Session;
|
|
57
66
|
}): Promise<ApiServer>;
|
|
58
|
-
export {};
|
|
@@ -44,44 +44,51 @@ export async function startApiServer({ session }) {
|
|
|
44
44
|
socket.send(JSON.stringify(message, null, 2));
|
|
45
45
|
}
|
|
46
46
|
socket
|
|
47
|
-
.on('message',
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
dispose
|
|
64
|
-
|
|
47
|
+
.on('message', (rawData) => {
|
|
48
|
+
try {
|
|
49
|
+
const request = JSON.parse(rawData.toString());
|
|
50
|
+
// console.log(`ApiServer: Received message: ${JSON.stringify(request, null, 2)}`);
|
|
51
|
+
switch (request.type) {
|
|
52
|
+
case 'subscribe': {
|
|
53
|
+
const { path: subscriptionPath, id } = request.data;
|
|
54
|
+
disposables.set(id, bus.subscribe(subscriptionPath,
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment
|
|
56
|
+
(data) => sendMessage({ type: 'notify', id, path: subscriptionPath, data })));
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
case 'unsubscribe': {
|
|
60
|
+
const id = request.data.id;
|
|
61
|
+
if (id) {
|
|
62
|
+
const dispose = disposables.get(id);
|
|
63
|
+
if (dispose) {
|
|
64
|
+
dispose();
|
|
65
|
+
disposables.delete(id);
|
|
66
|
+
}
|
|
65
67
|
}
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
case 'openSource': {
|
|
71
|
+
const { rootPath, relativePath = '', line, column } = request.data;
|
|
72
|
+
const fullPath = path.join(rootPath, relativePath);
|
|
73
|
+
console.log(`Opening VSCode with path: ${fullPath}`);
|
|
74
|
+
execSync(`code --goto ${fullPath}:${line}:${column}`, { cwd: process.cwd() });
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
case 'open': {
|
|
78
|
+
const { rootPath, relativePath = '' } = request.data;
|
|
79
|
+
const fullPath = path.join(rootPath, relativePath);
|
|
80
|
+
console.log(`Opening path: ${fullPath}`);
|
|
81
|
+
const openCommand = os.platform() == 'win32' ? 'start' : 'open';
|
|
82
|
+
execSync(`${openCommand} ${fullPath}`, { cwd: process.cwd() });
|
|
83
|
+
break;
|
|
66
84
|
}
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
case 'openSource': {
|
|
70
|
-
const { rootPath, relativePath = '', line, column } = request.data;
|
|
71
|
-
const fullPath = path.join(rootPath, relativePath);
|
|
72
|
-
console.log(`Opening VSCode with path: ${fullPath}`);
|
|
73
|
-
execSync(`code --goto ${fullPath}:${line}:${column}`, { cwd: process.cwd() });
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
case 'open': {
|
|
77
|
-
const { rootPath, relativePath = '' } = request.data;
|
|
78
|
-
const fullPath = path.join(rootPath, relativePath);
|
|
79
|
-
console.log(`Opening path: ${fullPath}`);
|
|
80
|
-
const openCommand = os.platform() == 'win32' ? 'start' : 'open';
|
|
81
|
-
execSync(`${openCommand} ${fullPath}`, { cwd: process.cwd() });
|
|
82
|
-
break;
|
|
83
85
|
}
|
|
84
86
|
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
console.error('ApiServer: error handling message');
|
|
89
|
+
console.error('Error:', err);
|
|
90
|
+
console.error('Message:', rawData.toString());
|
|
91
|
+
}
|
|
85
92
|
})
|
|
86
93
|
.on('close', () => {
|
|
87
94
|
for (const d of disposables.values()) {
|
|
@@ -155,7 +162,7 @@ export async function startApiServer({ session }) {
|
|
|
155
162
|
deleteTask: (id) => {
|
|
156
163
|
taskRunner.delete(id);
|
|
157
164
|
},
|
|
158
|
-
close: () => server.close(),
|
|
165
|
+
close: () => new Promise((resolve, reject) => server.close((err) => (err ? reject(err) : resolve()))),
|
|
159
166
|
};
|
|
160
167
|
}
|
|
161
168
|
//# sourceMappingURL=startApiServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startApiServer.js","sourceRoot":"","sources":["../../../src/commands/start/startApiServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"startApiServer.js","sourceRoot":"","sources":["../../../src/commands/start/startApiServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import type { Session } from './types.js';
|
|
3
2
|
import type { ApiServer } from './startApiServer.js';
|
|
4
3
|
import type { BundleServer } from './startBundleServer.js';
|
|
@@ -15,6 +14,6 @@ export declare function startAppServer({ session, bundleServer, apiServer, }: {
|
|
|
15
14
|
bundleServer: BundleServer;
|
|
16
15
|
apiServer: ApiServer;
|
|
17
16
|
}): Promise<{
|
|
18
|
-
close: () =>
|
|
17
|
+
close: () => Promise<void>;
|
|
19
18
|
port: number;
|
|
20
19
|
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// import type { Session } from './types.js';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { slash } from '@ms-cloudpack/path-utilities';
|
|
4
|
-
import { createImportMap,
|
|
4
|
+
import { createImportMap, PackageDefinitions } from '@ms-cloudpack/package-utilities';
|
|
5
5
|
import { createExpressApp } from '@ms-cloudpack/create-express-app';
|
|
6
6
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7
7
|
const log = (messages) => {
|
|
@@ -17,7 +17,7 @@ const log = (messages) => {
|
|
|
17
17
|
*/
|
|
18
18
|
export async function startAppServer({ session, bundleServer, apiServer, }) {
|
|
19
19
|
const importMap = await createImportMap(session.resolveMap, bundleServer.url);
|
|
20
|
-
const definition = await
|
|
20
|
+
const definition = await PackageDefinitions.getInstance().get(session.appPath);
|
|
21
21
|
const dashboardClientScript = importMap.imports['@ms-cloudpack/overlay'];
|
|
22
22
|
const dashboardScript = importMap.imports['@ms-cloudpack/overlay'];
|
|
23
23
|
const { server, port } = await createExpressApp([5000, 5001, 5002, 5003], (app) => {
|
|
@@ -33,7 +33,7 @@ export async function startAppServer({ session, bundleServer, apiServer, }) {
|
|
|
33
33
|
res,
|
|
34
34
|
});
|
|
35
35
|
})
|
|
36
|
-
.get('*',
|
|
36
|
+
.get('*', (req, res) => {
|
|
37
37
|
if (!definition) {
|
|
38
38
|
res.status(500).send(`There was no package.json located at "${session.appPath}".`);
|
|
39
39
|
return;
|
|
@@ -53,7 +53,7 @@ export async function startAppServer({ session, bundleServer, apiServer, }) {
|
|
|
53
53
|
});
|
|
54
54
|
});
|
|
55
55
|
return {
|
|
56
|
-
close: () => server.close(),
|
|
56
|
+
close: () => new Promise((resolve, reject) => server.close((err) => (err ? reject(err) : resolve()))),
|
|
57
57
|
port,
|
|
58
58
|
};
|
|
59
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../src/commands/start/startAppServer.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../src/commands/start/startAppServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,158 +14,154 @@ const { ensureDir } = fsExtra;
|
|
|
14
14
|
const log = (...messages) => {
|
|
15
15
|
console.log(`BundleServer:`, ...messages);
|
|
16
16
|
};
|
|
17
|
+
const error = (...messages) => {
|
|
18
|
+
console.error(`BundleServer:`, ...messages);
|
|
19
|
+
};
|
|
17
20
|
/**
|
|
18
21
|
* The bundle server handles package requests and returns bundled resources.
|
|
19
22
|
* Resources are bundled on demand and cached locally to avoid re-bundling
|
|
20
23
|
* on each request.
|
|
21
24
|
*/
|
|
22
25
|
export async function startBundleServer({ session, apiServer, }) {
|
|
23
|
-
const { resolveMap } = session;
|
|
24
26
|
const { server, port } = await createExpressApp([5500, 5501, 5502, 5503], (app) => {
|
|
25
27
|
// Set up the express app routes.
|
|
26
|
-
app.get('*',
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const packagePath = !!version && packageEntry?.version === version
|
|
31
|
-
? packageEntry?.path
|
|
32
|
-
: packageEntry?.scopedVersions?.[version]?.path;
|
|
33
|
-
const force = req.query.force !== undefined;
|
|
34
|
-
log(`Request: "${packageName}@${version}${filePath}"`);
|
|
35
|
-
// If the package is missing, invalid arguments.
|
|
36
|
-
if (!requestPath || !packageName) {
|
|
37
|
-
log(`Response (400): "${packageName}@${version}${filePath}"`);
|
|
38
|
-
res.status(400).send(`Requests must be in the format "/{packageName}@{version}/path/file.ext".`);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
// If the version is missing, redirect to the primary version.
|
|
42
|
-
if (!version) {
|
|
43
|
-
const resolvedPackage = resolveMap[packageName];
|
|
44
|
-
if (!resolvedPackage) {
|
|
45
|
-
log(`Response (404): Unrecognized package "${packageName}"`);
|
|
46
|
-
res.status(404).send(`Unrecognized package "${packageName}".`);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
res.redirect(`/${packageName}@${resolvedPackage.version}${filePath}`);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
// If it's an unrecognized package, 404.
|
|
53
|
-
if (!packagePath) {
|
|
54
|
-
log(`Response (404): "${packageName}@${version}${filePath}"`);
|
|
55
|
-
res
|
|
56
|
-
.status(404)
|
|
57
|
-
.send(`The requested package "${packageName}@${version}${filePath}" was not found in the resolve map.`);
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
// Create an identifier for the bundle.
|
|
61
|
-
const isExternal = isExternalPackage(packagePath);
|
|
62
|
-
const bundleId = hash({
|
|
63
|
-
name: packageName,
|
|
64
|
-
version: isExternal ? version : packagePath,
|
|
65
|
-
mode: session.mode,
|
|
28
|
+
app.get('*', (req, res) => {
|
|
29
|
+
handleRequest(req, res, session, apiServer).catch((err) => {
|
|
30
|
+
error(err?.stack || err);
|
|
31
|
+
res.status(500).send(`Error bundling: ${err}`);
|
|
66
32
|
});
|
|
67
|
-
// Derive where the output should be.
|
|
68
|
-
const outputPath = path.join(os.tmpdir(), 'cloudpack-output', `${filenamify(packageName)}-${version}-${bundleId}`);
|
|
69
|
-
// Set up for bundling.
|
|
70
|
-
let action = apiServer.getTask(bundleId);
|
|
71
|
-
const pendingBundle = apiServer.pendingTask(bundleId);
|
|
72
|
-
const restart = action && !isFolder;
|
|
73
|
-
let bundling;
|
|
74
|
-
// Does it need to bundle?
|
|
75
|
-
if (!pendingBundle && (!action || restart)) {
|
|
76
|
-
// Bundling promise wrapper.
|
|
77
|
-
bundling = new Promise((resolve) => {
|
|
78
|
-
const bundleRequest = {
|
|
79
|
-
id: bundleId,
|
|
80
|
-
packageName,
|
|
81
|
-
version: version,
|
|
82
|
-
packagePath,
|
|
83
|
-
outputPath,
|
|
84
|
-
isExternal,
|
|
85
|
-
};
|
|
86
|
-
// Call to async helper so that we can await and call resolve.
|
|
87
|
-
(async () => {
|
|
88
|
-
// Start tracking work.
|
|
89
|
-
apiServer.reportStart({
|
|
90
|
-
id: bundleId,
|
|
91
|
-
name: `Bundle ${packageName}@${version}`,
|
|
92
|
-
inputPath: packagePath || '',
|
|
93
|
-
outputPath,
|
|
94
|
-
});
|
|
95
|
-
try {
|
|
96
|
-
log(`No previous action found, bundling: "${packageName}@${version}"`);
|
|
97
|
-
await ensureDir(outputPath);
|
|
98
|
-
log(`Finished ensureDir: "${packageName}@${version}"`);
|
|
99
|
-
log(`Trying to bundle "${packageName}@${version}"`);
|
|
100
|
-
if (restart) {
|
|
101
|
-
// TODO: Implement apiServer.restart
|
|
102
|
-
apiServer.deleteTask(bundleId);
|
|
103
|
-
}
|
|
104
|
-
await apiServer.addTask({
|
|
105
|
-
name: `Bundle ${packageName}@${version}`,
|
|
106
|
-
id: bundleId,
|
|
107
|
-
execute: () => bundleTask(bundleRequest, force),
|
|
108
|
-
});
|
|
109
|
-
// If this is going to be incremental, start a watcher to re-bundle when source
|
|
110
|
-
// changes.
|
|
111
|
-
if (!isExternal) {
|
|
112
|
-
initializeFileWatcher(session, bundleId, outputPath, bundleRequest, apiServer);
|
|
113
|
-
log(`Bundle complete: ${outputPath}`);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
catch (_) {
|
|
117
|
-
/* no-op */
|
|
118
|
-
}
|
|
119
|
-
resolve(bundleRequest);
|
|
120
|
-
// TODO: errors and warnings typings don't match up. We need to reconcile.
|
|
121
|
-
apiServer.reportEnd({
|
|
122
|
-
id: bundleId,
|
|
123
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
124
|
-
errors: bundleRequest.result?.errors,
|
|
125
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
126
|
-
warnings: bundleRequest.result?.warnings,
|
|
127
|
-
});
|
|
128
|
-
})();
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
else if (pendingBundle) {
|
|
132
|
-
log(`Previous action found, waiting: "${packageName}@${version}${filePath}"`);
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
log(`Bundle cached, returning: "${packageName}@${version}${filePath}"`);
|
|
136
|
-
}
|
|
137
|
-
await apiServer.pendingTask(bundleId);
|
|
138
|
-
await bundling;
|
|
139
|
-
action = apiServer.getTask(bundleId);
|
|
140
|
-
// If this is a pre-built local package we haven't set up for incremental builds, set it up.
|
|
141
|
-
if (!isExternal && !action.dispose) {
|
|
142
|
-
initializeFileWatcher(session, bundleId, outputPath, action, apiServer);
|
|
143
|
-
}
|
|
144
|
-
// At this point we should have an action completed.
|
|
145
|
-
if ((action.result?.errors?.length || 0) > 0) {
|
|
146
|
-
res.status(500).type('json').send(action);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
log(`Bundle returning: "${packageName}@${version}${filePath}"`);
|
|
150
|
-
// Try to return the result.
|
|
151
|
-
if (isExternal) {
|
|
152
|
-
res.setHeader('Cache-Control', 'public, max-age=31536000');
|
|
153
|
-
}
|
|
154
|
-
res.sendFile(path.join(outputPath, filePath));
|
|
155
|
-
}
|
|
156
33
|
});
|
|
157
34
|
});
|
|
158
35
|
const url = `http://localhost:${port}`;
|
|
159
36
|
log(`started (${url})`);
|
|
160
37
|
return {
|
|
161
|
-
close:
|
|
162
|
-
server.close();
|
|
163
|
-
},
|
|
38
|
+
close: () => new Promise((resolve, reject) => server.close((err) => (err ? reject(err) : resolve()))),
|
|
164
39
|
port,
|
|
165
40
|
url,
|
|
166
41
|
};
|
|
167
42
|
}
|
|
168
|
-
function
|
|
43
|
+
async function handleRequest(req, res, session, apiServer) {
|
|
44
|
+
const { resolveMap } = session;
|
|
45
|
+
const requestPath = slash(req.path.substring(1));
|
|
46
|
+
const { packageName, version, filePath } = parseRequestInfo(requestPath);
|
|
47
|
+
const packageEntry = resolveMap[packageName];
|
|
48
|
+
const packagePath = version && packageEntry?.version === version ? packageEntry?.path : packageEntry?.scopedVersions?.[version]?.path;
|
|
49
|
+
const force = req.query.force !== undefined;
|
|
50
|
+
log(`Request: "${packageName}@${version}${filePath}"`);
|
|
51
|
+
// If the package is missing, invalid arguments.
|
|
52
|
+
if (!requestPath || !packageName) {
|
|
53
|
+
log(`Response (400): "${packageName}@${version}${filePath}"`);
|
|
54
|
+
res.status(400).send(`Requests must be in the format "/{packageName}@{version}/path/file.ext".`);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
// If the version is missing, redirect to the primary version.
|
|
58
|
+
if (!version) {
|
|
59
|
+
const resolvedPackage = resolveMap[packageName];
|
|
60
|
+
if (!resolvedPackage) {
|
|
61
|
+
log(`Response (404): Unrecognized package "${packageName}"`);
|
|
62
|
+
res.status(404).send(`Unrecognized package "${packageName}".`);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
res.redirect(`/${packageName}@${resolvedPackage.version}${filePath}`);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
// If it's an unrecognized package, 404.
|
|
69
|
+
if (!packagePath) {
|
|
70
|
+
log(`Response (404): "${packageName}@${version}${filePath}"`);
|
|
71
|
+
res
|
|
72
|
+
.status(404)
|
|
73
|
+
.send(`The requested package "${packageName}@${version}${filePath}" was not found in the resolve map.`);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// Create an identifier for the bundle.
|
|
77
|
+
const isExternal = isExternalPackage(packagePath);
|
|
78
|
+
const bundleId = hash({
|
|
79
|
+
name: packageName,
|
|
80
|
+
version: isExternal ? version : packagePath,
|
|
81
|
+
mode: session.mode,
|
|
82
|
+
});
|
|
83
|
+
// Derive where the output should be.
|
|
84
|
+
const outputPath = path.join(os.tmpdir(), 'cloudpack-output', `${filenamify(packageName)}-${version}-${bundleId}`);
|
|
85
|
+
// Set up for bundling.
|
|
86
|
+
// TODO rename to taskResult
|
|
87
|
+
let action = apiServer.getTask(bundleId);
|
|
88
|
+
const pendingBundle = apiServer.pendingTask(bundleId);
|
|
89
|
+
const restart = action && !isFolder;
|
|
90
|
+
// Does it need to bundle?
|
|
91
|
+
if (!pendingBundle && (!action || restart)) {
|
|
92
|
+
// TODO extract to function
|
|
93
|
+
// also `bundleRequest` appears to be the same thing as `action`
|
|
94
|
+
const bundleRequest = {
|
|
95
|
+
id: bundleId,
|
|
96
|
+
packageName,
|
|
97
|
+
version: version,
|
|
98
|
+
packagePath,
|
|
99
|
+
outputPath,
|
|
100
|
+
isExternal,
|
|
101
|
+
};
|
|
102
|
+
// Start tracking work.
|
|
103
|
+
apiServer.reportStart({
|
|
104
|
+
id: bundleId,
|
|
105
|
+
name: `Bundle ${packageName}@${version}`,
|
|
106
|
+
inputPath: packagePath || '',
|
|
107
|
+
outputPath,
|
|
108
|
+
});
|
|
109
|
+
try {
|
|
110
|
+
log(`No previous action found, bundling: "${packageName}@${version}"`);
|
|
111
|
+
await ensureDir(outputPath);
|
|
112
|
+
log(`Finished ensureDir: "${packageName}@${version}"`);
|
|
113
|
+
log(`Trying to bundle "${packageName}@${version}"`);
|
|
114
|
+
if (restart) {
|
|
115
|
+
// TODO: Implement apiServer.restart
|
|
116
|
+
apiServer.deleteTask(bundleId);
|
|
117
|
+
}
|
|
118
|
+
await apiServer.addTask({
|
|
119
|
+
name: `Bundle ${packageName}@${version}`,
|
|
120
|
+
id: bundleId,
|
|
121
|
+
execute: () => bundleTask(bundleRequest, force),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
catch (_) {
|
|
125
|
+
/* no-op */
|
|
126
|
+
}
|
|
127
|
+
// TODO: if moved to a function, this would be the return value
|
|
128
|
+
action = bundleRequest;
|
|
129
|
+
// TODO: errors and warnings typings don't match up. We need to reconcile.
|
|
130
|
+
apiServer.reportEnd({
|
|
131
|
+
id: bundleId,
|
|
132
|
+
errors: bundleRequest.result?.errors,
|
|
133
|
+
warnings: bundleRequest.result?.warnings,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
else if (pendingBundle) {
|
|
137
|
+
log(`Previous action found, waiting: "${packageName}@${version}${filePath}"`);
|
|
138
|
+
action = await pendingBundle;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
log(`Bundle cached, returning: "${packageName}@${version}${filePath}"`);
|
|
142
|
+
}
|
|
143
|
+
if (!action) {
|
|
144
|
+
res.status(500).send(`Result not found for "${bundleId}". This is likely a bug with cloudpack.`);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
// If this is a pre-built local package we haven't set up for incremental builds, set it up.
|
|
148
|
+
if (!isExternal && !action.dispose) {
|
|
149
|
+
initializeFileWatcher(bundleId, outputPath, action, apiServer);
|
|
150
|
+
}
|
|
151
|
+
// At this point we should have an action completed.
|
|
152
|
+
if ((action.result?.errors?.length || 0) > 0) {
|
|
153
|
+
res.status(500).type('json').send(action);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
log(`Bundle returning: "${packageName}@${version}${filePath}"`);
|
|
157
|
+
// Try to return the result.
|
|
158
|
+
if (isExternal) {
|
|
159
|
+
res.setHeader('Cache-Control', 'public, max-age=31536000');
|
|
160
|
+
}
|
|
161
|
+
res.sendFile(path.join(outputPath, filePath));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function initializeFileWatcher(bundleId, outputPath, bundleRequest, apiServer) {
|
|
169
165
|
const { id, packageName, packagePath, version } = bundleRequest;
|
|
170
166
|
let bundleOutput = bundleRequest.result;
|
|
171
167
|
log(`Initializing file watcher for ${packageName}@${version}`);
|
|
@@ -174,8 +170,7 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
|
|
|
174
170
|
if (!apiServer.pendingTask(id)) {
|
|
175
171
|
bundleRequest.isRebuildRequired = true;
|
|
176
172
|
log(`Detected change "${event}", rebuilding "${packageName}@${version}"`);
|
|
177
|
-
|
|
178
|
-
new Promise(async (resolveIncremental) => {
|
|
173
|
+
(async () => {
|
|
179
174
|
do {
|
|
180
175
|
bundleRequest.isRebuildRequired = false;
|
|
181
176
|
log(`[Start] >> Bundling "${packageName}@${version}" to "${outputPath}"`);
|
|
@@ -183,7 +178,6 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
|
|
|
183
178
|
apiServer.reportStart({
|
|
184
179
|
id: bundleId,
|
|
185
180
|
name: `Rebundle ${packageName}@${version}`,
|
|
186
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
187
181
|
inputPath: packagePath,
|
|
188
182
|
outputPath,
|
|
189
183
|
});
|
|
@@ -200,9 +194,7 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
|
|
|
200
194
|
// TODO: Fix typings
|
|
201
195
|
apiServer.reportEnd({
|
|
202
196
|
id: bundleId,
|
|
203
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
204
197
|
errors: bundleOutput?.errors,
|
|
205
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
206
198
|
warnings: bundleOutput?.warnings,
|
|
207
199
|
});
|
|
208
200
|
log(`[ End ] << Bundled "${packageName}@${version}" (${bundleOutput?.outputFiles?.length || 0} file(s), ${bundleOutput?.errors?.length || 0} errors)`);
|
|
@@ -211,7 +203,8 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
|
|
|
211
203
|
log(`Notifying rebuild: ${packageName}@${version}`);
|
|
212
204
|
apiServer.notifyReload();
|
|
213
205
|
}
|
|
214
|
-
|
|
206
|
+
})().catch((err) => {
|
|
207
|
+
error(`Error rebuilding "${packageName}@${version}":`, err?.stack || err);
|
|
215
208
|
});
|
|
216
209
|
}
|
|
217
210
|
else {
|
|
@@ -221,8 +214,13 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
|
|
|
221
214
|
log(`Detected change "${event}", already waiting for "${packageName}@${version}"`);
|
|
222
215
|
}
|
|
223
216
|
});
|
|
224
|
-
bundleRequest.dispose = () => {
|
|
225
|
-
|
|
217
|
+
bundleRequest.dispose = async () => {
|
|
218
|
+
try {
|
|
219
|
+
await watcher.close();
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
// ignore
|
|
223
|
+
}
|
|
226
224
|
bundleOutput?.dispose?.();
|
|
227
225
|
};
|
|
228
226
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startBundleServer.js","sourceRoot":"","sources":["../../../src/commands/start/startBundleServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"startBundleServer.js","sourceRoot":"","sources":["../../../src/commands/start/startBundleServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ describe('addTask', () => {
|
|
|
26
26
|
});
|
|
27
27
|
it('verify it returns previous pending task with same id', async () => {
|
|
28
28
|
const taskRunner = new TaskRunner();
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
29
30
|
taskRunner.add(tasks[0]);
|
|
30
31
|
// Even though task[0].excute() and task[1].execute() return different strings,
|
|
31
32
|
// since their tasks share id, the task runner will return the promise of the first.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskRunner.test.js","sourceRoot":"","sources":["../../../src/commands/start/taskRunner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAExD,MAAM,KAAK,GAAwB;IACjC;QACE,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;KAC3D;IACD;QACE,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;KAC5D;CACF,CAAC;AAEF,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAEpC,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAEpC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/B,8CAA8C;QAC9C,4CAA4C;QAC5C,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAEpC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzB,+EAA+E;QAC/E,oFAAoF;QACpF,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"taskRunner.test.js","sourceRoot":"","sources":["../../../src/commands/start/taskRunner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAExD,MAAM,KAAK,GAAwB;IACjC;QACE,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;KAC3D;IACD;QACE,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;KAC5D;CACF,CAAC;AAEF,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAEpC,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAEpC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/B,8CAA8C;QAC9C,4CAA4C;QAC5C,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAEpC,mEAAmE;QACnE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzB,+EAA+E;QAC/E,oFAAoF;QACpF,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -13,7 +13,7 @@ export async function start() {
|
|
|
13
13
|
program.name('cloudpack').version(getVersion()).usage('<command> [options]');
|
|
14
14
|
const commands = glob.sync('commands/*/index.js', { cwd: currentPath });
|
|
15
15
|
for (const commandPath of commands) {
|
|
16
|
-
const command = await import(pathToFileURL(path.resolve(currentPath, commandPath)).toString());
|
|
16
|
+
const command = (await import(pathToFileURL(path.resolve(currentPath, commandPath)).toString()));
|
|
17
17
|
command.init(program);
|
|
18
18
|
}
|
|
19
19
|
program.parse(process.argv);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IAExE,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE;QAClC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IAExE,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE;QAClC,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAE9F,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvB;IAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,CAAC,IAAI,EAAE,CAAC;KAChB;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "The Cloudpack command line interface - a tool for managing fast inner and outer looping in web apps.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
"cloudpack": "./lib/cloudpack.js"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@ms-cloudpack/bundler": "^0.
|
|
19
|
+
"@ms-cloudpack/bundler": "^0.4.1",
|
|
20
20
|
"@ms-cloudpack/create-express-app": "^0.1.0",
|
|
21
21
|
"@ms-cloudpack/data-bus": "^0.1.0",
|
|
22
22
|
"@ms-cloudpack/json-utilities": "^0.0.3",
|
|
23
23
|
"@ms-cloudpack/overlay": "^0.1.1",
|
|
24
|
-
"@ms-cloudpack/package-utilities": "^0.
|
|
25
|
-
"@ms-cloudpack/path-utilities": "^0.
|
|
24
|
+
"@ms-cloudpack/package-utilities": "^0.10.0",
|
|
25
|
+
"@ms-cloudpack/path-utilities": "^0.4.0",
|
|
26
26
|
"chokidar": "^3.5.3",
|
|
27
27
|
"commander": "^9.1.0",
|
|
28
28
|
"filenamify": "^5.1.0",
|