mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	Use promises API (#11351)
This commit is contained in:
		
							parent
							
								
									5083458071
								
							
						
					
					
						commit
						cb0fa9a8ab
					
				
					 3 changed files with 8 additions and 17 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
import * as fs from 'node:fs';
 | 
			
		||||
import * as stream from 'node:stream';
 | 
			
		||||
import * as util from 'node:util';
 | 
			
		||||
import * as stream from 'node:stream/promises';
 | 
			
		||||
import { Inject, Injectable } from '@nestjs/common';
 | 
			
		||||
import ipaddr from 'ipaddr.js';
 | 
			
		||||
import chalk from 'chalk';
 | 
			
		||||
| 
						 | 
				
			
			@ -14,7 +13,6 @@ import { StatusError } from '@/misc/status-error.js';
 | 
			
		|||
import { LoggerService } from '@/core/LoggerService.js';
 | 
			
		||||
import type Logger from '@/logger.js';
 | 
			
		||||
 | 
			
		||||
const pipeline = util.promisify(stream.pipeline);
 | 
			
		||||
import { bindThis } from '@/decorators.js';
 | 
			
		||||
 | 
			
		||||
@Injectable()
 | 
			
		||||
| 
						 | 
				
			
			@ -102,7 +100,7 @@ export class DownloadService {
 | 
			
		|||
		});
 | 
			
		||||
 | 
			
		||||
		try {
 | 
			
		||||
			await pipeline(req, fs.createWriteStream(path));
 | 
			
		||||
			await stream.pipeline(req, fs.createWriteStream(path));
 | 
			
		||||
		} catch (e) {
 | 
			
		||||
			if (e instanceof Got.HTTPError) {
 | 
			
		||||
				throw new StatusError(`${e.response.statusCode} ${e.response.statusMessage}`, e.response.statusCode, e.response.statusMessage);
 | 
			
		||||
| 
						 | 
				
			
			@ -129,7 +127,7 @@ export class DownloadService {
 | 
			
		|||
			// write content at URL to temp file
 | 
			
		||||
			await this.downloadUrl(url, path);
 | 
			
		||||
 | 
			
		||||
			const text = await util.promisify(fs.readFile)(path, 'utf8');
 | 
			
		||||
			const text = await fs.promises.readFile(path, 'utf8');
 | 
			
		||||
 | 
			
		||||
			return text;
 | 
			
		||||
		} finally {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,7 @@
 | 
			
		|||
import * as fs from 'node:fs';
 | 
			
		||||
import * as crypto from 'node:crypto';
 | 
			
		||||
import { join } from 'node:path';
 | 
			
		||||
import * as stream from 'node:stream';
 | 
			
		||||
import * as util from 'node:util';
 | 
			
		||||
import * as stream from 'node:stream/promises';
 | 
			
		||||
import { Injectable } from '@nestjs/common';
 | 
			
		||||
import { FSWatcher } from 'chokidar';
 | 
			
		||||
import * as fileType from 'file-type';
 | 
			
		||||
| 
						 | 
				
			
			@ -16,8 +15,6 @@ import { createTempDir } from '@/misc/create-temp.js';
 | 
			
		|||
import { AiService } from '@/core/AiService.js';
 | 
			
		||||
import { bindThis } from '@/decorators.js';
 | 
			
		||||
 | 
			
		||||
const pipeline = util.promisify(stream.pipeline);
 | 
			
		||||
 | 
			
		||||
export type FileInfo = {
 | 
			
		||||
	size: number;
 | 
			
		||||
	md5: string;
 | 
			
		||||
| 
						 | 
				
			
			@ -371,8 +368,7 @@ export class FileInfoService {
 | 
			
		|||
	 */
 | 
			
		||||
	@bindThis
 | 
			
		||||
	public async getFileSize(path: string): Promise<number> {
 | 
			
		||||
		const getStat = util.promisify(fs.stat);
 | 
			
		||||
		return (await getStat(path)).size;
 | 
			
		||||
		return (await fs.promises.stat(path)).size;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
| 
						 | 
				
			
			@ -381,7 +377,7 @@ export class FileInfoService {
 | 
			
		|||
	@bindThis
 | 
			
		||||
	private async calcHash(path: string): Promise<string> {
 | 
			
		||||
		const hash = crypto.createHash('md5').setEncoding('hex');
 | 
			
		||||
		await pipeline(fs.createReadStream(path), hash);
 | 
			
		||||
		await stream.pipeline(fs.createReadStream(path), hash);
 | 
			
		||||
		return hash.read();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
import { randomUUID } from 'node:crypto';
 | 
			
		||||
import { pipeline } from 'node:stream';
 | 
			
		||||
import * as fs from 'node:fs';
 | 
			
		||||
import { promisify } from 'node:util';
 | 
			
		||||
import * as stream from 'node:stream/promises';
 | 
			
		||||
import { Inject, Injectable } from '@nestjs/common';
 | 
			
		||||
import { DI } from '@/di-symbols.js';
 | 
			
		||||
import { getIpHash } from '@/misc/get-ip-hash.js';
 | 
			
		||||
| 
						 | 
				
			
			@ -21,8 +20,6 @@ import type { FastifyRequest, FastifyReply } from 'fastify';
 | 
			
		|||
import type { OnApplicationShutdown } from '@nestjs/common';
 | 
			
		||||
import type { IEndpointMeta, IEndpoint } from './endpoints.js';
 | 
			
		||||
 | 
			
		||||
const pump = promisify(pipeline);
 | 
			
		||||
 | 
			
		||||
const accessDenied = {
 | 
			
		||||
	message: 'Access denied.',
 | 
			
		||||
	code: 'ACCESS_DENIED',
 | 
			
		||||
| 
						 | 
				
			
			@ -138,7 +135,7 @@ export class ApiCallService implements OnApplicationShutdown {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		const [path] = await createTemp();
 | 
			
		||||
		await pump(multipartData.file, fs.createWriteStream(path));
 | 
			
		||||
		await stream.pipeline(multipartData.file, fs.createWriteStream(path));
 | 
			
		||||
 | 
			
		||||
		const fields = {} as Record<string, unknown>;
 | 
			
		||||
		for (const [k, v] of Object.entries(multipartData.fields)) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue