[ref] replace pako to fflate

This commit is contained in:
kwaroran
2023-06-24 15:26:00 +09:00
parent 04a9a2cb01
commit a719cf0e64
3 changed files with 13 additions and 21 deletions

View File

@@ -26,6 +26,7 @@
"dompurify": "^3.0.1",
"exifr": "^7.1.3",
"express": "^4.18.2",
"fflate": "^0.8.0",
"gpt-3-encoder": "^1.1.4",
"gpt3-tokenizer": "^1.1.5",
"isomorphic-dompurify": "^1.2.0",
@@ -35,7 +36,6 @@
"mobile-drag-drop": "3.0.0-rc.0",
"msgpackr": "^1.9.5",
"node-html-parser": "^6.1.5",
"pako": "^2.1.0",
"png-chunk-text": "^1.0.0",
"png-chunks-encode": "^1.0.0",
"png-chunks-extract": "^1.0.0",
@@ -58,7 +58,6 @@
"@types/lodash.clonedeep": "^4.5.7",
"@types/lodash.isequal": "^4.5.6",
"@types/node": "^18.7.10",
"@types/pako": "^2.0.0",
"@types/pngjs": "^6.0.1",
"@types/showdown": "^2.0.0",
"@types/uuid": "^9.0.1",

21
pnpm-lock.yaml generated
View File

@@ -37,6 +37,9 @@ dependencies:
express:
specifier: ^4.18.2
version: 4.18.2
fflate:
specifier: ^0.8.0
version: 0.8.0
gpt-3-encoder:
specifier: ^1.1.4
version: 1.1.4
@@ -64,9 +67,6 @@ dependencies:
node-html-parser:
specifier: ^6.1.5
version: 6.1.5
pako:
specifier: ^2.1.0
version: 2.1.0
png-chunk-text:
specifier: ^1.0.0
version: 1.0.0
@@ -129,9 +129,6 @@ devDependencies:
'@types/node':
specifier: ^18.7.10
version: 18.15.11
'@types/pako':
specifier: ^2.0.0
version: 2.0.0
'@types/pngjs':
specifier: ^6.0.1
version: 6.0.1
@@ -827,10 +824,6 @@ packages:
/@types/node@18.15.11:
resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==}
/@types/pako@2.0.0:
resolution: {integrity: sha512-10+iaz93qR5WYxTo+PMifD5TSxiOtdRaxBf7INGGXMQgTCu8Z/7GYWYFUOS3q/G0nE5boj1r4FEB+WSy7s5gbA==}
dev: true
/@types/pngjs@6.0.1:
resolution: {integrity: sha512-J39njbdW1U/6YyVXvC9+1iflZghP8jgRf2ndYghdJb5xL49LYDB+1EuAxfbuJ2IBbWIL3AjHPQhgaTxT3YaYeg==}
dependencies:
@@ -1548,6 +1541,10 @@ packages:
reusify: 1.0.4
dev: true
/fflate@0.8.0:
resolution: {integrity: sha512-FAdS4qMuFjsJj6XHbBaZeXOgaypXp8iw/Tpyuq/w3XA41jjLHT8NPA+n7czH/DDhdncq0nAyDZmPeWXh2qmdIg==}
dev: false
/fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -2315,10 +2312,6 @@ packages:
p-finally: 1.0.0
dev: true
/pako@2.1.0:
resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
dev: false
/parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}

View File

@@ -1,5 +1,5 @@
import { Packr, Unpackr, decode } from "msgpackr";
import pako from "pako";
import * as fflate from "fflate";
import { isTauri } from "./globalApi";
const packr = new Packr({
@@ -17,7 +17,7 @@ const magicCompressedHeader = new Uint8Array([0, 82, 73, 83, 85, 83, 65, 86, 69,
export function encodeRisuSave(data:any, compression:'noCompression'|'compression' = 'noCompression'){
let encoded:Uint8Array = packr.encode(data)
if(isTauri || compression === 'compression'){
encoded = pako.deflate(encoded)
encoded = fflate.compressSync(encoded)
const result = new Uint8Array(encoded.length + magicCompressedHeader.length);
result.set(magicCompressedHeader, 0)
result.set(encoded, magicCompressedHeader.length)
@@ -36,7 +36,7 @@ export function decodeRisuSave(data:Uint8Array){
switch(checkHeader(data)){
case "compressed":
data = data.slice(magicCompressedHeader.length)
return decode(pako.inflate(data))
return decode(fflate.decompressSync(data))
case "raw":
data = data.slice(magicHeader.length)
return unpackr.decode(data)
@@ -51,7 +51,7 @@ export function decodeRisuSave(data:Uint8Array){
const dec = unpackr.decode(realData)
return dec
} catch (error) {
const buf = Buffer.from(pako.inflate(Buffer.from(data)))
const buf = Buffer.from(fflate.decompressSync(Buffer.from(data)))
try {
return JSON.parse(buf.toString('utf-8'))
} catch (error) {
@@ -87,4 +87,4 @@ function checkHeader(data: Uint8Array) {
}
// All bytes matched
return header;
}
}