@my-devkit/cli 2.1.3 → 2.1.5

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.
@@ -9,6 +9,7 @@ export declare class Npm {
9
9
  build(): Promise<void>;
10
10
  patch(): Promise<void>;
11
11
  publish(): Promise<void>;
12
+ waitNewPackageVersionAvailability(): Promise<void>;
12
13
  getName(): Promise<string>;
13
14
  getLocalVersion(): Promise<string>;
14
15
  getPublishedVersion(): Promise<string>;
package/dist/utils/npm.js CHANGED
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.Npm = void 0;
4
13
  const child_process_1 = require("child_process");
@@ -6,6 +15,8 @@ const fs = require("fs");
6
15
  const file_system_1 = require("./file-system");
7
16
  const gist_1 = require("./gist");
8
17
  const logger_1 = require("./logger");
18
+ const retry_1 = require("./retry");
19
+ const sleep_1 = require("./sleep");
9
20
  class Npm {
10
21
  prefix;
11
22
  constructor(prefix) {
@@ -27,6 +38,7 @@ class Npm {
27
38
  await this.publish();
28
39
  await this.updateRemoteChecksum(localCheckSum);
29
40
  logger_1.Logger.info(`Package ${await this.getName()} ${await this.getLocalVersion()} as been published!`, 2);
41
+ await this.waitNewPackageVersionAvailability();
30
42
  }
31
43
  async clean() {
32
44
  logger_1.Logger.debug(`Remove ${this.prefix}/node_modules`, 2);
@@ -61,6 +73,13 @@ class Npm {
61
73
  logger_1.Logger.debug(`Publish ${await this.getName()}: ${await this.getLocalVersion()}`, 2);
62
74
  await this.execCmd(`cd ${this.prefix} && npm publish --access public`);
63
75
  }
76
+ async waitNewPackageVersionAvailability() {
77
+ logger_1.Logger.info(`Wait until ${await this.getName()}@${await this.getLocalVersion()} is available`, 2);
78
+ while ((await this.getPublishedVersion()) !== (await this.getLocalVersion())) {
79
+ await (0, sleep_1.sleep)(5000);
80
+ }
81
+ logger_1.Logger.info(`Package ${await this.getName()}@${await this.getLocalVersion()} is available`, 2);
82
+ }
64
83
  async getName() {
65
84
  return this.read('name');
66
85
  }
@@ -118,4 +137,10 @@ class Npm {
118
137
  }
119
138
  }
120
139
  exports.Npm = Npm;
140
+ __decorate([
141
+ (0, retry_1.Retryable)({ exponential: true }),
142
+ __metadata("design:type", Function),
143
+ __metadata("design:paramtypes", []),
144
+ __metadata("design:returntype", Promise)
145
+ ], Npm.prototype, "install", null);
121
146
  //# sourceMappingURL=npm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/utils/npm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/utils/npm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Retry operation
3
+ * @param operation
4
+ * @param options
5
+ */
6
+ export declare function retry<T>(operation: () => Promise<T>, options?: retry.Options): Promise<T>;
7
+ export declare function Retryable(options?: retry.Options): MethodDecorator;
8
+ export declare namespace retry {
9
+ interface Options {
10
+ /**
11
+ * Condition callback
12
+ */
13
+ condition?: (error: any) => boolean;
14
+ maxAttempts?: number;
15
+ exponential?: boolean;
16
+ continueWithoutError?: boolean;
17
+ }
18
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retry = retry;
4
+ exports.Retryable = Retryable;
5
+ const logger_1 = require("./logger");
6
+ const sleep_1 = require("./sleep");
7
+ /**
8
+ * Retry operation
9
+ * @param operation
10
+ * @param options
11
+ */
12
+ async function retry(operation, options) {
13
+ options = { maxAttempts: 6, exponential: false, condition: () => true, continueWithoutError: false, ...options };
14
+ let continueTrying = true;
15
+ let retryCount = 0;
16
+ do {
17
+ try {
18
+ return await operation();
19
+ }
20
+ catch (e) {
21
+ continueTrying = retryCount < options.maxAttempts && options.condition(e);
22
+ if (!continueTrying && options.continueWithoutError) {
23
+ return;
24
+ }
25
+ if (!continueTrying && !options.continueWithoutError) {
26
+ throw e;
27
+ }
28
+ if (options.exponential) {
29
+ await (0, sleep_1.sleep)(Math.pow(2, retryCount) * 1000 + Math.round(Math.random() * 1000));
30
+ }
31
+ retryCount++;
32
+ logger_1.Logger.info(`Retry: retrying... ${retryCount}/${options.maxAttempts}`);
33
+ }
34
+ } while (continueTrying);
35
+ }
36
+ function Retryable(options) {
37
+ return (_target, _propertyKey, descriptor) => {
38
+ const originalMethod = descriptor.value;
39
+ descriptor.value = async function (...args) {
40
+ return retry(async () => await originalMethod.apply(this, args), options);
41
+ };
42
+ };
43
+ }
44
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":";;AAQA,sBAwBC;AAED,8BAQC;AA1CD,qCAAkC;AAClC,mCAAgC;AAEhC;;;;GAIG;AACI,KAAK,UAAU,KAAK,CAAI,SAA2B,EAAE,OAAuB;IAC/E,OAAO,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;IAEjH,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,GAAG,CAAC;QACA,IAAI,CAAC;YACD,OAAO,MAAM,SAAS,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,cAAc,GAAG,UAAU,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBAClD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBACnD,MAAM,CAAC,CAAC;YACZ,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACtB,MAAM,IAAA,aAAK,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACnF,CAAC;YAED,UAAU,EAAE,CAAC;YACb,eAAM,CAAC,IAAI,CAAC,sBAAsB,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC,QAAQ,cAAc,EAAC;AAC5B,CAAC;AAED,SAAgB,SAAS,CAAC,OAAuB;IAC7C,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE;QACzC,MAAM,cAAc,GAAQ,UAAU,CAAC,KAAK,CAAC;QAE5C,UAAkB,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAe;YAC1D,OAAO,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9E,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Wait specified miliseconds
3
+ * @param miliseconds
4
+ */
5
+ export declare const sleep: (miliseconds: number) => Promise<void>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sleep = void 0;
4
+ const logger_1 = require("./logger");
5
+ /**
6
+ * Wait specified miliseconds
7
+ * @param miliseconds
8
+ */
9
+ const sleep = async (miliseconds) => {
10
+ logger_1.Logger.info(`Sleeping ${miliseconds} ms`);
11
+ return new Promise(resolve => setTimeout(() => resolve(), miliseconds));
12
+ };
13
+ exports.sleep = sleep;
14
+ //# sourceMappingURL=sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../src/utils/sleep.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAElC;;;GAGG;AACI,MAAM,KAAK,GAAG,KAAK,EAAE,WAAmB,EAAiB,EAAE;IAC9D,eAAM,CAAC,IAAI,CAAC,YAAY,WAAW,KAAK,CAAC,CAAC;IAC1C,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;AAClF,CAAC,CAAA;AAHY,QAAA,KAAK,SAGjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@my-devkit/cli",
3
- "version": "2.1.3",
3
+ "version": "2.1.5",
4
4
  "description": "My Devkit: command line tools for mdk apps",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
package/src/utils/npm.ts CHANGED
@@ -4,6 +4,8 @@ import * as fs from 'fs';
4
4
  import { FileSystem } from './file-system';
5
5
  import { Gist } from './gist';
6
6
  import { Logger } from './logger';
7
+ import { Retryable } from './retry';
8
+ import { sleep } from './sleep';
7
9
 
8
10
  export class Npm {
9
11
  constructor(private prefix: string) {
@@ -31,6 +33,8 @@ export class Npm {
31
33
  await this.updateRemoteChecksum(localCheckSum);
32
34
 
33
35
  Logger.info(`Package ${await this.getName()} ${await this.getLocalVersion()} as been published!`, 2);
36
+
37
+ await this.waitNewPackageVersionAvailability();
34
38
  }
35
39
 
36
40
  public async clean(): Promise<void> {
@@ -52,6 +56,7 @@ export class Npm {
52
56
  }
53
57
  }
54
58
 
59
+ @Retryable({ exponential: true })
55
60
  public async install(): Promise<void> {
56
61
  Logger.debug('Install package dependencies', 2);
57
62
  await this.execCmd(`npm install --prefix=${this.prefix}`);
@@ -73,6 +78,16 @@ export class Npm {
73
78
  await this.execCmd(`cd ${this.prefix} && npm publish --access public`);
74
79
  }
75
80
 
81
+ public async waitNewPackageVersionAvailability(): Promise<void> {
82
+ Logger.info(`Wait until ${await this.getName()}@${await this.getLocalVersion()} is available`, 2);
83
+
84
+ while ((await this.getPublishedVersion()) !== (await this.getLocalVersion())) {
85
+ await sleep(5000);
86
+ }
87
+
88
+ Logger.info(`Package ${await this.getName()}@${await this.getLocalVersion()} is available`, 2);
89
+ }
90
+
76
91
  public async getName(): Promise<string> {
77
92
  return this.read('name');
78
93
  }
@@ -0,0 +1,56 @@
1
+ import { Logger } from './logger';
2
+ import { sleep } from './sleep';
3
+
4
+ /**
5
+ * Retry operation
6
+ * @param operation
7
+ * @param options
8
+ */
9
+ export async function retry<T>(operation: () => Promise<T>, options?: retry.Options): Promise<T> {
10
+ options = { maxAttempts: 6, exponential: false, condition: () => true, continueWithoutError: false, ...options };
11
+
12
+ let continueTrying = true;
13
+ let retryCount = 0;
14
+ do {
15
+ try {
16
+ return await operation();
17
+ } catch (e) {
18
+ continueTrying = retryCount < options.maxAttempts && options.condition(e);
19
+ if (!continueTrying && options.continueWithoutError) {
20
+ return;
21
+ }
22
+ if (!continueTrying && !options.continueWithoutError) {
23
+ throw e;
24
+ }
25
+ if (options.exponential) {
26
+ await sleep(Math.pow(2, retryCount) * 1000 + Math.round(Math.random() * 1000));
27
+ }
28
+
29
+ retryCount++;
30
+ Logger.info(`Retry: retrying... ${retryCount}/${options.maxAttempts}`);
31
+ }
32
+ } while (continueTrying)
33
+ }
34
+
35
+ export function Retryable(options?: retry.Options): MethodDecorator {
36
+ return (_target, _propertyKey, descriptor) => {
37
+ const originalMethod: any = descriptor.value;
38
+
39
+ (descriptor as any).value = async function (...args: unknown[]) {
40
+ return retry(async () => await originalMethod.apply(this, args), options);
41
+ };
42
+ };
43
+ }
44
+
45
+
46
+ export namespace retry {
47
+ export interface Options {
48
+ /**
49
+ * Condition callback
50
+ */
51
+ condition?: (error: any) => boolean;
52
+ maxAttempts?: number;
53
+ exponential?: boolean;
54
+ continueWithoutError?: boolean;
55
+ }
56
+ }
@@ -0,0 +1,10 @@
1
+ import { Logger } from './logger';
2
+
3
+ /**
4
+ * Wait specified miliseconds
5
+ * @param miliseconds
6
+ */
7
+ export const sleep = async (miliseconds: number): Promise<void> => {
8
+ Logger.info(`Sleeping ${miliseconds} ms`);
9
+ return new Promise<void>(resolve => setTimeout(() => resolve(), miliseconds));
10
+ }