@abtnode/router-provider 1.8.4 → 1.8.7

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.
@@ -151,6 +151,11 @@ class DefaultProvider extends BaseProvider {
151
151
  fs.writeFileSync(`${this.wwwDir}/404.html`, get404Template(nodeInfo));
152
152
  fs.writeFileSync(`${this.wwwDir}/502.html`, get502Template(nodeInfo));
153
153
  fs.writeFileSync(`${this.wwwDir}/5xx.html`, get5xxTemplate(nodeInfo));
154
+ // 将 @abtnode/router-templates/lib/styles (font 相关样式) 复制到 www/router-template-styles 中
155
+ fs.copySync(
156
+ `${path.dirname(require.resolve('@abtnode/router-templates/package.json'))}/lib/styles`,
157
+ `${this.wwwDir}/router-template-styles`
158
+ );
154
159
  }
155
160
 
156
161
  getLogFilesForToday() {
@@ -643,6 +643,11 @@ class NginxProvider extends BaseProvider {
643
643
  fs.writeFileSync(`${this.wwwDir}/404.html`, get404Template(nodeInfo));
644
644
  fs.writeFileSync(`${this.wwwDir}/502.html`, get502Template(nodeInfo));
645
645
  fs.writeFileSync(`${this.wwwDir}/5xx.html`, get5xxTemplate(nodeInfo));
646
+ // 将 @abtnode/router-templates/lib/styles (font 相关样式) 复制到 www/router-template-styles 中
647
+ fs.copySync(
648
+ `${path.dirname(require.resolve('@abtnode/router-templates/package.json'))}/lib/styles`,
649
+ `${this.wwwDir}/router-template-styles`
650
+ );
646
651
  }
647
652
 
648
653
  _copyConfigFiles() {
@@ -904,62 +909,71 @@ NginxProvider.check = async ({ configDir = '' } = {}) => {
904
909
  `test_nginx_provider-${Date.now()}-${Math.ceil(Math.random() * 10000)}`,
905
910
  CONFIG_FOLDER_NAME
906
911
  );
907
- fs.mkdirSync(tmpDir, { recursive: true });
912
+ try {
913
+ fs.mkdirSync(tmpDir, { recursive: true });
914
+
915
+ const provider = new NginxProvider({ configDir: tmpDir, isTest: true });
916
+ provider.initialize();
908
917
 
909
- const provider = new NginxProvider({ configDir: tmpDir, isTest: true });
910
- provider.initialize();
918
+ logger.info('check:addTestServer', { configPath: provider.configPath });
919
+ await addTestServer({
920
+ configPath: provider.configPath,
921
+ port: await getPort(),
922
+ upstreamPort: await getPort(),
923
+ });
924
+
925
+ const missingModules = getMissingModules(provider.readNginxConfigParams());
911
926
 
912
- logger.info('check:addTestServer', { configPath: provider.configPath });
913
- await addTestServer({
914
- configPath: provider.configPath,
915
- port: await getPort(),
916
- upstreamPort: await getPort(),
917
- });
927
+ if (missingModules.length > 0) {
928
+ result.available = false;
929
+ result.error = `Blocklet Server depends on some modules of Nginx that are not compiled: ${missingModules.join(
930
+ ', '
931
+ )}`;
932
+ return result;
933
+ }
918
934
 
919
- const missingModules = getMissingModules(provider.readNginxConfigParams());
935
+ await provider.start();
936
+ await provider.stop();
920
937
 
921
- if (missingModules.length > 0) {
938
+ return result;
939
+ } catch (error) {
922
940
  result.available = false;
923
- result.error = `Blocklet Server depends on some modules of Nginx that are not compiled: ${missingModules.join(
924
- ', '
925
- )}`;
941
+ result.error = error.message;
942
+ logger.error('check nginx failed', { error });
926
943
  return result;
944
+ } finally {
945
+ fs.rmSync(tmpDir, { recursive: true, force: true });
927
946
  }
947
+ };
948
+
949
+ const hasPortPermission = async (port) => {
950
+ const configDir = path.join(
951
+ os.tmpdir(),
952
+ `test_nginx_provider-${Date.now()}-${Math.ceil(Math.random() * 10000)}`,
953
+ CONFIG_FOLDER_NAME
954
+ );
955
+ try {
956
+ fs.mkdirSync(configDir, { recursive: true });
928
957
 
929
- await provider.start();
930
- await provider.stop();
958
+ const provider = new NginxProvider({ configDir, isTest: true });
959
+ provider.initialize();
931
960
 
932
- fs.rmSync(tmpDir, { recursive: true });
961
+ await addTestServer({ configPath: provider.configPath, port });
962
+ await provider.start();
963
+ await provider.stop();
933
964
 
934
- return result;
965
+ return true;
966
+ } catch (err) {
967
+ return false;
968
+ } finally {
969
+ fs.rmSync(configDir, { recursive: true, force: true });
970
+ }
935
971
  };
936
972
 
937
973
  NginxProvider.getStatus = getNginxStatus;
938
974
  NginxProvider.exists = () => !!shelljs.which('nginx');
939
975
 
940
- NginxProvider.getUsablePorts = async () =>
941
- getUsablePorts('nginx', async (port) => {
942
- try {
943
- const configDir = path.join(
944
- os.tmpdir(),
945
- `test_nginx_provider-${Date.now()}-${Math.ceil(Math.random() * 10000)}`,
946
- CONFIG_FOLDER_NAME
947
- );
948
- fs.mkdirSync(configDir, { recursive: true });
949
-
950
- const provider = new NginxProvider({ configDir, isTest: true });
951
- provider.initialize();
952
-
953
- await addTestServer({ configPath: provider.configPath, port });
954
- await provider.start();
955
- await provider.stop();
956
-
957
- fs.rmSync(configDir, { recursive: true });
958
-
959
- return true;
960
- } catch (err) {
961
- return false;
962
- }
963
- });
976
+ NginxProvider.getUsablePorts = async () => getUsablePorts('nginx', hasPortPermission);
977
+ NginxProvider.hasPortPermission = hasPortPermission;
964
978
 
965
979
  module.exports = NginxProvider;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abtnode/router-provider",
3
- "version": "1.8.4",
3
+ "version": "1.8.7",
4
4
  "description": "Routing engine implementations for abt node",
5
5
  "author": "polunzh <polunzh@gmail.com>",
6
6
  "homepage": "https://github.com/ArcBlock/blocklet-server#readme",
@@ -32,35 +32,35 @@
32
32
  "url": "https://github.com/ArcBlock/blocklet-server/issues"
33
33
  },
34
34
  "dependencies": {
35
- "@abtnode/constant": "1.8.4",
36
- "@abtnode/logger": "1.8.4",
37
- "@abtnode/router-templates": "1.8.4",
38
- "@abtnode/util": "1.8.4",
35
+ "@abtnode/constant": "1.8.7",
36
+ "@abtnode/logger": "1.8.7",
37
+ "@abtnode/router-templates": "1.8.7",
38
+ "@abtnode/util": "1.8.7",
39
39
  "axios": "^0.27.2",
40
- "debug": "^4.3.3",
41
- "find-process": "^1.4.3",
42
- "fkill": "^7.0.1",
43
- "fs-extra": "^10.0.1",
40
+ "debug": "^4.3.4",
41
+ "find-process": "^1.4.7",
42
+ "fkill": "^7.2.1",
43
+ "fs-extra": "^10.1.0",
44
44
  "get-port": "^5.1.1",
45
45
  "http-proxy": "^1.18.1",
46
46
  "is-valid-domain": "^0.1.6",
47
47
  "lodash": "^4.17.21",
48
- "lru-cache": "^7.4.0",
49
- "moment": "^2.29.1",
50
- "nginx-conf": "^1.5.0",
48
+ "lru-cache": "^7.13.2",
49
+ "moment": "^2.29.4",
50
+ "nginx-conf": "^1.7.0",
51
51
  "object-hash": "^3.0.0",
52
52
  "port-used": "^2.0.8",
53
53
  "promise-retry": "^2.0.1",
54
- "shelljs": "^0.8.4",
55
- "tar": "^6.1.0",
54
+ "shelljs": "^0.8.5",
55
+ "tar": "^6.1.11",
56
56
  "url-join": "^4.0.1",
57
57
  "uuid": "^8.3.2",
58
58
  "valid-url": "^1.0.9"
59
59
  },
60
60
  "devDependencies": {
61
61
  "bluebird": "^3.7.2",
62
- "fs-extra": "^10.0.1",
63
- "needle": "^3.0.0"
62
+ "fs-extra": "^10.1.0",
63
+ "needle": "^3.1.0"
64
64
  },
65
- "gitHead": "c42fb1bb84c5eef0f753fd5397d8007c7a6eee19"
65
+ "gitHead": "9807ea28b3ae634f5806c875774ac3b7e38502a1"
66
66
  }