@qingfu/core-env 0.5.15 → 0.5.16

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.
Files changed (2) hide show
  1. package/lib/utils.js +19 -7
  2. package/package.json +18 -18
package/lib/utils.js CHANGED
@@ -7,6 +7,8 @@ const baseX = require( 'base-x' ).default;
7
7
  const pinyin = require( 'pinyin' ).default;
8
8
  const qrcode = require( 'qr-image' );
9
9
  const request = require( 'superagent' );
10
+ const { spawn } = require( 'child_process' );
11
+ const { pipeline } = require( 'stream/promises' );
10
12
  const { serializeError } = require( 'serialize-error' );
11
13
  const { diff: areaDiff, history: areaHistory } = require( './area.json' );
12
14
  const utils = global.utils = module.exports = {};
@@ -282,18 +284,28 @@ utils.identityDetail = ( identity, returnNew = true ) => {
282
284
  return result;
283
285
  };
284
286
 
285
- utils.fetchBig = async ({ url, dest, method = 'GET', header = {}, retry = 0 }) => {
287
+ utils.fetchBig = async ({ url, dest, method = 'GET', header = {}, retry = 0, timeout = 300000 }) => {
288
+ let code = `
289
+ const fs = require( 'fs' );
290
+ const request = require( 'superagent' );
291
+ const { pipeline } = require( 'stream/promises' );
292
+ ( async () => {
293
+ let writeStream = fs.createWriteStream('${ dest }');
294
+ let readStream = request['${ method.toLowerCase() }']('${ url }').set(${ JSON.stringify( header )});
295
+ if (${ timeout }) readStream.timeout(${ timeout });
296
+ await pipeline( readStream, writeStream );
297
+ })();
298
+ `;
286
299
  try {
287
300
  return await new Promise(( resolve, reject ) => {
288
- let writeStream = fs.createWriteStream( dest );
289
- let readStream = request[ method.toLowerCase() ]( url ).set( header );
290
- readStream.pipe( writeStream );
291
- readStream.on( 'error', reject );
292
- writeStream.on( 'finish', resolve );
301
+ let child = spawn( 'node', [ '-e', code ], { timeout, stdio: [ 'pipe', 'inherit', 'inherit' ]});
302
+ child.on( 'close', code => code ? reject( new Error( `Process exited with code ${ code }` )) : resolve() );
303
+ child.on( 'error', reject );
293
304
  });
294
305
  } catch ( err ) {
295
306
  if ( !retry-- ) throw err;
296
- return utils.fetchBig({ url, dest, method, header, retry });
307
+ await new Promise( resolve => setTimeout( resolve, 1000 ));
308
+ return await utils.fetchBig({ url, dest, method, header, retry, timeout });
297
309
  }
298
310
  };
299
311
 
package/package.json CHANGED
@@ -1,46 +1,46 @@
1
1
  {
2
2
  "name": "@qingfu/core-env",
3
- "version": "0.5.15",
3
+ "version": "0.5.16",
4
4
  "readmeFilename": "README.md",
5
5
  "dependencies": {
6
6
  "@koa/cors": "5.0.0",
7
- "@koa/router": "13.1.0",
8
- "base-x": "5.0.0",
9
- "bullmq": "5.41.2",
7
+ "@koa/router": "13.1.1",
8
+ "base-x": "5.0.1",
9
+ "bullmq": "5.66.4",
10
10
  "busboy": "1.6.0",
11
11
  "cookie": "1.0.2",
12
12
  "dotenv-extended": "2.9.0",
13
13
  "glob": "8.1.0",
14
- "helmet": "8.0.0",
15
- "ioredis": "5.5.0",
16
- "jsonwebtoken": "9.0.2",
17
- "koa": "2.15.4",
14
+ "helmet": "8.1.0",
15
+ "ioredis": "5.8.2",
16
+ "jsonwebtoken": "9.0.3",
17
+ "koa": "2.16.3",
18
18
  "koa-bodyparser": "4.4.1",
19
19
  "koa-compress": "5.1.1",
20
20
  "koa-favicon": "2.1.0",
21
21
  "koa-helmet": "8.0.1",
22
- "koa-logger": "3.2.1",
22
+ "koa-logger": "4.0.0",
23
23
  "koa-methodoverride": "2.0.0",
24
24
  "koa-qs": "3.0.0",
25
25
  "lodash": "4.17.21",
26
26
  "moleculer": "0.14.35",
27
- "mongoose": "7.8.4",
27
+ "mongoose": "7.8.8",
28
28
  "mongoose-cast-aggregation": "0.3.1",
29
- "mongoose-geojson-schema": "2.2.5",
30
- "mongoose-lean-defaults": "2.2.1",
31
- "mongoose-lean-getters": "2.1.1",
32
- "mongoose-lean-virtuals": "1.1.0",
29
+ "mongoose-geojson-schema": "3.1.1",
30
+ "mongoose-lean-defaults": "2.3.1",
31
+ "mongoose-lean-getters": "2.2.2",
32
+ "mongoose-lean-virtuals": "1.1.1",
33
33
  "ms": "2.1.3",
34
34
  "notepack.io": "3.0.1",
35
- "pinyin": "3.1.0",
35
+ "pinyin": "4.0.0",
36
36
  "primus": "8.0.9",
37
37
  "primus-rooms": "3.4.3",
38
38
  "qr-image": "3.2.0",
39
39
  "serialize-error": "8.1.0",
40
- "superagent": "10.1.1",
40
+ "superagent": "10.2.3",
41
41
  "wechat-encrypt": "1.1.1",
42
- "winston": "3.17.0",
43
- "winston-mongodb": "6.0.0",
42
+ "winston": "3.19.0",
43
+ "winston-mongodb": "7.0.1",
44
44
  "xlsx": "0.18.5",
45
45
  "xml2js": "0.6.2"
46
46
  }