From 6d3b698e0d42a66f60e6ed98ff32c821d641503d Mon Sep 17 00:00:00 2001 From: bangbang93 Date: Wed, 10 Aug 2022 11:42:06 +0800 Subject: [PATCH] =?UTF-8?q?zstd=E6=8D=A2=E4=B8=AAwasm=E7=9A=84=E5=BA=93?= =?UTF-8?q?=EF=BC=8C=E6=96=B9=E4=BE=BF=E5=85=BC=E5=AE=B9Windows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 160 ++++++++-------------------------------------- package.json | 2 +- src/cluster.ts | 11 ++-- 3 files changed, 34 insertions(+), 139 deletions(-) diff --git a/package-lock.json b/package-lock.json index 50bbd51..c819275 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.5.0", "license": "LGPL-3.0", "dependencies": { - "@mongodb-js/zstd": "^1.0.0", + "@oneidentity/zstd-js": "^1.0.2", "avsc": "^5.7.4", "bluebird": "^3.5.5", "colors": "^1.3.3", @@ -215,96 +215,6 @@ "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", "dev": true }, - "node_modules/@mongodb-js/zstd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd/-/zstd-1.0.0.tgz", - "integrity": "sha512-vApdTgi6gxRjgKpKm8z5wtZ5dGNTfh4AewomjMhHanDvCOkv3HQHjJhoodtecdqZnaJm3WcvTYgcL53rQAsOaA==", - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@mongodb-js/zstd-darwin-arm64": "1.0.0", - "@mongodb-js/zstd-darwin-x64": "1.0.0", - "@mongodb-js/zstd-linux-arm64-gnu": "1.0.0", - "@mongodb-js/zstd-linux-x64-gnu": "1.0.0", - "@mongodb-js/zstd-win32-x64-msvc": "1.0.0" - } - }, - "node_modules/@mongodb-js/zstd-darwin-arm64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd-darwin-arm64/-/zstd-darwin-arm64-1.0.0.tgz", - "integrity": "sha512-WRVWJ5BZOcxmbHRPFhUPAIAb8BVLDvH1dJzL3+Wl+xPDevu6eoFKZ6ZPsyyZe4aBFnVgS4bqlpwdQ4ShzrY+HQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@mongodb-js/zstd-darwin-x64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd-darwin-x64/-/zstd-darwin-x64-1.0.0.tgz", - "integrity": "sha512-7cInPU8m3by4EawyaDe3GD0WytrTeS9+B3JX2e+XeDChf9RXzFs+zXmVu51lIq8aqS2J+LwYoBPV/xxPdxTS1g==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@mongodb-js/zstd-linux-arm64-gnu": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd-linux-arm64-gnu/-/zstd-linux-arm64-gnu-1.0.0.tgz", - "integrity": "sha512-qGL8mp2UyJNqGObgnh3NBzAxScVSQxn7bZsLrkSWy1xTytXgAgPmmnmIPhIH5q7Aa/sk797bkIprO8G0bRrNTQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@mongodb-js/zstd-linux-x64-gnu": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd-linux-x64-gnu/-/zstd-linux-x64-gnu-1.0.0.tgz", - "integrity": "sha512-5oBwpDjA3pY0XMo6uqr59ZOJjdkY4Yay6szzIRBzk//z1XpWjPs2Lf2zfRlnlzH7Q3EZEoHqFkk+kH9ZvHBC4Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@mongodb-js/zstd-win32-x64-msvc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd-win32-x64-msvc/-/zstd-win32-x64-msvc-1.0.0.tgz", - "integrity": "sha512-c/7D7l0pw9yIsCmuUDxRaJxT9cmxn3A9u1GeslHuz/DRSMVHY6Sb5srMJlBviUF1Q7YGK5teM03JoHso4+vLlw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -340,6 +250,14 @@ "node": ">= 8" } }, + "node_modules/@oneidentity/zstd-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@oneidentity/zstd-js/-/zstd-js-1.0.2.tgz", + "integrity": "sha512-wfr61n6YIx8jJOqjbJ3CbeJ8JQo7LOHGnJuuruu10SvobuzncKxpRYaI1erQetiUn4fmN7D5m9Zj8aNR6Hl/wA==", + "dependencies": { + "@types/emscripten": "^1.39.4" + } + }, "node_modules/@sindresorhus/is": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", @@ -422,6 +340,11 @@ "@types/node": "*" } }, + "node_modules/@types/emscripten": { + "version": "1.39.6", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.6.tgz", + "integrity": "sha512-H90aoynNhhkQP6DRweEjJp5vfUVdIj7tdPLsu7pq89vODD/lcugKfZOsfgwpvM6XUewEp2N5dCg1Uf3Qe55Dcg==" + }, "node_modules/@types/express": { "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", @@ -4755,48 +4678,6 @@ "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", "dev": true }, - "@mongodb-js/zstd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd/-/zstd-1.0.0.tgz", - "integrity": "sha512-vApdTgi6gxRjgKpKm8z5wtZ5dGNTfh4AewomjMhHanDvCOkv3HQHjJhoodtecdqZnaJm3WcvTYgcL53rQAsOaA==", - "requires": { - "@mongodb-js/zstd-darwin-arm64": "1.0.0", - "@mongodb-js/zstd-darwin-x64": "1.0.0", - "@mongodb-js/zstd-linux-arm64-gnu": "1.0.0", - "@mongodb-js/zstd-linux-x64-gnu": "1.0.0", - "@mongodb-js/zstd-win32-x64-msvc": "1.0.0" - } - }, - "@mongodb-js/zstd-darwin-arm64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd-darwin-arm64/-/zstd-darwin-arm64-1.0.0.tgz", - "integrity": "sha512-WRVWJ5BZOcxmbHRPFhUPAIAb8BVLDvH1dJzL3+Wl+xPDevu6eoFKZ6ZPsyyZe4aBFnVgS4bqlpwdQ4ShzrY+HQ==", - "optional": true - }, - "@mongodb-js/zstd-darwin-x64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd-darwin-x64/-/zstd-darwin-x64-1.0.0.tgz", - "integrity": "sha512-7cInPU8m3by4EawyaDe3GD0WytrTeS9+B3JX2e+XeDChf9RXzFs+zXmVu51lIq8aqS2J+LwYoBPV/xxPdxTS1g==", - "optional": true - }, - "@mongodb-js/zstd-linux-arm64-gnu": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd-linux-arm64-gnu/-/zstd-linux-arm64-gnu-1.0.0.tgz", - "integrity": "sha512-qGL8mp2UyJNqGObgnh3NBzAxScVSQxn7bZsLrkSWy1xTytXgAgPmmnmIPhIH5q7Aa/sk797bkIprO8G0bRrNTQ==", - "optional": true - }, - "@mongodb-js/zstd-linux-x64-gnu": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd-linux-x64-gnu/-/zstd-linux-x64-gnu-1.0.0.tgz", - "integrity": "sha512-5oBwpDjA3pY0XMo6uqr59ZOJjdkY4Yay6szzIRBzk//z1XpWjPs2Lf2zfRlnlzH7Q3EZEoHqFkk+kH9ZvHBC4Q==", - "optional": true - }, - "@mongodb-js/zstd-win32-x64-msvc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/zstd-win32-x64-msvc/-/zstd-win32-x64-msvc-1.0.0.tgz", - "integrity": "sha512-c/7D7l0pw9yIsCmuUDxRaJxT9cmxn3A9u1GeslHuz/DRSMVHY6Sb5srMJlBviUF1Q7YGK5teM03JoHso4+vLlw==", - "optional": true - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4823,6 +4704,14 @@ "fastq": "^1.6.0" } }, + "@oneidentity/zstd-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@oneidentity/zstd-js/-/zstd-js-1.0.2.tgz", + "integrity": "sha512-wfr61n6YIx8jJOqjbJ3CbeJ8JQo7LOHGnJuuruu10SvobuzncKxpRYaI1erQetiUn4fmN7D5m9Zj8aNR6Hl/wA==", + "requires": { + "@types/emscripten": "^1.39.4" + } + }, "@sindresorhus/is": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", @@ -4895,6 +4784,11 @@ "@types/node": "*" } }, + "@types/emscripten": { + "version": "1.39.6", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.6.tgz", + "integrity": "sha512-H90aoynNhhkQP6DRweEjJp5vfUVdIj7tdPLsu7pq89vODD/lcugKfZOsfgwpvM6XUewEp2N5dCg1Uf3Qe55Dcg==" + }, "@types/express": { "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", diff --git a/package.json b/package.json index 976085c..8710e1b 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "homepage": "https://github.com/bangbang93/openbmclapi#readme", "dependencies": { - "@mongodb-js/zstd": "^1.0.0", + "@oneidentity/zstd-js": "^1.0.2", "avsc": "^5.7.4", "bluebird": "^3.5.5", "colors": "^1.3.3", diff --git a/src/cluster.ts b/src/cluster.ts index 22b701c..7cca479 100644 --- a/src/cluster.ts +++ b/src/cluster.ts @@ -1,4 +1,4 @@ -import {decompress} from '@mongodb-js/zstd' +import {ZstdInit} from '@oneidentity/zstd-js' import {schema, Type} from 'avsc' import * as Bluebird from 'bluebird' import {ChildProcess, spawn} from 'child_process' @@ -14,16 +14,16 @@ import {dirname, join, sep} from 'path' import {cwd} from 'process' import * as ProgressBar from 'progress' import {createInterface} from 'readline' -import {Socket} from 'socket.io-client' import * as io from 'socket.io-client' +import {Socket} from 'socket.io-client' import MeasureRoute from './measure.route' +import http2Express = require('http2-express-bridge') import morgan = require('morgan') import ms = require('ms') import NextFunction = express.NextFunction import Request = express.Request import Response = express.Response import Timeout = NodeJS.Timeout -import http2Express = require('http2-express-bridge') import RecordType = schema.RecordType interface IFileList { @@ -97,9 +97,10 @@ export class Cluster { responseType: 'buffer', cache: this.requestCache, }) - const decompressed = await decompress(res.body) + const {ZstdStream} = await ZstdInit() + const decompressed = ZstdStream.decompress(res.body) return { - files: FileListSchema.fromBuffer(decompressed), + files: FileListSchema.fromBuffer(Buffer.from(decompressed)), } }