From 7a17c2873536fc521ac73a4be0f9839f26b4ef77 Mon Sep 17 00:00:00 2001 From: ale Date: Sat, 28 Sep 2024 02:15:08 +0200 Subject: [PATCH] test stream-json --- docker-compose.yml | 6 +++--- lib/apiswagger.js | 12 ++++++++++-- package.json | 3 ++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 6328db5..6acc9b7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,14 +1,14 @@ -version: '3' - services: fediblock-instance: -# image: registry.gitlab.com/manalejandro/fediblock-instance/fediblock-instance:latest image: fediblock-instance build: . hostname: fediblock-instance container_name: fediblock-instance restart: always user: node + cpus: "0.5" + mem_limit: "1g" + memswap_limit: "1g" ports: - "4000:4000" depends_on: diff --git a/lib/apiswagger.js b/lib/apiswagger.js index 3ad00f8..8e1bfd7 100644 --- a/lib/apiswagger.js +++ b/lib/apiswagger.js @@ -3,6 +3,9 @@ const nodeinfo = require('activitypub-express/pub/nodeinfo') module.exports = (app, client) => { const constant = require('./constant'), zlib = require('zlib'), + Pick = require('stream-json/filters/Pick'), + { streamArray } = require('stream-json/streamers/StreamArray'), + { chain } = require('stream-chain'), clean = str => { return str.replace(/[/\\^$+?()`'¡¿¨!"·%&=;,\|\[\]{}]+/gmi, '') } @@ -508,8 +511,13 @@ module.exports = (app, client) => { query: { match_all: {} } - }, { asStream: true, meta: false }) - result.pipe(zlib.createGzip()).pipe(res, { end: true }) + }, { asStream: true, meta: false }), + pipeline = chain([ + Pick.withParser({ filter: 'hits.hits' }), + streamArray(), + Pick.withParser({ filter: '_source' }), + ]) + result.pipe(pipeline).pipe(zlib.createGzip()).pipe(res, { end: true }) } catch (e) { console.error(e) res.status(404).end() diff --git a/package.json b/package.json index 14afa95..d89f769 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ }, "license": "MIT", "scripts": { - "start": "rm -f core && node --max-old-space-size=1024 server.js", + "start": "rm -f core && node server.js", "build": "rm -rf dist/* && parcel build public/index.html --no-source-maps --dist-dir dist/", "install": "cd node_modules && rm -rf http-signature && rm -rf request/node_modules/http-signature && mv @peertube/http-signature ." }, @@ -25,6 +25,7 @@ "node-schedule": "^2.1.1", "parcel": "^2.12.0", "rotating-file-stream": "^3.2.5", + "stream-json": "^1.8.0", "swagger-jsdoc": "^6.2.8", "swagger-ui-express": "^5.0.1" }