perf: use slacc instead of unzipper (#10780)
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
This commit is contained in:
		 Acid Chicken (硫酸鶏)
					Acid Chicken (硫酸鶏)
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							d2c942348c
						
					
				
				
					commit
					e6fca72171
				
			| @@ -1,7 +1,7 @@ | ||||
| import * as fs from 'node:fs'; | ||||
| import { Inject, Injectable } from '@nestjs/common'; | ||||
| import { ZipReader } from 'slacc'; | ||||
| import { DataSource } from 'typeorm'; | ||||
| import unzipper from 'unzipper'; | ||||
| import { DI } from '@/di-symbols.js'; | ||||
| import type { EmojisRepository, DriveFilesRepository, UsersRepository } from '@/models/index.js'; | ||||
| import type { Config } from '@/config.js'; | ||||
| @@ -72,9 +72,9 @@ export class ImportCustomEmojisProcessorService { | ||||
| 		} | ||||
|  | ||||
| 		const outputPath = path + '/emojis'; | ||||
| 		const unzipStream = fs.createReadStream(destPath); | ||||
| 		const extractor = unzipper.Extract({ path: outputPath }); | ||||
| 		extractor.on('close', async () => { | ||||
| 		try { | ||||
| 			this.logger.succ(`Unzipping to ${outputPath}`); | ||||
| 			ZipReader.withDestinationPath(outputPath).viaBuffer(await fs.promises.readFile(destPath)); | ||||
| 			const metaRaw = fs.readFileSync(outputPath + '/meta.json', 'utf-8'); | ||||
| 			const meta = JSON.parse(metaRaw); | ||||
|  | ||||
| @@ -115,8 +115,12 @@ export class ImportCustomEmojisProcessorService { | ||||
| 			cleanup(); | ||||
|  | ||||
| 			this.logger.succ('Imported'); | ||||
| 		}); | ||||
| 		unzipStream.pipe(extractor); | ||||
| 		this.logger.succ(`Unzipping to ${outputPath}`); | ||||
| 		} catch (e) { | ||||
| 			if (e instanceof Error || typeof e === 'string') { | ||||
| 				this.logger.error(e); | ||||
| 			} | ||||
| 			cleanup(); | ||||
| 			throw e; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user