Socket
Socket
Sign inDemoInstall

@xhmikosr/downloader

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@xhmikosr/downloader - npm Package Compare versions

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",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc