mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-19 14:48:08 +02:00
Use fs/promises
in the Node.js unit-tests (PR 17714 follow-up)
This is available in all Node.js versions that we currently support, and using it allows us to remove callback-functions; please see https://nodejs.org/docs/latest-v18.x/api/fs.html#promises-api
This commit is contained in:
parent
ea2172e754
commit
0a621ba73a
1 changed files with 27 additions and 33 deletions
|
@ -45,15 +45,8 @@ class DOMFileReaderFactory {
|
|||
|
||||
class NodeFileReaderFactory {
|
||||
static async fetch(params) {
|
||||
return new Promise((resolve, reject) => {
|
||||
fs.readFile(params.path, (error, data) => {
|
||||
if (error || !data) {
|
||||
reject(error || new Error(`Empty file for: ${params.path}`));
|
||||
return;
|
||||
}
|
||||
resolve(new Uint8Array(data));
|
||||
});
|
||||
});
|
||||
const data = await fs.promises.readFile(params.path);
|
||||
return new Uint8Array(data);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -152,33 +145,34 @@ function createTemporaryNodeServer() {
|
|||
const server = http
|
||||
.createServer((request, response) => {
|
||||
const filePath = process.cwd() + "/test/pdfs" + request.url;
|
||||
fs.lstat(filePath, (error, stat) => {
|
||||
if (error) {
|
||||
fs.promises.lstat(filePath).then(
|
||||
stat => {
|
||||
if (!request.headers.range) {
|
||||
const contentLength = stat.size;
|
||||
const stream = fs.createReadStream(filePath);
|
||||
response.writeHead(200, {
|
||||
"Content-Type": "application/pdf",
|
||||
"Content-Length": contentLength,
|
||||
"Accept-Ranges": "bytes",
|
||||
});
|
||||
stream.pipe(response);
|
||||
} else {
|
||||
const [start, end] = request.headers.range
|
||||
.split("=")[1]
|
||||
.split("-")
|
||||
.map(x => Number(x));
|
||||
const stream = fs.createReadStream(filePath, { start, end });
|
||||
response.writeHead(206, {
|
||||
"Content-Type": "application/pdf",
|
||||
});
|
||||
stream.pipe(response);
|
||||
}
|
||||
},
|
||||
error => {
|
||||
response.writeHead(404);
|
||||
response.end(`File ${request.url} not found!`);
|
||||
return;
|
||||
}
|
||||
if (!request.headers.range) {
|
||||
const contentLength = stat.size;
|
||||
const stream = fs.createReadStream(filePath);
|
||||
response.writeHead(200, {
|
||||
"Content-Type": "application/pdf",
|
||||
"Content-Length": contentLength,
|
||||
"Accept-Ranges": "bytes",
|
||||
});
|
||||
stream.pipe(response);
|
||||
} else {
|
||||
const [start, end] = request.headers.range
|
||||
.split("=")[1]
|
||||
.split("-")
|
||||
.map(x => Number(x));
|
||||
const stream = fs.createReadStream(filePath, { start, end });
|
||||
response.writeHead(206, {
|
||||
"Content-Type": "application/pdf",
|
||||
});
|
||||
stream.pipe(response);
|
||||
}
|
||||
});
|
||||
);
|
||||
})
|
||||
.listen(0); /* Listen on a random free port */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue