Downgrade to v13

[vi] cảm giác đau khổ
This commit is contained in:
March 7th
2022-03-24 17:55:32 +07:00
parent 9596b1a210
commit 7dfdef46a5
218 changed files with 8584 additions and 9108 deletions

View File

@@ -1,10 +1,10 @@
'use strict';
const { Buffer } = require('node:buffer');
const fs = require('node:fs/promises');
const fs = require('node:fs');
const path = require('node:path');
const stream = require('node:stream');
const { fetch } = require('undici');
const fetch = require('node-fetch');
const { Error: DiscordError, TypeError } = require('../errors');
const Invite = require('../structures/Invite');
@@ -66,8 +66,8 @@ class DataResolver extends null {
if (typeof image === 'string' && image.startsWith('data:')) {
return image;
}
const file = await this.resolveFile(image);
return this.resolveBase64(file);
const file = await this.resolveFileAsBuffer(image);
return DataResolver.resolveBase64(file);
}
/**
@@ -102,34 +102,44 @@ class DataResolver extends null {
*/
/**
* Resolves a BufferResolvable to a Buffer.
* Resolves a BufferResolvable to a Buffer or a Stream.
* @param {BufferResolvable|Stream} resource The buffer or stream resolvable to resolve
* @returns {Promise<Buffer>}
* @returns {Promise<Buffer|Stream>}
*/
static async resolveFile(resource) {
if (Buffer.isBuffer(resource)) return resource;
if (resource instanceof stream.Readable) {
const buffers = [];
for await (const data of resource) buffers.push(data);
return Buffer.concat(buffers);
}
if (Buffer.isBuffer(resource) || resource instanceof stream.Readable) return resource;
if (typeof resource === 'string') {
if (/^https?:\/\//.test(resource)) {
const res = await fetch(resource);
return Buffer.from(await res.arrayBuffer());
return res.body;
}
const file = path.resolve(resource);
const stats = await fs.stat(file);
if (!stats.isFile()) throw new DiscordError('FILE_NOT_FOUND', file);
return fs.readFile(file);
return new Promise((resolve, reject) => {
const file = path.resolve(resource);
fs.stat(file, (err, stats) => {
if (err) return reject(err);
if (!stats.isFile()) return reject(new DiscordError('FILE_NOT_FOUND', file));
return resolve(fs.createReadStream(file));
});
});
}
throw new TypeError('REQ_RESOURCE_TYPE');
}
/**
* Resolves a BufferResolvable to a Buffer.
* @param {BufferResolvable|Stream} resource The buffer or stream resolvable to resolve
* @returns {Promise<Buffer>}
*/
static async resolveFileAsBuffer(resource) {
const file = await this.resolveFile(resource);
if (Buffer.isBuffer(file)) return file;
const buffers = [];
for await (const data of file) buffers.push(data);
return Buffer.concat(buffers);
}
}
module.exports = DataResolver;