@ms-cloudpack/cli 0.9.0 → 0.10.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 CHANGED
@@ -2,7 +2,65 @@
2
2
  "name": "@ms-cloudpack/cli",
3
3
  "entries": [
4
4
  {
5
- "date": "Tue, 13 Sep 2022 08:15:36 GMT",
5
+ "date": "Wed, 21 Sep 2022 08:14:52 GMT",
6
+ "tag": "@ms-cloudpack/cli_v0.10.1",
7
+ "version": "0.10.1",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "beachball",
12
+ "package": "@ms-cloudpack/cli",
13
+ "comment": "Bump @ms-cloudpack/bundler to v0.4.2",
14
+ "commit": "edaf39b3a641d469b5238c446b23e25399714ebd"
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@ms-cloudpack/cli",
19
+ "comment": "Bump @ms-cloudpack/package-utilities to v0.11.0",
20
+ "commit": "edaf39b3a641d469b5238c446b23e25399714ebd"
21
+ },
22
+ {
23
+ "author": "beachball",
24
+ "package": "@ms-cloudpack/cli",
25
+ "comment": "Bump @ms-cloudpack/path-utilities to v0.5.0",
26
+ "commit": "edaf39b3a641d469b5238c446b23e25399714ebd"
27
+ }
28
+ ]
29
+ }
30
+ },
31
+ {
32
+ "date": "Tue, 20 Sep 2022 08:13:46 GMT",
33
+ "tag": "@ms-cloudpack/cli_v0.10.0",
34
+ "version": "0.10.0",
35
+ "comments": {
36
+ "patch": [
37
+ {
38
+ "author": "dake.3601@gmail.com",
39
+ "package": "@ms-cloudpack/cli",
40
+ "commit": "d5ebdee5d00d56b153b4de0851665cb02189694a",
41
+ "comment": "Only one watcher per bundle task"
42
+ }
43
+ ],
44
+ "minor": [
45
+ {
46
+ "author": "dake.3601@gmail.com",
47
+ "package": "@ms-cloudpack/cli",
48
+ "commit": "bc64187802ecacd4098c99cdf308aa6bd2fc6f7f",
49
+ "comment": "Improved task watcher and data flow"
50
+ }
51
+ ],
52
+ "none": [
53
+ {
54
+ "author": "elcraig@microsoft.com",
55
+ "package": "@ms-cloudpack/cli",
56
+ "commit": "52b4314b694af37388821ff5b8a3b16f61b8dc8f",
57
+ "comment": "Hoist commonly used devDependencies to the repo root"
58
+ }
59
+ ]
60
+ }
61
+ },
62
+ {
63
+ "date": "Tue, 13 Sep 2022 08:15:44 GMT",
6
64
  "tag": "@ms-cloudpack/cli_v0.9.0",
7
65
  "version": "0.9.0",
8
66
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,34 @@
1
1
  # Change Log - @ms-cloudpack/cli
2
2
 
3
- This log was last generated on Tue, 13 Sep 2022 08:15:36 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 21 Sep 2022 08:14:52 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.10.1
8
+
9
+ Wed, 21 Sep 2022 08:14:52 GMT
10
+
11
+ ### Patches
12
+
13
+ - Bump @ms-cloudpack/bundler to v0.4.2
14
+ - Bump @ms-cloudpack/package-utilities to v0.11.0
15
+ - Bump @ms-cloudpack/path-utilities to v0.5.0
16
+
17
+ ## 0.10.0
18
+
19
+ Tue, 20 Sep 2022 08:13:46 GMT
20
+
21
+ ### Minor changes
22
+
23
+ - Improved task watcher and data flow (dake.3601@gmail.com)
24
+
25
+ ### Patches
26
+
27
+ - Only one watcher per bundle task (dake.3601@gmail.com)
28
+
7
29
  ## 0.9.0
8
30
 
9
- Tue, 13 Sep 2022 08:15:36 GMT
31
+ Tue, 13 Sep 2022 08:15:44 GMT
10
32
 
11
33
  ### Minor changes
12
34
 
@@ -1,11 +1,4 @@
1
- export interface Task<TReturn> {
2
- name: string;
3
- id: string;
4
- execute: () => Promise<TReturn>;
5
- }
6
- export interface TaskOptions {
7
- rerun?: boolean;
8
- }
1
+ import type { Task, TaskOptions } from './types.js';
9
2
  /**
10
3
  * TaskRunner class manages the state of Tasks.
11
4
  * This class is to be called by the api server.
@@ -23,13 +16,4 @@ export declare class TaskRunner {
23
16
  * Rerun flag forces the Task to be run again.
24
17
  */
25
18
  add<TReturn>(task: Task<TReturn>, options?: TaskOptions): Promise<TReturn>;
26
- /**
27
- * Returns result from completed Task with id.
28
- * TODO: rename to getResult?
29
- */
30
- get<TReturn>(id: string): TReturn | undefined;
31
- /**
32
- * Returns if Task with id is pending.
33
- */
34
- pending<TReturn>(id: string): Promise<TReturn> | undefined;
35
19
  }
@@ -71,18 +71,5 @@ export class TaskRunner {
71
71
  this._completedTasks.delete(id);
72
72
  return resultPromise;
73
73
  }
74
- /**
75
- * Returns result from completed Task with id.
76
- * TODO: rename to getResult?
77
- */
78
- get(id) {
79
- return this._completedTasks.get(id);
80
- }
81
- /**
82
- * Returns if Task with id is pending.
83
- */
84
- pending(id) {
85
- return this._pendingTasks.get(id);
86
- }
87
74
  }
88
75
  //# sourceMappingURL=TaskRunner.js.map
@@ -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;AAYF;;;GAGG;AACH,MAAM,OAAO,UAAU;IAQrB;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;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAU,IAAmB,EAAE,OAAqB;QACrD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEhC,2DAA2D;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAwB,CAAC;QACnE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;YAClC,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,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC7B;YACD,GAAG,CAAC,oCAAoC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YACvD,OAAO,OAAO,CAAC;SAChB;QAED,MAAM,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE;YAChC,IAAI,UAA+B,CAAC;YACpC,IAAI,SAAkB,CAAC;YACvB,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,GAAG;gBACD,uCAAuC;gBACvC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI;oBACF,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC5C,SAAS,GAAG,IAAI,CAAC;oBACjB,8CAA8C;oBAC9C,2CAA2C;iBAC5C;gBAAC,OAAO,GAAG,EAAE;oBACZ,wEAAwE;oBACxE,SAAS,GAAG,GAAG,CAAC;iBACjB;aACF,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAEtC,GAAG,CAAC,mBAAmB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YAEtC,4BAA4B;YAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE9B,IAAI,SAAS,EAAE;gBACb,yBAAyB;gBACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBACzC,uBAAuB;gBACvB,OAAO,UAAqB,CAAC;aAC9B;YAED,0EAA0E;YAC1E,MAAM,SAAS,CAAC;QAClB,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEhC,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;CACF"}
1
+ {"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../../../src/commands/start/TaskRunner.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAI7B,MAAM,GAAG,GAAG,CAAC,GAAG,QAAmB,EAAE,EAAE;IACrC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,UAAU;IAQrB;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;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAU,IAAmB,EAAE,OAAqB;QACrD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEhC,2DAA2D;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAwB,CAAC;QACnE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;YAClC,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,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC7B;YACD,GAAG,CAAC,oCAAoC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YACvD,OAAO,OAAO,CAAC;SAChB;QAED,MAAM,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE;YAChC,IAAI,UAA+B,CAAC;YACpC,IAAI,SAAkB,CAAC;YACvB,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,GAAG;gBACD,uCAAuC;gBACvC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI;oBACF,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC5C,SAAS,GAAG,IAAI,CAAC;oBACjB,8CAA8C;oBAC9C,2CAA2C;iBAC5C;gBAAC,OAAO,GAAG,EAAE;oBACZ,wEAAwE;oBACxE,SAAS,GAAG,GAAG,CAAC;iBACjB;aACF,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAEtC,GAAG,CAAC,mBAAmB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YAEtC,4BAA4B;YAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE9B,IAAI,SAAS,EAAE;gBACb,yBAAyB;gBACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBACzC,uBAAuB;gBACvB,OAAO,UAAqB,CAAC;aAC9B;YAED,0EAA0E;YAC1E,MAAM,SAAS,CAAC;QAClB,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEhC,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import type { BundleRequest, BundleTaskOptions, Task } from './types.js';
2
+ export declare function bundle(bundleRequest: BundleRequest, force?: boolean): Promise<BundleRequest>;
3
+ export declare function createBundleTask(bundleRequest: BundleRequest, options?: BundleTaskOptions): Task<BundleRequest>;
@@ -0,0 +1,65 @@
1
+ import { bundlePackage } from '@ms-cloudpack/bundler';
2
+ import { readJson, writeJson } from '@ms-cloudpack/json-utilities';
3
+ import path from 'path';
4
+ import fsExtra from 'fs-extra';
5
+ const { ensureDir } = fsExtra;
6
+ const log = (...messages) => {
7
+ console.log(`BundleTask:`, ...messages);
8
+ };
9
+ export async function bundle(bundleRequest, force) {
10
+ const { packagePath, outputPath, isExternal } = bundleRequest;
11
+ // Rehydrate the result if not incremental.
12
+ if (isExternal && !force) {
13
+ bundleRequest.result = await readJson(path.join(outputPath, 'result.json'));
14
+ }
15
+ const isCacheUsable = bundleRequest.result?.errors?.length === 0;
16
+ // Only use cached result if it's successful.
17
+ if (!isCacheUsable) {
18
+ bundleRequest.result = await bundlePackage({
19
+ packagePath,
20
+ outputPath,
21
+ outputType: 'library',
22
+ incremental: !isExternal,
23
+ });
24
+ // Write the result to disk.
25
+ if (isExternal) {
26
+ await writeJson(path.join(outputPath, 'result.json'), bundleRequest.result);
27
+ }
28
+ }
29
+ else {
30
+ log(`Bundle cached, returning: "${bundleRequest.packageName}@${bundleRequest.version}"`);
31
+ }
32
+ return bundleRequest;
33
+ }
34
+ export function createBundleTask(bundleRequest, options) {
35
+ const { id, packageName, version, outputPath, packagePath } = bundleRequest;
36
+ const { force, rebuild } = options || {};
37
+ return {
38
+ name: `Bundle ${packageName}@${version}`,
39
+ id,
40
+ async execute() {
41
+ let bundleResult = bundleRequest;
42
+ await ensureDir(outputPath);
43
+ log(`Finished ensureDir: "${packageName}@${version}"`);
44
+ if (rebuild && bundleRequest.result?.rebuild) {
45
+ bundleResult.result = await bundleRequest.result.rebuild();
46
+ }
47
+ else {
48
+ bundleResult = await bundle(bundleRequest, force);
49
+ }
50
+ return bundleResult;
51
+ },
52
+ getStartDescription: () => ({
53
+ id,
54
+ name: `Bundle ${packageName}@${version}`,
55
+ inputPath: packagePath || '',
56
+ outputPath,
57
+ }),
58
+ getEndDescription: (taskResult) => ({
59
+ id,
60
+ errors: taskResult?.result?.errors,
61
+ warnings: taskResult?.result?.warnings,
62
+ }),
63
+ };
64
+ }
65
+ //# sourceMappingURL=createBundleTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBundleTask.js","sourceRoot":"","sources":["../../../src/commands/start/createBundleTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;AAE9B,MAAM,GAAG,GAAG,CAAC,GAAG,QAAmB,EAAE,EAAE;IACrC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,aAA4B,EAAE,KAAe;IACxE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;IAE9D,2CAA2C;IAC3C,IAAI,UAAU,IAAI,CAAC,KAAK,EAAE;QACxB,aAAa,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;KAC7E;IAED,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC;IAEjE,6CAA6C;IAC7C,IAAI,CAAC,aAAa,EAAE;QAClB,aAAa,CAAC,MAAM,GAAG,MAAM,aAAa,CAAC;YACzC,WAAW;YACX,UAAU;YACV,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,CAAC,UAAU;SACzB,CAAC,CAAC;QAEH,4BAA4B;QAC5B,IAAI,UAAU,EAAE;YACd,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;SAC7E;KACF;SAAM;QACL,GAAG,CAAC,8BAA8B,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC;KAC1F;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,aAA4B,EAAE,OAA2B;IACxF,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC;IAC5E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,UAAU,WAAW,IAAI,OAAO,EAAE;QACxC,EAAE;QACF,KAAK,CAAC,OAAO;YACX,IAAI,YAAY,GAAG,aAAa,CAAC;YAEjC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;YAE5B,GAAG,CAAC,wBAAwB,WAAW,IAAI,OAAO,GAAG,CAAC,CAAC;YAEvD,IAAI,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE;gBAC5C,YAAY,CAAC,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aAC5D;iBAAM;gBACL,YAAY,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;aACnD;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,EAAE;YACF,IAAI,EAAE,UAAU,WAAW,IAAI,OAAO,EAAE;YACxC,SAAS,EAAE,WAAW,IAAI,EAAE;YAC5B,UAAU;SACX,CAAC;QACF,iBAAiB,EAAE,CAAC,UAAU,EAAE,EAAE,CAChC,CAAC;YACC,EAAE;YACF,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;YAClC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ;SAChB,CAAA;KAC3B,CAAC;AACJ,CAAC"}
@@ -1,51 +1,4 @@
1
- import type { Session } from './types.js';
2
- import type { Task, TaskOptions } from './TaskRunner.js';
3
- export interface SessionStats {
4
- status: 'idle' | 'pending';
5
- remainingTasks: number;
6
- totalTasks: number;
7
- totalErrors: number;
8
- totalWarnings: number;
9
- }
10
- export interface ApiServer {
11
- url: string;
12
- port: number;
13
- notifyReload: () => void;
14
- reportStart: (options: TaskStartDescription) => void;
15
- reportEnd: (options: TaskEndDescription) => void;
16
- addTask: <TReturn>(task: Task<TReturn>, options?: TaskOptions) => Promise<TReturn>;
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;
22
- close: () => Promise<void>;
23
- }
24
- export interface TaskError {
25
- message: string;
26
- pluginName: string;
27
- stack: string;
28
- fileLocation: string;
29
- lineNumber: number;
30
- columnNumber: number;
31
- }
32
- export interface TaskStartDescription {
33
- id: string;
34
- name: string;
35
- inputPath: string;
36
- outputPath: string;
37
- }
38
- export interface TaskEndDescription {
39
- id: string;
40
- errors?: TaskError[];
41
- warnings?: TaskError[];
42
- }
43
- export interface TaskDescription extends TaskStartDescription, TaskEndDescription {
44
- status: 'pending' | 'complete';
45
- startTime: number;
46
- durationMilliseconds?: number;
47
- lastUpdated?: number;
48
- }
1
+ import type { ApiServer, Session } from './types.js';
49
2
  /**
50
3
  * The api server handles the data pub/sub (for things like reporting build status)
51
4
  * and hosting the dashboard verb backend (for executing actions like loading vscode,
@@ -31,6 +31,47 @@ export async function startApiServer({ session }) {
31
31
  };
32
32
  const allTasks = new Map();
33
33
  const taskRunner = new TaskRunner();
34
+ function reportStart(taskStart) {
35
+ const previousResult = allTasks.get(taskStart.id);
36
+ const now = new Date().getTime();
37
+ if (!previousResult) {
38
+ sessionStats.totalTasks++;
39
+ }
40
+ if (previousResult?.status === 'complete') {
41
+ sessionStats.totalErrors -= previousResult.errors?.length || 0;
42
+ sessionStats.totalWarnings -= previousResult.warnings?.length || 0;
43
+ }
44
+ sessionStats.remainingTasks++;
45
+ sessionStats.status = 'pending';
46
+ allTasks.set(taskStart.id, {
47
+ ...taskStart,
48
+ status: 'pending',
49
+ startTime: now,
50
+ });
51
+ bus.publish([session.id, 'status'], sessionStats);
52
+ bus.publish([session.id, 'status-details'], { tasks: Array.from(allTasks.values()) });
53
+ }
54
+ function reportEnd(taskEnd) {
55
+ const previousResult = allTasks.get(taskEnd.id);
56
+ const now = new Date().getTime();
57
+ if (previousResult) {
58
+ sessionStats.remainingTasks--;
59
+ sessionStats.totalErrors += taskEnd.errors?.length || 0;
60
+ sessionStats.totalWarnings += taskEnd.warnings?.length || 0;
61
+ allTasks.set(taskEnd.id, {
62
+ ...previousResult,
63
+ ...taskEnd,
64
+ status: 'complete',
65
+ durationMilliseconds: now - previousResult.startTime,
66
+ lastUpdated: now,
67
+ });
68
+ if (sessionStats.remainingTasks === 0) {
69
+ sessionStats.status = 'idle';
70
+ }
71
+ bus.publish([session.id, 'status'], sessionStats);
72
+ bus.publish([session.id, 'status-details'], { tasks: Array.from(allTasks.values()) });
73
+ }
74
+ }
34
75
  bus.publish([session.id, 'status'], sessionStats);
35
76
  // Create a websocket server which listens for subscriptions and verb requests,
36
77
  // and broadcasts the data to all connected clients.
@@ -109,55 +150,28 @@ export async function startApiServer({ session }) {
109
150
  }
110
151
  });
111
152
  },
112
- reportStart(taskStart) {
113
- const previousResult = allTasks.get(taskStart.id);
114
- const now = new Date().getTime();
115
- if (!previousResult) {
116
- sessionStats.totalTasks++;
117
- }
118
- if (previousResult?.status === 'complete') {
119
- sessionStats.totalErrors -= previousResult.errors?.length || 0;
120
- sessionStats.totalWarnings -= previousResult.warnings?.length || 0;
121
- }
122
- sessionStats.remainingTasks++;
123
- sessionStats.status = 'pending';
124
- allTasks.set(taskStart.id, {
125
- ...taskStart,
126
- status: 'pending',
127
- startTime: now,
128
- });
129
- bus.publish([session.id, 'status'], sessionStats);
130
- bus.publish([session.id, 'status-details'], { tasks: Array.from(allTasks.values()) });
131
- },
132
- reportEnd: (end) => {
133
- const previousResult = allTasks.get(end.id);
134
- const now = new Date().getTime();
135
- if (previousResult) {
136
- sessionStats.remainingTasks--;
137
- sessionStats.totalErrors += end.errors?.length || 0;
138
- sessionStats.totalWarnings += end.warnings?.length || 0;
139
- allTasks.set(end.id, {
140
- ...previousResult,
141
- ...end,
142
- status: 'complete',
143
- durationMilliseconds: now - previousResult.startTime,
144
- lastUpdated: now,
145
- });
146
- if (sessionStats.remainingTasks === 0) {
147
- sessionStats.status = 'idle';
148
- }
149
- bus.publish([session.id, 'status'], sessionStats);
150
- bus.publish([session.id, 'status-details'], { tasks: Array.from(allTasks.values()) });
151
- }
152
- },
153
153
  addTask: (task, options) => {
154
- return taskRunner.add(task, options);
155
- },
156
- getTask: (id) => {
157
- return taskRunner.get(id);
158
- },
159
- pendingTask: (id) => {
160
- return taskRunner.pending(id);
154
+ return taskRunner.add({
155
+ ...task,
156
+ execute: async () => {
157
+ reportStart({
158
+ ...task.getStartDescription?.(),
159
+ id: task.id,
160
+ });
161
+ let taskResult;
162
+ try {
163
+ taskResult = await task.execute();
164
+ }
165
+ catch (err) {
166
+ // no-op
167
+ }
168
+ reportEnd({
169
+ ...task.getEndDescription?.(taskResult),
170
+ id: task.id,
171
+ });
172
+ return taskResult;
173
+ },
174
+ }, options);
161
175
  },
162
176
  close: () => new Promise((resolve, reject) => server.close((err) => (err ? reject(err) : resolve()))),
163
177
  };
@@ -1 +1 @@
1
- {"version":3,"file":"startApiServer.js","sourceRoot":"","sources":["../../../src/commands/start/startApiServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startApiServer.js","sourceRoot":"","sources":["../../../src/commands/start/startApiServer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,4 @@
1
- import type { Session } from './types.js';
2
- import type { ApiServer } from './startApiServer.js';
3
- import type { BundleServer } from './startBundleServer.js';
1
+ import type { ApiServer, BundleServer, Session } from './types.js';
4
2
  /**
5
3
  * The app server hosts the appropriate routes for the web app, primarily returning html content
6
4
  * which loads resources from the bundle server.
@@ -1 +1 @@
1
- {"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../src/commands/start/startAppServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../src/commands/start/startAppServer.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,4 @@
1
- import type { Session } from './types.js';
2
- import type { ApiServer } from './startApiServer.js';
3
- export interface BundleServer {
4
- url: string;
5
- port: number;
6
- close: () => Promise<void>;
7
- }
1
+ import type { ApiServer, BundleServer, Session } from './types.js';
8
2
  /**
9
3
  * The bundle server handles package requests and returns bundled resources.
10
4
  * Resources are bundled on demand and cached locally to avoid re-bundling
@@ -2,14 +2,12 @@ import { createExpressApp } from '@ms-cloudpack/create-express-app';
2
2
  import { isExternalPackage } from '@ms-cloudpack/package-utilities';
3
3
  import { isFolder, slash } from '@ms-cloudpack/path-utilities';
4
4
  import filenamify from 'filenamify';
5
- import fsExtra from 'fs-extra';
6
5
  import hash from 'object-hash';
7
6
  import os from 'os';
8
7
  import path from 'path';
9
8
  import { parseRequestInfo } from './parseRequestInfo.js';
10
- import chokidar from 'chokidar';
11
- import { bundleTask } from './bundleTask.js';
12
- const { ensureDir } = fsExtra;
9
+ import { createBundleTask } from './createBundleTask.js';
10
+ import { startWatcher } from './startWatcher.js';
13
11
  // const bundleLookupPath = path.join(os.tmpdir(), 'cloudpack-output', 'all-bundles.json');
14
12
  const log = (...messages) => {
15
13
  console.log(`BundleServer:`, ...messages);
@@ -23,10 +21,11 @@ const error = (...messages) => {
23
21
  * on each request.
24
22
  */
25
23
  export async function startBundleServer({ session, apiServer, }) {
24
+ const watcher = startWatcher(apiServer);
26
25
  const { server, port } = await createExpressApp([5500, 5501, 5502, 5503], (app) => {
27
26
  // Set up the express app routes.
28
27
  app.get('*', (req, res) => {
29
- handleRequest(req, res, session, apiServer).catch((err) => {
28
+ handleRequest(req, res, session, apiServer, watcher).catch((err) => {
30
29
  error(err?.stack || err);
31
30
  res.status(500).send(`Error bundling: ${err}`);
32
31
  });
@@ -40,7 +39,7 @@ export async function startBundleServer({ session, apiServer, }) {
40
39
  url,
41
40
  };
42
41
  }
43
- async function handleRequest(req, res, session, apiServer) {
42
+ async function handleRequest(req, res, session, apiServer, watcher) {
44
43
  const { resolveMap } = session;
45
44
  const requestPath = slash(req.path.substring(1));
46
45
  const { packageName, version, filePath } = parseRequestInfo(requestPath);
@@ -83,61 +82,20 @@ async function handleRequest(req, res, session, apiServer) {
83
82
  // Derive where the output should be.
84
83
  const outputPath = path.join(os.tmpdir(), 'cloudpack-output', `${filenamify(packageName)}-${version}-${bundleId}`);
85
84
  // Set up for bundling.
86
- let taskResult = apiServer.getTask(bundleId);
87
- const rerun = force || (taskResult && !isFolder(outputPath));
88
- // Does it need to bundle?
89
- if (!taskResult || rerun) {
90
- // TODO extract to function
91
- // also `bundleRequest` appears to be the same thing as `taskResult`
92
- const bundleRequest = {
93
- id: bundleId,
94
- packageName,
95
- version: version,
96
- packagePath,
97
- outputPath,
98
- isExternal,
99
- };
100
- // Start tracking work.
101
- apiServer.reportStart({
102
- id: bundleId,
103
- name: `Bundle ${packageName}@${version}`,
104
- inputPath: packagePath || '',
105
- outputPath,
106
- });
107
- try {
108
- log(`No previous task result found, bundling: "${packageName}@${version}"`);
109
- await ensureDir(outputPath);
110
- log(`Finished ensureDir: "${packageName}@${version}"`);
111
- log(`Trying to bundle "${packageName}@${version}"`);
112
- await apiServer.addTask({
113
- name: `Bundle ${packageName}@${version}`,
114
- id: bundleId,
115
- execute: () => bundleTask(bundleRequest, force),
116
- }, { rerun });
117
- }
118
- catch (_) {
119
- /* no-op */
120
- }
121
- // TODO: if moved to a function, this would be the return value
122
- taskResult = bundleRequest;
123
- // TODO: errors and warnings typings don't match up. We need to reconcile.
124
- apiServer.reportEnd({
125
- id: bundleId,
126
- errors: bundleRequest.result?.errors,
127
- warnings: bundleRequest.result?.warnings,
128
- });
129
- }
130
- else {
131
- log(`Bundle cached, returning: "${packageName}@${version}${filePath}"`);
132
- }
133
- if (!taskResult) {
134
- res.status(500).send(`Result not found for "${bundleId}". This is likely a bug with cloudpack.`);
135
- return;
136
- }
137
- // If this is a pre-built local package we haven't set up for incremental builds, set it up.
138
- if (!isExternal && !taskResult.dispose) {
139
- initializeFileWatcher(bundleId, outputPath, taskResult, apiServer);
140
- }
85
+ const rerun = !isFolder(outputPath) || force;
86
+ const taskResult = {
87
+ id: bundleId,
88
+ packageName,
89
+ version,
90
+ packagePath,
91
+ outputPath,
92
+ isExternal,
93
+ };
94
+ log(`Trying to bundle "${packageName}@${version}"`);
95
+ const bundleTask = createBundleTask(taskResult, { force });
96
+ await apiServer.addTask(bundleTask, { rerun });
97
+ // Set up the task's watcher
98
+ watcher.watch(taskResult);
141
99
  // At this point we should have a Task completed.
142
100
  if ((taskResult.result?.errors?.length || 0) > 0) {
143
101
  res.status(500).type('json').send(taskResult);
@@ -151,67 +109,4 @@ async function handleRequest(req, res, session, apiServer) {
151
109
  res.sendFile(path.join(outputPath, filePath));
152
110
  }
153
111
  }
154
- function initializeFileWatcher(bundleId, outputPath, bundleRequest, apiServer) {
155
- const { id, packageName, packagePath, version } = bundleRequest;
156
- let bundleOutput = bundleRequest.result;
157
- log(`Initializing file watcher for ${packageName}@${version}`);
158
- // TODO: This is a bit of a hack. We should be able to use the watch API, but it doesn't seem to work.
159
- const watcher = chokidar.watch(path.join(packagePath, 'src')).on('change', (event) => {
160
- if (!apiServer.pendingTask(id)) {
161
- bundleRequest.isRebuildRequired = true;
162
- log(`Detected change "${event}", rebuilding "${packageName}@${version}"`);
163
- (async () => {
164
- do {
165
- bundleRequest.isRebuildRequired = false;
166
- log(`[Start] >> Bundling "${packageName}@${version}" to "${outputPath}"`);
167
- // Start tracking work.
168
- apiServer.reportStart({
169
- id: bundleId,
170
- name: `Rebundle ${packageName}@${version}`,
171
- inputPath: packagePath,
172
- outputPath,
173
- });
174
- if (!bundleOutput?.rebuild) {
175
- bundleOutput = (await apiServer.addTask({
176
- name: `Bundle ${packageName}@${version}`,
177
- id: bundleId,
178
- execute: () => bundleTask(bundleRequest),
179
- }))?.result;
180
- }
181
- else if (bundleOutput?.rebuild) {
182
- bundleOutput = await bundleOutput.rebuild();
183
- }
184
- // TODO: Fix typings
185
- apiServer.reportEnd({
186
- id: bundleId,
187
- errors: bundleOutput?.errors,
188
- warnings: bundleOutput?.warnings,
189
- });
190
- log(`[ End ] << Bundled "${packageName}@${version}" (${bundleOutput?.outputFiles?.length || 0} file(s), ${bundleOutput?.errors?.length || 0} errors)`);
191
- } while (bundleRequest.isRebuildRequired);
192
- if (!bundleOutput?.errors?.length) {
193
- log(`Notifying rebuild: ${packageName}@${version}`);
194
- apiServer.notifyReload();
195
- }
196
- })().catch((err) => {
197
- error(`Error rebuilding "${packageName}@${version}":`, err?.stack || err);
198
- });
199
- }
200
- else {
201
- // A change was made while we were bundling. We need to wait for the current
202
- // bundle to finish before we can rebuild.
203
- bundleRequest.isRebuildRequired = true;
204
- log(`Detected change "${event}", already waiting for "${packageName}@${version}"`);
205
- }
206
- });
207
- bundleRequest.dispose = async () => {
208
- try {
209
- await watcher.close();
210
- }
211
- catch {
212
- // ignore
213
- }
214
- bundleOutput?.dispose?.();
215
- };
216
- }
217
112
  //# sourceMappingURL=startBundleServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startBundleServer.js","sourceRoot":"","sources":["../../../src/commands/start/startBundleServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startBundleServer.js","sourceRoot":"","sources":["../../../src/commands/start/startBundleServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ApiServer, BundleRequest } from './types.js';
2
+ export declare function startWatcher(apiServer: ApiServer): {
3
+ watch: (bundleRequest: BundleRequest) => void;
4
+ };
@@ -0,0 +1,52 @@
1
+ import path from 'path';
2
+ import chokidar from 'chokidar';
3
+ import { createBundleTask } from './createBundleTask.js';
4
+ const log = (...messages) => {
5
+ console.log(`BundleWatcher:`, ...messages);
6
+ };
7
+ const error = (...messages) => {
8
+ console.error(`BundleWatcher:`, ...messages);
9
+ };
10
+ export function startWatcher(apiServer) {
11
+ const watched = new Set();
12
+ return {
13
+ watch: (bundleRequest) => {
14
+ // Have a single watcher per bundle request.
15
+ if (watched.has(bundleRequest.id)) {
16
+ return;
17
+ }
18
+ watched.add(bundleRequest.id);
19
+ const { packageName, version, packagePath, outputPath } = bundleRequest;
20
+ log(`Initializing file watcher for ${packageName}@${version}`);
21
+ // TODO: This is a bit of a hack. We should be able to use the watch API, but it doesn't seem to work.
22
+ const watcher = chokidar.watch(path.join(packagePath, 'src')).on('change', async (event) => {
23
+ log(`Detected change "${event}", rebuilding "${packageName}@${version}"`);
24
+ log(`[Start] >> Bundling "${packageName}@${version}" to "${outputPath}"`);
25
+ // Start tracking work.
26
+ try {
27
+ bundleRequest.result = (await apiServer.addTask(createBundleTask(bundleRequest, { rebuild: true }), { rerun: true })).result;
28
+ }
29
+ catch (err) {
30
+ // TODO: Handle errors.
31
+ error(`Error rebuilding "${packageName}@${version}":`, err?.stack || err);
32
+ }
33
+ log(`[ End ] << Bundled "${packageName}@${version}" (${bundleRequest.result?.outputFiles?.length || 0} file(s), ${bundleRequest.result?.errors?.length || 0} errors)`);
34
+ if (!bundleRequest.result?.errors?.length) {
35
+ log(`Notifying rebuild: ${packageName}@${version}`);
36
+ apiServer.notifyReload();
37
+ }
38
+ });
39
+ bundleRequest.dispose = async () => {
40
+ try {
41
+ await watcher.close();
42
+ }
43
+ catch {
44
+ // ignore
45
+ }
46
+ watched.delete(bundleRequest.id);
47
+ bundleRequest.result?.dispose?.();
48
+ };
49
+ },
50
+ };
51
+ }
52
+ //# sourceMappingURL=startWatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startWatcher.js","sourceRoot":"","sources":["../../../src/commands/start/startWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,GAAG,GAAG,CAAC,GAAG,QAAmB,EAAE,EAAE;IACrC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,GAAG,QAAmB,EAAE,EAAE;IACvC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,SAAoB;IAC/C,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAE,CAAC;IAEvC,OAAO;QACL,KAAK,EAAE,CAAC,aAA4B,EAAE,EAAE;YACtC,4CAA4C;YAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;gBACjC,OAAO;aACR;YAED,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;YAExE,GAAG,CAAC,iCAAiC,WAAW,IAAI,OAAO,EAAE,CAAC,CAAC;YAE/D,sGAAsG;YACtG,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;gBACjG,GAAG,CAAC,oBAAoB,KAAK,kBAAkB,WAAW,IAAI,OAAO,GAAG,CAAC,CAAC;gBAC1E,GAAG,CAAC,wBAAwB,WAAW,IAAI,OAAO,SAAS,UAAU,GAAG,CAAC,CAAC;gBAC1E,uBAAuB;gBACvB,IAAI;oBACF,aAAa,CAAC,MAAM,GAAG,CACrB,MAAM,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC7F,CAAC,MAAM,CAAC;iBACV;gBAAC,OAAO,GAAG,EAAE;oBACZ,uBAAuB;oBACvB,KAAK,CAAC,qBAAqB,WAAW,IAAI,OAAO,IAAI,EAAG,GAAa,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;iBACtF;gBACD,GAAG,CACD,uBAAuB,WAAW,IAAI,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,aAC/F,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAC1C,UAAU,CACX,CAAC;gBAEF,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;oBACzC,GAAG,CAAC,sBAAsB,WAAW,IAAI,OAAO,EAAE,CAAC,CAAC;oBACpD,SAAS,CAAC,YAAY,EAAE,CAAC;iBAC1B;YACH,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;gBACjC,IAAI;oBACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;iBACvB;gBAAC,MAAM;oBACN,SAAS;iBACV;gBAED,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAEjC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YACpC,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"taskRunner.test.js","sourceRoot":"","sources":["../../../src/commands/start/taskRunner.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taskRunner.test.js","sourceRoot":"","sources":["../../../src/commands/start/taskRunner.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ResolveMap } from '@ms-cloudpack/package-utilities';
2
+ import type { BundlerResult } from '@ms-cloudpack/bundler-types';
2
3
  export interface Session {
3
4
  /**
4
5
  * The session id, used for identifying
@@ -27,3 +28,78 @@ export interface Session {
27
28
  */
28
29
  resolveMap: ResolveMap;
29
30
  }
31
+ /**
32
+ * Tracks a given bundle request and its result.
33
+ */
34
+ export interface BundleRequest {
35
+ id: string;
36
+ packageName: string;
37
+ version: string;
38
+ packagePath: string;
39
+ outputPath: string;
40
+ isExternal: boolean;
41
+ result?: BundlerResult;
42
+ isRebuildRequired?: boolean;
43
+ dispose?: () => Promise<void>;
44
+ }
45
+ export interface BundleTaskOptions {
46
+ force?: boolean;
47
+ rebuild?: boolean;
48
+ }
49
+ export interface BundleServer {
50
+ url: string;
51
+ port: number;
52
+ close: () => Promise<void>;
53
+ }
54
+ export interface SessionStats {
55
+ status: 'idle' | 'pending';
56
+ remainingTasks: number;
57
+ totalTasks: number;
58
+ totalErrors: number;
59
+ totalWarnings: number;
60
+ }
61
+ export interface ApiServer {
62
+ url: string;
63
+ port: number;
64
+ notifyReload: () => void;
65
+ addTask: <TReturn>(task: Task<TReturn>, options?: TaskOptions) => Promise<TReturn>;
66
+ close: () => Promise<void>;
67
+ }
68
+ export interface Watcher {
69
+ watch: (bundleRequest: BundleRequest) => void;
70
+ }
71
+ export interface TaskError {
72
+ message: string;
73
+ pluginName: string;
74
+ stack: string;
75
+ fileLocation: string;
76
+ lineNumber: number;
77
+ columnNumber: number;
78
+ }
79
+ export interface TaskStartDescription {
80
+ id: string;
81
+ name?: string;
82
+ inputPath?: string;
83
+ outputPath?: string;
84
+ }
85
+ export interface TaskEndDescription {
86
+ id: string;
87
+ errors?: TaskError[];
88
+ warnings?: TaskError[];
89
+ }
90
+ export interface TaskDescription extends TaskStartDescription, TaskEndDescription {
91
+ status: 'pending' | 'complete';
92
+ startTime: number;
93
+ durationMilliseconds?: number;
94
+ lastUpdated?: number;
95
+ }
96
+ export interface Task<TReturn> {
97
+ name: string;
98
+ id: string;
99
+ execute: () => Promise<TReturn | undefined>;
100
+ getStartDescription?: () => TaskStartDescription;
101
+ getEndDescription?: (result: TReturn | undefined) => TaskEndDescription;
102
+ }
103
+ export interface TaskOptions {
104
+ rerun?: boolean;
105
+ }
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.31.0"
8
+ "packageVersion": "7.31.1"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/cli",
3
- "version": "0.9.0",
3
+ "version": "0.10.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.4.1",
19
+ "@ms-cloudpack/bundler": "^0.4.2",
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.10.0",
25
- "@ms-cloudpack/path-utilities": "^0.4.0",
24
+ "@ms-cloudpack/package-utilities": "^0.11.0",
25
+ "@ms-cloudpack/path-utilities": "^0.5.0",
26
26
  "chokidar": "^3.5.3",
27
27
  "commander": "^9.1.0",
28
28
  "filenamify": "^5.1.0",
@@ -38,7 +38,6 @@
38
38
  "@ms-cloudpack/eslint-config-base": "*",
39
39
  "@ms-cloudpack/scripts": "*",
40
40
  "@types/chokidar": "2.1.3",
41
- "@types/fs-extra": "9.0.13",
42
41
  "@types/glob": "8.0.0",
43
42
  "@types/object-hash": "2.2.1",
44
43
  "@types/uuid": "8.3.4"
@@ -1,16 +0,0 @@
1
- import type { BundlerResult } from '@ms-cloudpack/bundler-types';
2
- /**
3
- * Tracks a given bundle request and its result.
4
- */
5
- export interface BundleRequest {
6
- id: string;
7
- packageName: string;
8
- version: string;
9
- packagePath: string;
10
- outputPath: string;
11
- isExternal: boolean;
12
- result?: BundlerResult;
13
- isRebuildRequired?: boolean;
14
- dispose?: () => Promise<void>;
15
- }
16
- export declare function bundleTask(bundleRequest: BundleRequest, force?: boolean): Promise<BundleRequest>;
@@ -1,32 +0,0 @@
1
- import { bundlePackage } from '@ms-cloudpack/bundler';
2
- import { readJson, writeJson } from '@ms-cloudpack/json-utilities';
3
- import path from 'path';
4
- const log = (...messages) => {
5
- console.log(`BundleTask:`, ...messages);
6
- };
7
- export async function bundleTask(bundleRequest, force) {
8
- const { packagePath, outputPath, isExternal } = bundleRequest;
9
- // Rehydrate the result if not incremental.
10
- if (isExternal && !force) {
11
- bundleRequest.result = await readJson(path.join(outputPath, 'result.json'));
12
- }
13
- const isCacheUsable = bundleRequest.result?.errors?.length === 0;
14
- // Only use cached result if it's successful.
15
- if (!isCacheUsable) {
16
- bundleRequest.result = await bundlePackage({
17
- packagePath,
18
- outputPath,
19
- outputType: 'library',
20
- incremental: !isExternal,
21
- });
22
- // Write the result to disk.
23
- if (isExternal) {
24
- await writeJson(path.join(outputPath, 'result.json'), bundleRequest.result);
25
- }
26
- }
27
- else {
28
- log(`Bundle cached, returning: "${bundleRequest.packageName}@${bundleRequest.version}"`);
29
- }
30
- return bundleRequest;
31
- }
32
- //# sourceMappingURL=bundleTask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundleTask.js","sourceRoot":"","sources":["../../../src/commands/start/bundleTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,GAAG,GAAG,CAAC,GAAG,QAAmB,EAAE,EAAE;IACrC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AAkBF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,aAA4B,EAAE,KAAe;IAC5E,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;IAE9D,2CAA2C;IAC3C,IAAI,UAAU,IAAI,CAAC,KAAK,EAAE;QACxB,aAAa,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;KAC7E;IAED,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC;IAEjE,6CAA6C;IAC7C,IAAI,CAAC,aAAa,EAAE;QAClB,aAAa,CAAC,MAAM,GAAG,MAAM,aAAa,CAAC;YACzC,WAAW;YACX,UAAU;YACV,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,CAAC,UAAU;SACzB,CAAC,CAAC;QAEH,4BAA4B;QAC5B,IAAI,UAAU,EAAE;YACd,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;SAC7E;KACF;SAAM;QACL,GAAG,CAAC,8BAA8B,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC;KAC1F;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}