jsir 2.4.1 → 2.4.2

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/cmd/oaa.js CHANGED
@@ -32,6 +32,7 @@ const console = createConsole();
32
32
  const room = require('../deps/room');
33
33
  const server = require('../deps/server')
34
34
  const {reqNode} = require("../deps/room");
35
+ const {isRunningInBackground} = require("../deps/util");
35
36
 
36
37
  let lastFilterArg = '';
37
38
  let _cmdMapFile = setting.name + 'CmdMap.json'
@@ -1442,7 +1443,11 @@ const keywordDef = {
1442
1443
  if (args.length > 1) {
1443
1444
  _args = args.slice(1)
1444
1445
  }
1445
- await eia(`cd "${setting.workspaceMap[setting.defaultSpace]}";${cmd}`, _args, true)
1446
+ if (isRunningInBackground()) {
1447
+ console.log(await e(`cd "${setting.workspaceMap[setting.defaultSpace]}";${args.join(' ')}`))
1448
+ } else {
1449
+ await eia(`cd "${setting.workspaceMap[setting.defaultSpace]}";${cmd}`, _args, true)
1450
+ }
1446
1451
  },
1447
1452
  short: 'E'
1448
1453
  },
package/deps/room.js CHANGED
@@ -74,7 +74,7 @@ function _onRoom() {
74
74
  if (setting.roomTid[0]) {
75
75
  _onRoom();
76
76
  }
77
- }, 3000)
77
+ }, setting.roomTimer)
78
78
  }
79
79
 
80
80
  function offRoom() {
@@ -137,7 +137,12 @@ async function syncRooms() {
137
137
  fns.push(async () => {
138
138
  let respBody = ''
139
139
  try {
140
- respBody = await reqNode(node, "get", "/");
140
+ try {
141
+ respBody = await reqNode(node, "get", "/");
142
+ } catch (e) {
143
+ debug(`sync ${node} failed:`, e);
144
+ respBody = await reqNode(node, "get", "/", setting.defaultPort);
145
+ }
141
146
  syncRooms.push(JSON.parse(respBody))
142
147
  debug(`sync ${node} success`);
143
148
  } catch (e) {
@@ -327,7 +332,7 @@ function isDisableConnect(node, port) {
327
332
  async function reqNode(node, method, url, port, body) {
328
333
  let room = setting.rooms.filter(i => i.selfNode === node)[0]
329
334
  if (!port) {
330
- port = 52108;
335
+ port = setting.defaultPort;
331
336
  if (room) {
332
337
  let activeJsir = Object.values(room.jsirs)
333
338
  .filter(i => !isDisableConnect(node, i.port));
@@ -348,7 +353,7 @@ async function reqNode(node, method, url, port, body) {
348
353
  debug('reqRoom', JSON.stringify(opt))
349
354
  return await new Promise((resolve, reject) => {
350
355
  try {
351
- let timeoutMs = url === '/' ? 3000:49000;
356
+ let timeoutMs = setting.reqNodeTimeouts[url] || setting.reqNodeDefaultTimeout;
352
357
  let timeout = null
353
358
 
354
359
  const req = http.request(opt, (res) => {
@@ -378,7 +383,7 @@ async function reqNode(node, method, url, port, body) {
378
383
  req.on('error', (e) => {
379
384
  clearTimeout(timeout); // 清除超时定时器
380
385
  if (room) {
381
- setting.disableConnect[node + ":" + port] = Date.now() + 6000
386
+ setting.disableConnect[node + ":" + port] = Date.now() + setting.disableConnectLimit
382
387
  }
383
388
  reject(e)
384
389
  });
package/deps/server.js CHANGED
@@ -3,7 +3,7 @@ const {createConsole, vl, aesDecipher, md5, aesCipher, debugStr, isError} = requ
3
3
  const console = createConsole();
4
4
  const setting = require('../deps/setting')
5
5
  // 尝试监听的端口
6
- const preferredPort = 52108;
6
+ const preferredPort = setting.defaultPort;
7
7
  // 路由存储
8
8
  const routes = setting.routes;
9
9
  let invokeStart = false;
@@ -51,7 +51,7 @@ async function createServer(port) {
51
51
  const decodedTime = verifySign(sign);
52
52
  const currentTime = Date.now();
53
53
 
54
- if (decodedTime === null || Math.abs(currentTime - decodedTime) > 6000) {
54
+ if (decodedTime === null || Math.abs(currentTime - decodedTime) > setting.serverSignExpire) {
55
55
  res.writeHead(403, { 'Content-Type': 'text/plain' });
56
56
  res.end('Forbidden: Invalid Sign');
57
57
  return;
package/deps/setting.js CHANGED
@@ -8,8 +8,6 @@ fileType[exeKey] = "exe";
8
8
  fileType[initKey] = "init";
9
9
  fileType[fileKey] = "file";
10
10
 
11
- const defaultType = 'note';
12
-
13
11
  module.exports = {
14
12
  name: 'jsir',
15
13
  libDataDir: '.jsirData',
@@ -17,7 +15,7 @@ module.exports = {
17
15
  exeKey,
18
16
  initKey,
19
17
  fileKey,
20
- defaultType,
18
+ defaultType: 'note',
21
19
  packages: {},
22
20
  tips: {},
23
21
  defaultSpace: 'local',
@@ -28,8 +26,16 @@ module.exports = {
28
26
  rooms: [],
29
27
  server: null,
30
28
  disableConnect: {},
29
+ disableConnectLimit: 6000,
31
30
  routes: {},
32
31
  services: {},
33
32
  serviceFns: {},
34
- enterOutputs: null
33
+ enterOutputs: null,
34
+ defaultPort: 52108,
35
+ reqNodeDefaultTimeout: 9000,
36
+ reqNodeTimeouts: {
37
+ '/': 3000
38
+ },
39
+ roomTimer: 1000,
40
+ serverSignExpire: 6000
35
41
  }
package/deps/util.js CHANGED
@@ -1204,7 +1204,7 @@ async function _fileLock(key, fn, expireMs = 49000) {
1204
1204
 
1205
1205
  async function fileLock(key, fn, wait = true, expireMs = 49000) {
1206
1206
  `
1207
- 文件锁, 默认一直等待,直到加锁成功执行fn
1207
+ 文件锁, 默认一直等待expireMs,直到加锁成功执行fn
1208
1208
  wait = false, 加锁失败则不执行fn
1209
1209
  return void
1210
1210
  `
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsir",
3
- "version": "2.4.1",
3
+ "version": "2.4.2",
4
4
  "description": "JavaScript Script Management Tool",
5
5
  "main": "index.js",
6
6
  "scripts": {