fanqiang 2.2.1 → 2.3.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/README.md CHANGED
@@ -33,6 +33,8 @@ Options:
33
33
  [string] [default: "us-east-1"]
34
34
  --tunnel-region Aliyun region for tunnel deployment
35
35
  [string] [default: "cn-shanghai"]
36
+ --bucket AWS S3 bucket name, used to store clash client configuration file
37
+ [string] [default: "fanqiang-$USER"]
36
38
  --help Show help [boolean]
37
39
  --version Show version number [boolean]
38
40
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"TerraformTunnelProxyOperations.d.ts","sourceRoot":"","sources":["TerraformTunnelProxyOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,qBAAa,8BAA+B,YAAW,qBAAqB;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEnD,MAAM,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAY/E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B"}
1
+ {"version":3,"file":"TerraformTunnelProxyOperations.d.ts","sourceRoot":"","sources":["TerraformTunnelProxyOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,qBAAa,8BAA+B,YAAW,qBAAqB;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEnD,MAAM,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAoB/E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B"}
@@ -5,12 +5,23 @@ const tslib_1 = require("tslib");
5
5
  const terraform = tslib_1.__importStar(require("./terraform"));
6
6
  const AwsS3CloudStorage_1 = require("./AwsS3CloudStorage");
7
7
  const fs = tslib_1.__importStar(require("fs-extra"));
8
+ const net = tslib_1.__importStar(require("net"));
9
+ const promise_retry_1 = tslib_1.__importDefault(require("promise-retry"));
8
10
  class TerraformTunnelProxyOperations {
9
11
  constructor(configuration) {
10
12
  this.configuration = configuration;
11
13
  }
12
14
  async create(request) {
13
15
  const applyResult = await terraform.apply(request, this.configuration.terraformWorkspace, this.configuration.aliyun.credentials);
16
+ await promise_retry_1.default(async (retry) => {
17
+ try {
18
+ await checkServiceAvailable(request.port, applyResult.address, 2000);
19
+ }
20
+ catch (error) {
21
+ console.log("Service is not ready, waiting...");
22
+ retry(error);
23
+ }
24
+ });
14
25
  return {
15
26
  address: applyResult.address,
16
27
  cloudStorage: new AwsS3CloudStorage_1.AwsS3CloudStorage(request.proxyRegion, request.bucket, applyResult.bucketDomain),
@@ -22,4 +33,17 @@ class TerraformTunnelProxyOperations {
22
33
  }
23
34
  }
24
35
  exports.TerraformTunnelProxyOperations = TerraformTunnelProxyOperations;
36
+ async function checkServiceAvailable(port, host, timeout) {
37
+ const socket = net.connect({ port, host, family: 4, timeout });
38
+ try {
39
+ await new Promise((resolve, reject) => {
40
+ socket.once("connect", resolve);
41
+ socket.once("timeout", () => reject("timeout"));
42
+ socket.once("error", (err) => reject(err));
43
+ });
44
+ }
45
+ finally {
46
+ socket.destroy();
47
+ }
48
+ }
25
49
  //# sourceMappingURL=TerraformTunnelProxyOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TerraformTunnelProxyOperations.js","sourceRoot":"","sources":["TerraformTunnelProxyOperations.ts"],"names":[],"mappings":";;;;AAKA,+DAAyC;AAEzC,2DAAwD;AACxD,qDAA+B;AAE/B,MAAa,8BAA8B;IACzC,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,KAAK,CAAC,MAAM,CAAC,OAAmC;QAC9C,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,KAAK,CACvC,OAAO,EACP,IAAI,CAAC,aAAa,CAAC,kBAAkB,EACrC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CACtC,CAAC;QACF,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,YAAY,EAAE,IAAI,qCAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC;SACnG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtG,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;CACF;AAnBD,wEAmBC"}
1
+ {"version":3,"file":"TerraformTunnelProxyOperations.js","sourceRoot":"","sources":["TerraformTunnelProxyOperations.ts"],"names":[],"mappings":";;;;AAKA,+DAAyC;AAEzC,2DAAwD;AACxD,qDAA+B;AAC/B,iDAA2B;AAC3B,0EAAyC;AAEzC,MAAa,8BAA8B;IACzC,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,KAAK,CAAC,MAAM,CAAC,OAAmC;QAC9C,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,KAAK,CACvC,OAAO,EACP,IAAI,CAAC,aAAa,CAAC,kBAAkB,EACrC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CACtC,CAAC;QACF,MAAM,uBAAY,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACjC,IAAI;gBACF,MAAM,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACtE;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;gBAChD,KAAK,CAAC,KAAK,CAAC,CAAC;aACd;QACH,CAAC,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,YAAY,EAAE,IAAI,qCAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC;SACnG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtG,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;CACF;AA3BD,wEA2BC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAY,EAAE,IAAY,EAAE,OAAe;IAC9E,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/D,IAAI;QACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;KACJ;YAAS;QACR,MAAM,CAAC,OAAO,EAAE,CAAC;KAClB;AACH,CAAC"}
@@ -7,6 +7,8 @@ import * as terraform from "./terraform";
7
7
  import { Configuration } from "./Configuration";
8
8
  import { AwsS3CloudStorage } from "./AwsS3CloudStorage";
9
9
  import * as fs from "fs-extra";
10
+ import * as net from "net";
11
+ import promiseRetry from "promise-retry";
10
12
 
11
13
  export class TerraformTunnelProxyOperations implements TunnelProxyOperations {
12
14
  constructor(private readonly configuration: Configuration) {}
@@ -17,6 +19,14 @@ export class TerraformTunnelProxyOperations implements TunnelProxyOperations {
17
19
  this.configuration.terraformWorkspace,
18
20
  this.configuration.aliyun.credentials
19
21
  );
22
+ await promiseRetry(async (retry) => {
23
+ try {
24
+ await checkServiceAvailable(request.port, applyResult.address, 2000);
25
+ } catch (error) {
26
+ console.log("Service is not ready, waiting...");
27
+ retry(error);
28
+ }
29
+ });
20
30
  return {
21
31
  address: applyResult.address,
22
32
  cloudStorage: new AwsS3CloudStorage(request.proxyRegion, request.bucket, applyResult.bucketDomain),
@@ -28,3 +38,16 @@ export class TerraformTunnelProxyOperations implements TunnelProxyOperations {
28
38
  await fs.rm(this.configuration.terraformWorkspace, { force: true, recursive: true });
29
39
  }
30
40
  }
41
+
42
+ async function checkServiceAvailable(port: number, host: string, timeout: number): Promise<void> {
43
+ const socket = net.connect({ port, host, family: 4, timeout });
44
+ try {
45
+ await new Promise((resolve, reject) => {
46
+ socket.once("connect", resolve);
47
+ socket.once("timeout", () => reject("timeout"));
48
+ socket.once("error", (err) => reject(err));
49
+ });
50
+ } finally {
51
+ socket.destroy();
52
+ }
53
+ }
@@ -49,7 +49,7 @@ async function provisioningRetry(args, cwd, customEnv = {}) {
49
49
  catch (error) {
50
50
  retry(error);
51
51
  }
52
- }, { retries: 3 });
52
+ });
53
53
  }
54
54
  async function provisioning(args, cwd, customEnv) {
55
55
  return new Promise((resolve, reject) => {
@@ -1 +1 @@
1
- {"version":3,"file":"terraform.js","sourceRoot":"","sources":["terraform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terraform.js","sourceRoot":"","sources":["terraform.ts"],"names":[],"mappings":"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"}
@@ -45,16 +45,13 @@ async function init(request: TunnelProxyCreatingRequest, workdir: string): Promi
45
45
  }
46
46
 
47
47
  async function provisioningRetry(args: string[], cwd: string, customEnv: Record<string, string> = {}): Promise<void> {
48
- await promiseRetry(
49
- async (retry) => {
50
- try {
51
- await provisioning(args, cwd, customEnv);
52
- } catch (error) {
53
- retry(error);
54
- }
55
- },
56
- { retries: 3 }
57
- );
48
+ await promiseRetry(async (retry) => {
49
+ try {
50
+ await provisioning(args, cwd, customEnv);
51
+ } catch (error) {
52
+ retry(error);
53
+ }
54
+ });
58
55
  }
59
56
 
60
57
  async function provisioning(args: string[], cwd: string, customEnv: Record<string, string>): Promise<void> {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fanqiang",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
4
4
  "description": "Tunnel Proxy Auto Deployment",
5
5
  "bin": "./bin/fanqiang.js",
6
6
  "scripts": {