@ms-cloudpack/cli 0.7.0 → 0.9.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/CHANGELOG.json CHANGED
@@ -2,7 +2,81 @@
2
2
  "name": "@ms-cloudpack/cli",
3
3
  "entries": [
4
4
  {
5
- "date": "Tue, 06 Sep 2022 08:17:21 GMT",
5
+ "date": "Tue, 13 Sep 2022 08:15:36 GMT",
6
+ "tag": "@ms-cloudpack/cli_v0.9.0",
7
+ "version": "0.9.0",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "author": "dake.3601@gmail.com",
12
+ "package": "@ms-cloudpack/cli",
13
+ "commit": "895b402c3959e689ae8d7fb9c1ee8a56711b8958",
14
+ "comment": "Rerun flag on add method of Task Runner"
15
+ }
16
+ ],
17
+ "patch": [
18
+ {
19
+ "author": "renovate@whitesourcesoftware.com",
20
+ "package": "@ms-cloudpack/cli",
21
+ "commit": "42d8d8353be2893774225fbe2130dd934188c70f",
22
+ "comment": "Update dependency uuid to v9"
23
+ }
24
+ ]
25
+ }
26
+ },
27
+ {
28
+ "date": "Mon, 12 Sep 2022 08:13:33 GMT",
29
+ "tag": "@ms-cloudpack/cli_v0.8.1",
30
+ "version": "0.8.1",
31
+ "comments": {
32
+ "none": [
33
+ {
34
+ "author": "renovate@whitesourcesoftware.com",
35
+ "package": "@ms-cloudpack/cli",
36
+ "commit": "1ec5df995e0c7e2b037d329293c2da25e2be6527",
37
+ "comment": "Update devDependency @types/glob to v8"
38
+ }
39
+ ]
40
+ }
41
+ },
42
+ {
43
+ "date": "Fri, 09 Sep 2022 08:15:19 GMT",
44
+ "tag": "@ms-cloudpack/cli_v0.8.1",
45
+ "version": "0.8.1",
46
+ "comments": {
47
+ "patch": [
48
+ {
49
+ "author": "elcraig@microsoft.com",
50
+ "package": "@ms-cloudpack/cli",
51
+ "commit": "a94425304322aa40cd6837969d8c3a3f25d21ca2",
52
+ "message": "Improve async error handling"
53
+ }
54
+ ]
55
+ }
56
+ },
57
+ {
58
+ "date": "Wed, 07 Sep 2022 08:14:20 GMT",
59
+ "tag": "@ms-cloudpack/cli_v0.8.0",
60
+ "version": "0.8.0",
61
+ "comments": {
62
+ "minor": [
63
+ {
64
+ "author": "dake.3601@gmail.com",
65
+ "package": "@ms-cloudpack/cli",
66
+ "commit": "40594c97b5b9eb23dbcd763a6ea23cca9f6452f6",
67
+ "comment": "Fixing action undefined"
68
+ },
69
+ {
70
+ "author": "beachball",
71
+ "package": "@ms-cloudpack/cli",
72
+ "comment": "Bump @ms-cloudpack/bundler to v0.4.1",
73
+ "commit": "40594c97b5b9eb23dbcd763a6ea23cca9f6452f6"
74
+ }
75
+ ]
76
+ }
77
+ },
78
+ {
79
+ "date": "Tue, 06 Sep 2022 08:17:50 GMT",
6
80
  "tag": "@ms-cloudpack/cli_v0.7.0",
7
81
  "version": "0.7.0",
8
82
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,41 @@
1
1
  # Change Log - @ms-cloudpack/cli
2
2
 
3
- This log was last generated on Tue, 06 Sep 2022 08:17:21 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 13 Sep 2022 08:15:36 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.9.0
8
+
9
+ Tue, 13 Sep 2022 08:15:36 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - Rerun flag on add method of Task Runner (dake.3601@gmail.com)
14
+
15
+ ### Patches
16
+
17
+ - Update dependency uuid to v9 (renovate@whitesourcesoftware.com)
18
+
19
+ ## 0.8.1
20
+
21
+ Fri, 09 Sep 2022 08:15:19 GMT
22
+
23
+ ### Patches
24
+
25
+ - undefined (elcraig@microsoft.com)
26
+
27
+ ## 0.8.0
28
+
29
+ Wed, 07 Sep 2022 08:14:20 GMT
30
+
31
+ ### Minor changes
32
+
33
+ - Fixing action undefined (dake.3601@gmail.com)
34
+ - Bump @ms-cloudpack/bundler to v0.4.1
35
+
7
36
  ## 0.7.0
8
37
 
9
- Tue, 06 Sep 2022 08:17:21 GMT
38
+ Tue, 06 Sep 2022 08:17:50 GMT
10
39
 
11
40
  ### Minor changes
12
41
 
package/lib/cloudpack.js CHANGED
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { start } from './index.js';
3
- start();
3
+ start().catch((err) => {
4
+ console.error(err?.stack || err);
5
+ process.exit(1);
6
+ });
4
7
  //# sourceMappingURL=cloudpack.js.map
@@ -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"}
@@ -3,6 +3,9 @@ export interface Task<TReturn> {
3
3
  id: string;
4
4
  execute: () => Promise<TReturn>;
5
5
  }
6
+ export interface TaskOptions {
7
+ rerun?: boolean;
8
+ }
6
9
  /**
7
10
  * TaskRunner class manages the state of Tasks.
8
11
  * This class is to be called by the api server.
@@ -11,23 +14,22 @@ export declare class TaskRunner {
11
14
  private _queue;
12
15
  private _pendingTasks;
13
16
  private _completedTasks;
17
+ private _requiresRerun;
14
18
  constructor();
15
19
  /**
16
20
  * The add method enqueues a Task and returns its Promise.
17
21
  * If a Task with the same id has already been processed,
18
22
  * it returns either the result or the promise.
23
+ * Rerun flag forces the Task to be run again.
19
24
  */
20
- add<TReturn>(task: Task<TReturn>): Promise<TReturn>;
25
+ add<TReturn>(task: Task<TReturn>, options?: TaskOptions): Promise<TReturn>;
21
26
  /**
22
- * Returns Task with id.
27
+ * Returns result from completed Task with id.
28
+ * TODO: rename to getResult?
23
29
  */
24
- get(id: string): any;
30
+ get<TReturn>(id: string): TReturn | undefined;
25
31
  /**
26
32
  * Returns if Task with id is pending.
27
33
  */
28
- pending(id: string): Promise<any> | undefined;
29
- /**
30
- * Deletes Task with id.
31
- */
32
- delete(id: string): void;
34
+ pending<TReturn>(id: string): Promise<TReturn> | undefined;
33
35
  }
@@ -11,63 +11,78 @@ export class TaskRunner {
11
11
  this._queue = new PQueue({ concurrency: 10 });
12
12
  this._pendingTasks = new Map();
13
13
  this._completedTasks = new Map();
14
+ this._requiresRerun = new Set();
14
15
  }
15
16
  /**
16
17
  * The add method enqueues a Task and returns its Promise.
17
18
  * If a Task with the same id has already been processed,
18
19
  * it returns either the result or the promise.
20
+ * Rerun flag forces the Task to be run again.
19
21
  */
20
- add(task) {
22
+ add(task, options) {
21
23
  const { name, id, execute } = task;
24
+ const { rerun } = options || {};
22
25
  // Check if we are already completed the task with that id.
23
26
  const action = this._completedTasks.get(id);
24
- if (action !== undefined) {
27
+ if (action !== undefined && !rerun) {
25
28
  log(`Previous action found, returning: "${name}:${id}"`);
26
- return action;
29
+ return Promise.resolve(action);
27
30
  }
28
31
  // Check if we are already running the task with that id.
29
32
  const pending = this._pendingTasks.get(id);
30
33
  if (pending !== undefined) {
34
+ if (rerun) {
35
+ this._requiresRerun.add(id);
36
+ }
31
37
  log(`Previous action found, waiting: "${name}:${id}"`);
32
38
  return pending;
33
39
  }
34
- // Create a promise to track the task.
35
- const resultPromise = new Promise((resolve, reject) => {
36
- this._queue
37
- .add(execute)
38
- .then((result) => {
39
- // If an existing bundle was created, dispose.
40
- // this._createdTasks.get(id)?.dispose?.();
41
- // Update finished Tasks.
42
- this._completedTasks.set(id, result);
43
- resolve(result);
44
- })
45
- .catch(reject);
46
- }).finally(() => {
40
+ const resultPromise = (async () => {
41
+ let taskResult;
42
+ let taskError;
43
+ let completed = false;
44
+ do {
45
+ // Delete from rerun list (if present).
46
+ this._requiresRerun.delete(id);
47
+ try {
48
+ taskResult = await this._queue.add(execute);
49
+ completed = true;
50
+ // If an existing bundle was created, dispose.
51
+ // this._createdTasks.get(id)?.dispose?.();
52
+ }
53
+ catch (err) {
54
+ // Save the error--it will be thrown later if a rerun was not requested.
55
+ taskError = err;
56
+ }
57
+ } while (this._requiresRerun.has(id));
58
+ log(`Task finished: "${name}:${id}"`);
59
+ // Delete from pending list.
47
60
  this._pendingTasks.delete(id);
48
- });
61
+ if (completed) {
62
+ // Update finished Tasks.
63
+ this._completedTasks.set(id, taskResult);
64
+ // Resolve the promise.
65
+ return taskResult;
66
+ }
67
+ // If the task never completed successfully, throw the error from earlier.
68
+ throw taskError;
69
+ })();
49
70
  this._pendingTasks.set(id, resultPromise);
71
+ this._completedTasks.delete(id);
50
72
  return resultPromise;
51
73
  }
52
74
  /**
53
- * Returns Task with id.
75
+ * Returns result from completed Task with id.
76
+ * TODO: rename to getResult?
54
77
  */
55
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
78
  get(id) {
57
79
  return this._completedTasks.get(id);
58
80
  }
59
81
  /**
60
82
  * Returns if Task with id is pending.
61
83
  */
62
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
84
  pending(id) {
64
85
  return this._pendingTasks.get(id);
65
86
  }
66
- /**
67
- * Deletes Task with id.
68
- */
69
- delete(id) {
70
- this._completedTasks.delete(id);
71
- }
72
87
  }
73
88
  //# 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;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,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,GAAG,CAAC,sCAAsC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YACzD,OAAO,MAAM,CAAC;SACf;QAED,yDAAyD;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,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;;OAEG;IACH,8DAA8D;IAC9D,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,8DAA8D;IAC9D,OAAO,CAAC,EAAU;QAChB,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
+ {"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../../../src/commands/start/TaskRunner.ts"],"names":[],"mappings":"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"}
@@ -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', async function () {
24
- await bundleServer.close();
25
- await appServer.close();
26
- await apiServer.close();
27
- process.exit(0);
33
+ process.on('SIGINT', () => {
34
+ cleanup().finally(() => {
35
+ process.exit(0);
36
+ });
28
37
  });
29
38
  // Open the browser.
30
- openBrowser(`http://localhost:${appServer.port}`);
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,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK;QACxB,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,WAAW,CAAC,oBAAoB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC"}
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"}
@@ -1,5 +1,5 @@
1
1
  import type { Session } from './types.js';
2
- import { type Task } from './TaskRunner.js';
2
+ import type { Task, TaskOptions } from './TaskRunner.js';
3
3
  export interface SessionStats {
4
4
  status: 'idle' | 'pending';
5
5
  remainingTasks: number;
@@ -13,13 +13,15 @@ export interface ApiServer {
13
13
  notifyReload: () => void;
14
14
  reportStart: (options: TaskStartDescription) => void;
15
15
  reportEnd: (options: TaskEndDescription) => void;
16
- addTask: <TReturn>(task: Task<TReturn>) => Promise<TReturn>;
17
- getTask: (id: string) => any;
18
- pendingTask: (id: string) => Promise<any> | undefined;
19
- deleteTask: (id: string) => void;
20
- close: () => 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>;
21
23
  }
22
- interface TaskError {
24
+ export interface TaskError {
23
25
  message: string;
24
26
  pluginName: string;
25
27
  stack: string;
@@ -27,17 +29,23 @@ interface TaskError {
27
29
  lineNumber: number;
28
30
  columnNumber: number;
29
31
  }
30
- interface TaskStartDescription {
32
+ export interface TaskStartDescription {
31
33
  id: string;
32
34
  name: string;
33
35
  inputPath: string;
34
36
  outputPath: string;
35
37
  }
36
- interface TaskEndDescription {
38
+ export interface TaskEndDescription {
37
39
  id: string;
38
40
  errors?: TaskError[];
39
41
  warnings?: TaskError[];
40
42
  }
43
+ export interface TaskDescription extends TaskStartDescription, TaskEndDescription {
44
+ status: 'pending' | 'complete';
45
+ startTime: number;
46
+ durationMilliseconds?: number;
47
+ lastUpdated?: number;
48
+ }
41
49
  /**
42
50
  * The api server handles the data pub/sub (for things like reporting build status)
43
51
  * and hosting the dashboard verb backend (for executing actions like loading vscode,
@@ -55,4 +63,3 @@ interface TaskEndDescription {
55
63
  export declare function startApiServer({ session }: {
56
64
  session: Session;
57
65
  }): 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', async (rawData) => {
48
- const request = JSON.parse(rawData.toString());
49
- // console.log(`ApiServer: Received message: ${JSON.stringify(request, null, 2)}`);
50
- switch (request.type) {
51
- case 'subscribe': {
52
- const { path: subscriptionPath, id } = request.data;
53
- disposables.set(id, bus.subscribe(subscriptionPath,
54
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
- (data) => sendMessage({ type: 'notify', id, path: subscriptionPath, data })));
56
- break;
57
- }
58
- case 'unsubscribe': {
59
- const { id } = request.data;
60
- if (id) {
61
- const dispose = disposables.get(id);
62
- if (dispose) {
63
- dispose();
64
- disposables.delete(id);
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()) {
@@ -143,8 +150,8 @@ export async function startApiServer({ session }) {
143
150
  bus.publish([session.id, 'status-details'], { tasks: Array.from(allTasks.values()) });
144
151
  }
145
152
  },
146
- addTask: (task) => {
147
- return taskRunner.add(task);
153
+ addTask: (task, options) => {
154
+ return taskRunner.add(task, options);
148
155
  },
149
156
  getTask: (id) => {
150
157
  return taskRunner.get(id);
@@ -152,10 +159,7 @@ export async function startApiServer({ session }) {
152
159
  pendingTask: (id) => {
153
160
  return taskRunner.pending(id);
154
161
  },
155
- deleteTask: (id) => {
156
- taskRunner.delete(id);
157
- },
158
- close: () => server.close(),
162
+ close: () => new Promise((resolve, reject) => server.close((err) => (err ? reject(err) : resolve()))),
159
163
  };
160
164
  }
161
165
  //# sourceMappingURL=startApiServer.js.map
@@ -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,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: () => import("http").Server;
17
+ close: () => Promise<void>;
19
18
  port: number;
20
19
  }>;
@@ -33,7 +33,7 @@ export async function startAppServer({ session, bundleServer, apiServer, }) {
33
33
  res,
34
34
  });
35
35
  })
36
- .get('*', async (req, res) => {
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":"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"}
1
+ {"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../src/commands/start/startAppServer.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { ApiServer } from './startApiServer.js';
3
3
  export interface BundleServer {
4
4
  url: string;
5
5
  port: number;
6
- close: () => void;
6
+ close: () => Promise<void>;
7
7
  }
8
8
  /**
9
9
  * The bundle server handles package requests and returns bundled resources.
@@ -14,158 +14,144 @@ 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('*', async (req, res) => {
27
- const requestPath = slash(req.path.substring(1));
28
- const { packageName, version, filePath } = parseRequestInfo(requestPath);
29
- const packageEntry = resolveMap[packageName];
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: async () => {
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 initializeFileWatcher(session, bundleId, outputPath, bundleRequest, apiServer) {
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
+ 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
+ }
141
+ // At this point we should have a Task completed.
142
+ if ((taskResult.result?.errors?.length || 0) > 0) {
143
+ res.status(500).type('json').send(taskResult);
144
+ }
145
+ else {
146
+ log(`Bundle returning: "${packageName}@${version}${filePath}"`);
147
+ // Try to return the result.
148
+ if (isExternal) {
149
+ res.setHeader('Cache-Control', 'public, max-age=31536000');
150
+ }
151
+ res.sendFile(path.join(outputPath, filePath));
152
+ }
153
+ }
154
+ function initializeFileWatcher(bundleId, outputPath, bundleRequest, apiServer) {
169
155
  const { id, packageName, packagePath, version } = bundleRequest;
170
156
  let bundleOutput = bundleRequest.result;
171
157
  log(`Initializing file watcher for ${packageName}@${version}`);
@@ -174,8 +160,7 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
174
160
  if (!apiServer.pendingTask(id)) {
175
161
  bundleRequest.isRebuildRequired = true;
176
162
  log(`Detected change "${event}", rebuilding "${packageName}@${version}"`);
177
- // eslint-disable-next-line no-async-promise-executor
178
- new Promise(async (resolveIncremental) => {
163
+ (async () => {
179
164
  do {
180
165
  bundleRequest.isRebuildRequired = false;
181
166
  log(`[Start] >> Bundling "${packageName}@${version}" to "${outputPath}"`);
@@ -183,7 +168,6 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
183
168
  apiServer.reportStart({
184
169
  id: bundleId,
185
170
  name: `Rebundle ${packageName}@${version}`,
186
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
187
171
  inputPath: packagePath,
188
172
  outputPath,
189
173
  });
@@ -192,7 +176,7 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
192
176
  name: `Bundle ${packageName}@${version}`,
193
177
  id: bundleId,
194
178
  execute: () => bundleTask(bundleRequest),
195
- })).result;
179
+ }))?.result;
196
180
  }
197
181
  else if (bundleOutput?.rebuild) {
198
182
  bundleOutput = await bundleOutput.rebuild();
@@ -200,9 +184,7 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
200
184
  // TODO: Fix typings
201
185
  apiServer.reportEnd({
202
186
  id: bundleId,
203
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
204
187
  errors: bundleOutput?.errors,
205
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
206
188
  warnings: bundleOutput?.warnings,
207
189
  });
208
190
  log(`[ End ] << Bundled "${packageName}@${version}" (${bundleOutput?.outputFiles?.length || 0} file(s), ${bundleOutput?.errors?.length || 0} errors)`);
@@ -211,7 +193,8 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
211
193
  log(`Notifying rebuild: ${packageName}@${version}`);
212
194
  apiServer.notifyReload();
213
195
  }
214
- resolveIncremental(bundleRequest);
196
+ })().catch((err) => {
197
+ error(`Error rebuilding "${packageName}@${version}":`, err?.stack || err);
215
198
  });
216
199
  }
217
200
  else {
@@ -221,8 +204,13 @@ function initializeFileWatcher(session, bundleId, outputPath, bundleRequest, api
221
204
  log(`Detected change "${event}", already waiting for "${packageName}@${version}"`);
222
205
  }
223
206
  });
224
- bundleRequest.dispose = () => {
225
- watcher.close();
207
+ bundleRequest.dispose = async () => {
208
+ try {
209
+ await watcher.close();
210
+ }
211
+ catch {
212
+ // ignore
213
+ }
226
214
  bundleOutput?.dispose?.();
227
215
  };
228
216
  }
@@ -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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"}
@@ -4,32 +4,53 @@ const tasks = [
4
4
  {
5
5
  name: 'Task 1',
6
6
  id: '1',
7
- execute: () => new Promise((r) => r('test value')),
7
+ execute: () => new Promise((r) => r('first test value')),
8
8
  },
9
9
  {
10
10
  name: 'Task 2',
11
11
  id: '1',
12
- execute: () => new Promise((r) => r('wrong value')),
12
+ execute: () => new Promise((r) => r('second test value')),
13
13
  },
14
14
  ];
15
15
  describe('addTask', () => {
16
- it('verify it resolves the promise', async () => {
16
+ it('resolves the promise', async () => {
17
17
  const taskRunner = new TaskRunner();
18
- expect(await taskRunner.add(tasks[0])).toEqual('test value');
18
+ expect(await taskRunner.add(tasks[0])).toEqual('first test value');
19
19
  });
20
- it('verify it returns previous completed task with same id', async () => {
20
+ it('returns previous completed task with same id', async () => {
21
21
  const taskRunner = new TaskRunner();
22
22
  await taskRunner.add(tasks[0]);
23
23
  // Task Runner should return task with same id
24
24
  // since previous task is already completed.
25
- expect(await taskRunner.add(tasks[1])).toEqual('test value');
25
+ expect(await taskRunner.add(tasks[1])).toEqual('first test value');
26
26
  });
27
- it('verify it returns previous pending task with same id', async () => {
27
+ 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.
32
- expect(await taskRunner.add(tasks[1])).toEqual('test value');
33
+ expect(await taskRunner.add(tasks[1])).toEqual('first test value');
34
+ });
35
+ it('reruns completed tasks when rerun is set', async () => {
36
+ const taskRunner = new TaskRunner();
37
+ await taskRunner.add(tasks[0]);
38
+ // Returns task[1].execute() string as the Task is flagged for rerun.
39
+ expect(await taskRunner.add(tasks[1], { rerun: true })).toEqual('second test value');
40
+ });
41
+ it('reruns pending tasks when rerun is set', async () => {
42
+ const taskRunner = new TaskRunner();
43
+ taskRunner.add(tasks[0]);
44
+ const ret = await taskRunner.add(tasks[1], { rerun: true });
45
+ // Returns task[0].execute() string as the Task reuses the promise.
46
+ expect(ret).toEqual('first test value');
47
+ });
48
+ it('reuses pending promise when rerun is set', async () => {
49
+ const taskRunner = new TaskRunner();
50
+ const firstTask = taskRunner.add(tasks[0]);
51
+ const secondTask = taskRunner.add(tasks[1], { rerun: true });
52
+ expect(firstTask).toEqual(secondTask);
53
+ expect(await firstTask).toEqual(await secondTask);
33
54
  });
34
55
  });
35
56
  //# sourceMappingURL=taskRunner.test.js.map
@@ -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":"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"}
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;QAE/F,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"}
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"}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.30.0"
8
+ "packageVersion": "7.31.0"
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.7.0",
3
+ "version": "0.9.0",
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,7 +16,7 @@
16
16
  "cloudpack": "./lib/cloudpack.js"
17
17
  },
18
18
  "dependencies": {
19
- "@ms-cloudpack/bundler": "^0.4.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",
@@ -31,7 +31,7 @@
31
31
  "object-hash": "^3.0.0",
32
32
  "open": "^8.4.0",
33
33
  "p-queue": "^7.3.0",
34
- "uuid": "^8.3.2"
34
+ "uuid": "^9.0.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@ms-cloudpack/bundler-types": "*",
@@ -39,7 +39,7 @@
39
39
  "@ms-cloudpack/scripts": "*",
40
40
  "@types/chokidar": "2.1.3",
41
41
  "@types/fs-extra": "9.0.13",
42
- "@types/glob": "7.2.0",
42
+ "@types/glob": "8.0.0",
43
43
  "@types/object-hash": "2.2.1",
44
44
  "@types/uuid": "8.3.4"
45
45
  },