Socket
Socket
Sign inDemoInstall

asset-resolver

Package Overview
Dependencies
5
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.5 to 2.0.6

33

index.js

@@ -5,6 +5,23 @@ 'use strict';

const debug = require('debug')('asset-resolver');
const Bluebird = require('bluebird');
const resolver = require('./lib/resolver');
module.exports.getResource = function(file, options = {}) {
function any(promises) {
return Promise.all(
promises.map(promise =>
promise.then(
val => {
throw val;
},
reason => reason
)
)
).then(
reasons => {
throw reasons;
},
firstResolved => firstResolved
);
}
module.exports.getResource = (file, options = {}) => {
const opts = {

@@ -16,3 +33,3 @@ base: [process.cwd()],

if (typeof opts.base === 'string') {
if (!Array.isArray(opts.base)) {
opts.base = [opts.base];

@@ -26,9 +43,9 @@ }

});
return Bluebird.any(promises).catch(Bluebird.AggregateError, errs => {
const msg = [
'The file "' + file + '" could not be resolved because of:'
].concat(errs.map(err => err.message));
return any(promises).catch(error => {
const msg = [`The file "${file}" could not be resolved because of:`].concat(
error.map(err => err.message)
);
debug(msg);
return Bluebird.reject(new Error(msg.join(os.EOL)));
return Promise.reject(new Error(msg.join(os.EOL)));
});
};
'use strict';
const fs = require('fs');
const path = require('path');
const url = require('url');
const fs = require('fs-extra');
const request = require('request');
const util = require('util');
const got = require('got');
const mime = require('mime');
const Bluebird = require('bluebird');
const debug = require('debug')('asset-resolver');

@@ -13,2 +13,3 @@ const globby = require('globby');

const cache = {};
const readFile = util.promisify(fs.readFile);

@@ -20,5 +21,5 @@ function isUrl(resource) {

function handle(filter) {
return function(resource) {
return resource => {
debug('handle request', resource.path);
return Bluebird.resolve(resource)
return Promise.resolve(resource)
.then(filter)

@@ -28,4 +29,4 @@ .then(result => {

debug('FAILED');
return Bluebird.reject(
new Error(resource.path + ' rejected by filter')
return Promise.reject(
new Error(`${resource.path} rejected by filter`)
);

@@ -59,3 +60,4 @@ }

encoding: null,
rejectUnauthorized: false
rejectUnauthorized: false,
retry: 0
};

@@ -65,32 +67,31 @@

settings.headers = {
Authorization: 'Basic ' + token(opts.user, opts.pass)
Authorization: `Basic ${token(opts.user, opts.pass)}`
};
}
return new Bluebird((resolve, reject) => {
return new Promise((resolve, reject) => {
// Handle protocol-relative urls
resource = url.resolve('http://te.st', resource); // eslint-disable-line node/no-deprecated-api
request(resource, settings, (err, resp, body) => {
let msg;
if (err) {
debug('Url failed:', err.message || err);
return reject(err);
}
got(resource, settings)
.then(response => {
if (response.statusCode !== 200) {
const msg = `Wrong status code ${response.statusCode} for ${resource}`;
debug(msg);
return reject(new Error(msg));
}
if (resp.statusCode !== 200) {
msg = 'Wrong status code ' + resp.statusCode + ' for ' + resource;
debug(msg);
return reject(new Error(msg));
}
const {headers = {}} = response;
const {headers = {}} = resp;
const mimeType = headers['content-type'] || mime.getType(resource);
const mimeType = headers['content-type'] || mime.getType(resource);
resolve({
contents: body,
path: resource,
mime: mimeType
resolve({
contents: response.body,
path: resource,
mime: mimeType
});
})
.catch(error => {
debug('Url failed:', error.message || error);
return reject(error);
});
});
});

@@ -105,3 +106,3 @@ }

function readAsync(resource) {
return fs.readFile(resource).then(body => {
return readFile(resource).then(body => {
const mimeType = mime.getType(resource);

@@ -111,7 +112,7 @@

return Bluebird.resolve({
return {
contents: body,
path: resource,
mime: mimeType
});
};
});

@@ -126,7 +127,4 @@ }

if (isUrl(base)) {
if (!/\/$/.test(base)) {
base += '/';
}
return url.resolve(base, file); // eslint-disable-line node/no-deprecated-api
// eslint-disable-next-line node/no-deprecated-api
return url.resolve(base.endsWith('/') ? base : `${base}/`, file);
}

@@ -133,0 +131,0 @@

{
"name": "asset-resolver",
"version": "2.0.5",
"version": "2.0.6",
"description": "Find an asset in a set of locations",

@@ -31,17 +31,10 @@ "license": "MIT",

"dependencies": {
"bluebird": "^3.7.1",
"debug": "^4.1.1",
"filesize": "^5.0.3",
"fs-extra": "^8.1.0",
"globby": "^9.2.0",
"got": "^9.6.0",
"hash": "^0.2.1",
"meow": "5.0.0",
"mime": "^2.4.4",
"object": "0.1.1",
"request": "^2.88.0"
"mime": "^2.4.4"
},
"devDependencies": {
"ava": "^2.4.0",
"es6-promise": "^4.2.8",
"finalhandler": "^1.1.2",

@@ -48,0 +41,0 @@ "get-port": "^5.0.0",

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc