asset-resolver
Advanced tools
Comparing version
@@ -30,7 +30,7 @@ #!/usr/bin/env node | ||
.getResource(cli.input[0], cli.flags) | ||
.then(resource => { | ||
.then((resource) => { | ||
console.log(resource.contents); | ||
}) | ||
.catch(error => { | ||
.catch((error) => { | ||
console.error(error.message || error); | ||
}); |
37
index.js
@@ -8,15 +8,15 @@ 'use strict'; | ||
return Promise.all( | ||
promises.map(promise => | ||
promises.map((promise) => | ||
promise.then( | ||
val => { | ||
throw val; | ||
(value) => { | ||
throw value; | ||
}, | ||
reason => reason | ||
(error) => error | ||
) | ||
) | ||
).then( | ||
reasons => { | ||
(reasons) => { | ||
throw reasons; | ||
}, | ||
firstResolved => firstResolved | ||
(error) => error | ||
); | ||
@@ -26,3 +26,3 @@ } | ||
module.exports.getResource = (file, options = {}) => { | ||
const opts = { | ||
const options_ = { | ||
base: [process.cwd()], | ||
@@ -33,19 +33,18 @@ filter: () => true, | ||
if (!Array.isArray(opts.base)) { | ||
opts.base = [opts.base]; | ||
if (!Array.isArray(options_.base)) { | ||
options_.base = [options_.base]; | ||
} | ||
opts.base = resolver.glob([...opts.base]); | ||
options_.base = resolver.glob([...options_.base]); | ||
const promises = (opts.base || []).map(base => { | ||
return resolver.getResource(base, file, opts); | ||
const promises = (options_.base || []).map((base) => { | ||
return resolver.getResource(base, file, options_); | ||
}); | ||
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 Promise.reject(new Error(msg.join('\n'))); | ||
return any(promises).catch((error) => { | ||
const message = [ | ||
`The file "${file}" could not be resolved because of:` | ||
].concat(error.map((err) => err.message)); | ||
debug(message); | ||
return Promise.reject(new Error(message.join('\n'))); | ||
}); | ||
}; |
@@ -8,2 +8,3 @@ 'use strict'; | ||
const got = require('got'); | ||
const normalize = require('normalize-path'); | ||
const mime = require('mime'); | ||
@@ -21,7 +22,7 @@ const debug = require('debug')('asset-resolver'); | ||
function handle(filter) { | ||
return resource => { | ||
return (resource) => { | ||
debug('handle request', resource.path); | ||
return Promise.resolve(resource) | ||
.then(filter) | ||
.then(result => { | ||
.then((result) => { | ||
if (!result) { | ||
@@ -55,13 +56,14 @@ debug('FAILED'); | ||
*/ | ||
function requestAsync(resource, opts = {}) { | ||
function requestAsync(resource, options = {}) { | ||
const settings = { | ||
followRedirect: true, | ||
encoding: null, | ||
// encoding: null, | ||
rejectUnauthorized: false, | ||
retry: 0 | ||
// responseType: "buffer", | ||
}; | ||
if (opts.user && opts.pass) { | ||
if (options.user && options.pass) { | ||
settings.headers = { | ||
Authorization: `Basic ${token(opts.user, opts.pass)}` | ||
Authorization: `Basic ${token(options.user, options.pass)}` | ||
}; | ||
@@ -74,7 +76,7 @@ } | ||
got(resource, settings) | ||
.then(response => { | ||
.then((response) => { | ||
if (response.statusCode !== 200) { | ||
const msg = `Wrong status code ${response.statusCode} for ${resource}`; | ||
debug(msg); | ||
return reject(new Error(msg)); | ||
const message = `Wrong status code ${response.statusCode} for ${resource}`; | ||
debug(message); | ||
return reject(new Error(message)); | ||
} | ||
@@ -92,3 +94,3 @@ | ||
}) | ||
.catch(error => { | ||
.catch((error) => { | ||
debug('Url failed:', error.message || error); | ||
@@ -106,3 +108,3 @@ return reject(error); | ||
function readAsync(resource) { | ||
return readFile(resource).then(body => { | ||
return readFile(resource).then((body) => { | ||
const mimeType = mime.getType(resource); | ||
@@ -134,11 +136,11 @@ | ||
function glob(base) { | ||
return base.reduce((res, val) => { | ||
if (isUrl(val)) { | ||
res.push(val); | ||
return res; | ||
return base.reduce((result, value) => { | ||
if (isUrl(value)) { | ||
result.push(value); | ||
return result; | ||
} | ||
if (fs.existsSync(val) && fs.lstatSync(val).isDirectory()) { | ||
res.push(val); | ||
return res; | ||
if (fs.existsSync(value) && fs.lstatSync(value).isDirectory()) { | ||
result.push(value); | ||
return result; | ||
} | ||
@@ -148,3 +150,7 @@ | ||
try { | ||
files = globby.sync([val], { | ||
const pattern = | ||
value.endsWith('/') || value.endsWith('\\') | ||
? value.slice(0, Math.max(0, value.length - 1)) | ||
: value; | ||
files = globby.sync([normalize(pattern)], { | ||
nodir: false, | ||
@@ -158,14 +164,14 @@ onlyDirectories: true, | ||
return [...res, ...files]; | ||
return [...result, ...files]; | ||
}, []); | ||
} | ||
function getResource(base, file, opts) { | ||
function getResource(base, file, options) { | ||
const resource = join(base, file); | ||
if (cache[resource]) { | ||
return cache[resource].then(handle(opts.filter)); | ||
return cache[resource].then(handle(options.filter)); | ||
} | ||
if (isUrl(resource)) { | ||
cache[resource] = requestAsync(resource, opts); | ||
cache[resource] = requestAsync(resource, options); | ||
} else { | ||
@@ -175,3 +181,3 @@ cache[resource] = readAsync(resource); | ||
return cache[resource].then(handle(opts.filter)); | ||
return cache[resource].then(handle(options.filter)); | ||
} | ||
@@ -178,0 +184,0 @@ |
{ | ||
"name": "asset-resolver", | ||
"version": "2.0.9", | ||
"version": "3.0.0", | ||
"description": "Find an asset in a set of locations", | ||
@@ -10,7 +10,7 @@ "license": "MIT", | ||
"email": "ben@sommerlaune.com", | ||
"url": "sommerlaune.com" | ||
"url": "https://www.sommerlaune.com" | ||
}, | ||
"bin": "cli.js", | ||
"engines": { | ||
"node": ">= 8.6" | ||
"node": ">=10" | ||
}, | ||
@@ -33,14 +33,15 @@ "scripts": { | ||
"debug": "^4.1.1", | ||
"globby": "^9.2.0", | ||
"got": "^9.6.0", | ||
"meow": "5.0.0", | ||
"mime": "^2.4.4" | ||
"globby": "^11.0.0", | ||
"got": "^11.1.3", | ||
"meow": "^7.0.1", | ||
"mime": "^2.4.5", | ||
"normalize-path": "^3.0.0" | ||
}, | ||
"devDependencies": { | ||
"ava": "^2.4.0", | ||
"ava": "^3.8.2", | ||
"finalhandler": "^1.1.2", | ||
"get-port": "^5.0.0", | ||
"nyc": "^14.1.1", | ||
"get-port": "^5.1.1", | ||
"nyc": "^15.0.1", | ||
"serve-static": "^1.14.1", | ||
"xo": "^0.25.3" | ||
"xo": "^0.30.0" | ||
}, | ||
@@ -47,0 +48,0 @@ "xo": { |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
12216
3.54%222
2.78%6
20%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated
Updated
Updated
Updated