@xhmikosr/downloader
Advanced tools
Comparing version 12.0.0 to 13.0.0
44
index.js
@@ -1,2 +0,2 @@ | ||
import {promises as fs} from 'node:fs'; | ||
import fs from 'node:fs/promises'; | ||
import path from 'node:path'; | ||
@@ -16,7 +16,5 @@ import process from 'node:process'; | ||
const filenameFromPath = res => path.basename(new URL(res.requestUrl).pathname); | ||
const getExtFromMime = response => { | ||
const header = response.headers['content-type']; | ||
const getExtFromMime = res => { | ||
const header = res.headers['content-type']; | ||
if (!header) { | ||
@@ -28,11 +26,7 @@ return null; | ||
if (exts.length !== 1) { | ||
return null; | ||
} | ||
return exts[0].ext; | ||
return exts.length === 1 ? exts[0].ext : null; | ||
}; | ||
const getFilename = async (res, data) => { | ||
const header = res.headers['content-disposition']; | ||
const getFilename = async (response, data) => { | ||
const header = response.headers['content-disposition']; | ||
@@ -47,7 +41,7 @@ if (header) { | ||
let filename = filenameFromPath(res); | ||
let filename = path.basename(new URL(response.requestUrl).pathname); | ||
if (!path.extname(filename)) { | ||
const fileType = await fileTypeFromBuffer(data); | ||
const ext = fileType?.ext || getExtFromMime(res); | ||
const ext = fileType?.ext || getExtFromMime(response); | ||
@@ -83,22 +77,18 @@ if (ext) { | ||
const promise = pEvent(stream, 'response') | ||
.then(res => { | ||
.then(response => { | ||
const encoding = options.got.responseType === 'buffer' ? 'buffer' : options.got.encoding; | ||
return Promise.all([getStream(stream, {encoding}), res]); | ||
return Promise.all([getStream(stream, {encoding}), response]); | ||
}) | ||
.then(async ([data, res]) => { | ||
.then(async ([data, response]) => { | ||
const hasArchiveData = options.extract && await archiveType(data); | ||
if (!output) { | ||
return options.extract && await archiveType(data) | ||
? decompress(data, options.decompress) | ||
: data; | ||
return hasArchiveData ? decompress(data, options.decompress) : data; | ||
} | ||
const filename = options.filename || filenamify(await getFilename(res, data)); | ||
const filename = options.filename || filenamify(await getFilename(response, data)); | ||
const outputFilepath = path.join(output, filename); | ||
if (options.extract && await archiveType(data)) { | ||
return decompress( | ||
data, | ||
path.dirname(outputFilepath), | ||
options.decompress, | ||
); | ||
if (hasArchiveData) { | ||
return decompress(data, path.dirname(outputFilepath), options.decompress); | ||
} | ||
@@ -105,0 +95,0 @@ |
{ | ||
"name": "@xhmikosr/downloader", | ||
"version": "12.0.0", | ||
"version": "13.0.0", | ||
"description": "Download and extract files", | ||
@@ -43,3 +43,3 @@ "license": "MIT", | ||
"@xhmikosr/archive-type": "^6.0.1", | ||
"@xhmikosr/decompress": "^8.0.0", | ||
"@xhmikosr/decompress": "^9.0.0", | ||
"content-disposition": "^0.5.4", | ||
@@ -56,3 +56,3 @@ "ext-name": "^5.0.0", | ||
"ava": "^4.3.3", | ||
"c8": "^7.14.0", | ||
"c8": "^8.0.0", | ||
"is-zip": "^1.0.0", | ||
@@ -59,0 +59,0 @@ "nock": "^13.3.1", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
6819
82
+ Added@xhmikosr/decompress@9.0.1(transitive)
+ Added@xhmikosr/decompress-tar@7.0.0(transitive)
+ Added@xhmikosr/decompress-tarbz2@7.0.0(transitive)
+ Added@xhmikosr/decompress-targz@7.0.0(transitive)
+ Addedb4a@1.6.7(transitive)
+ Addedbare-events@2.5.0(transitive)
+ Addedfast-fifo@1.3.2(transitive)
+ Addedmake-dir@4.0.0(transitive)
+ Addedqueue-tick@1.0.1(transitive)
+ Addedsemver@7.6.3(transitive)
+ Addedstreamx@2.20.1(transitive)
+ Addedtar-stream@3.1.7(transitive)
+ Addedtext-decoder@1.2.0(transitive)
- Removed@xhmikosr/decompress@8.0.0(transitive)
- Removed@xhmikosr/decompress-tar@6.0.1(transitive)
- Removed@xhmikosr/decompress-tarbz2@6.0.0(transitive)
- Removed@xhmikosr/decompress-targz@6.0.0(transitive)
- Removedbl@4.1.0(transitive)
- Removedend-of-stream@1.4.4(transitive)
- Removedfs-constants@1.0.0(transitive)
- Removedmake-dir@3.1.0(transitive)
- Removedonce@1.4.0(transitive)
- Removedsemver@6.3.1(transitive)
- Removedtar-stream@2.2.0(transitive)
- Removedwrappy@1.0.2(transitive)
Updated@xhmikosr/decompress@^9.0.0