asset-resolver
Advanced tools
Comparing version 2.0.9 to 3.0.0
@@ -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": { |
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
12216
222
6
+ Addednormalize-path@^3.0.0
+ Added@babel/code-frame@7.24.7(transitive)
+ Added@babel/helper-validator-identifier@7.24.7(transitive)
+ Added@babel/highlight@7.24.7(transitive)
+ Added@nodelib/fs.scandir@2.1.5(transitive)
+ Added@nodelib/fs.stat@2.0.5(transitive)
+ Added@nodelib/fs.walk@1.2.8(transitive)
+ Added@sindresorhus/is@4.6.0(transitive)
+ Added@szmarczak/http-timer@4.0.6(transitive)
+ Added@types/cacheable-request@6.0.3(transitive)
+ Added@types/http-cache-semantics@4.0.4(transitive)
+ Added@types/keyv@3.1.4(transitive)
+ Added@types/minimist@1.2.5(transitive)
+ Added@types/normalize-package-data@2.4.4(transitive)
+ Added@types/responselike@1.0.3(transitive)
+ Addedansi-styles@3.2.1(transitive)
+ Addedarray-union@2.1.0(transitive)
+ Addedbraces@3.0.3(transitive)
+ Addedcacheable-lookup@5.0.4(transitive)
+ Addedcacheable-request@7.0.4(transitive)
+ Addedcamelcase@5.3.1(transitive)
+ Addedcamelcase-keys@6.2.2(transitive)
+ Addedchalk@2.4.2(transitive)
+ Addedcolor-convert@1.9.3(transitive)
+ Addedcolor-name@1.1.3(transitive)
+ Addeddecompress-response@6.0.0(transitive)
+ Addeddefer-to-connect@2.0.1(transitive)
+ Addeddir-glob@3.0.1(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedfast-glob@3.3.2(transitive)
+ Addedfastq@1.17.1(transitive)
+ Addedfill-range@7.1.1(transitive)
+ Addedfind-up@4.1.0(transitive)
+ Addedglob-parent@5.1.2(transitive)
+ Addedglobby@11.1.0(transitive)
+ Addedgot@11.8.6(transitive)
+ Addedhard-rejection@2.1.0(transitive)
+ Addedhas-flag@3.0.0(transitive)
+ Addedhttp2-wrapper@1.0.3(transitive)
+ Addedignore@5.3.2(transitive)
+ Addedindent-string@4.0.0(transitive)
+ Addedis-number@7.0.0(transitive)
+ Addedjs-tokens@4.0.0(transitive)
+ Addedjson-buffer@3.0.1(transitive)
+ Addedjson-parse-even-better-errors@2.3.1(transitive)
+ Addedkeyv@4.5.4(transitive)
+ Addedlines-and-columns@1.2.4(transitive)
+ Addedlocate-path@5.0.0(transitive)
+ Addedmap-obj@4.3.0(transitive)
+ Addedmeow@7.1.1(transitive)
+ Addedmicromatch@4.0.8(transitive)
+ Addedmimic-response@3.1.0(transitive)
+ Addedmin-indent@1.0.1(transitive)
+ Addedminimist-options@4.1.0(transitive)
+ Addednormalize-path@3.0.0(transitive)
+ Addednormalize-url@6.1.0(transitive)
+ Addedp-cancelable@2.1.1(transitive)
+ Addedp-limit@2.3.0(transitive)
+ Addedp-locate@4.1.0(transitive)
+ Addedp-try@2.2.0(transitive)
+ Addedparse-json@5.2.0(transitive)
+ Addedpath-exists@4.0.0(transitive)
+ Addedpath-type@4.0.0(transitive)
+ Addedpicocolors@1.1.0(transitive)
+ Addedpicomatch@2.3.1(transitive)
+ Addedqueue-microtask@1.2.3(transitive)
+ Addedquick-lru@4.0.15.1.1(transitive)
+ Addedread-pkg@5.2.0(transitive)
+ Addedread-pkg-up@7.0.1(transitive)
+ Addedredent@3.0.0(transitive)
+ Addedresolve-alpn@1.2.1(transitive)
+ Addedresponselike@2.0.1(transitive)
+ Addedreusify@1.0.4(transitive)
+ Addedrun-parallel@1.2.0(transitive)
+ Addedslash@3.0.0(transitive)
+ Addedstrip-indent@3.0.0(transitive)
+ Addedsupports-color@5.5.0(transitive)
+ Addedto-regex-range@5.0.1(transitive)
+ Addedtrim-newlines@3.0.1(transitive)
+ Addedtype-fest@0.13.10.6.00.8.1(transitive)
+ Addedyargs-parser@18.1.3(transitive)
- Removed@mrmlnc/readdir-enhanced@2.2.1(transitive)
- Removed@nodelib/fs.stat@1.1.3(transitive)
- Removed@sindresorhus/is@0.14.0(transitive)
- Removed@szmarczak/http-timer@1.1.2(transitive)
- Removed@types/glob@7.2.0(transitive)
- Removed@types/minimatch@5.1.2(transitive)
- Removedarr-diff@4.0.0(transitive)
- Removedarr-flatten@1.1.0(transitive)
- Removedarr-union@3.1.0(transitive)
- Removedarray-find-index@1.0.2(transitive)
- Removedarray-union@1.0.2(transitive)
- Removedarray-uniq@1.0.3(transitive)
- Removedarray-unique@0.3.2(transitive)
- Removedassign-symbols@1.0.0(transitive)
- Removedatob@2.1.2(transitive)
- Removedbalanced-match@1.0.2(transitive)
- Removedbase@0.11.2(transitive)
- Removedbrace-expansion@1.1.11(transitive)
- Removedbraces@2.3.2(transitive)
- Removedcache-base@1.0.1(transitive)
- Removedcacheable-request@6.1.0(transitive)
- Removedcall-me-maybe@1.0.2(transitive)
- Removedcamelcase@4.1.0(transitive)
- Removedcamelcase-keys@4.2.0(transitive)
- Removedclass-utils@0.3.6(transitive)
- Removedcollection-visit@1.0.0(transitive)
- Removedcomponent-emitter@1.3.1(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removedcopy-descriptor@0.1.1(transitive)
- Removedcurrently-unhandled@0.4.1(transitive)
- Removeddebug@2.6.9(transitive)
- Removeddecode-uri-component@0.2.2(transitive)
- Removeddecompress-response@3.3.0(transitive)
- Removeddefer-to-connect@1.1.3(transitive)
- Removeddefine-property@0.2.51.0.02.0.2(transitive)
- Removeddir-glob@2.2.2(transitive)
- Removedduplexer3@0.1.5(transitive)
- Removedexpand-brackets@2.1.4(transitive)
- Removedextend-shallow@2.0.13.0.2(transitive)
- Removedextglob@2.0.4(transitive)
- Removedfast-glob@2.2.7(transitive)
- Removedfill-range@4.0.0(transitive)
- Removedfind-up@2.1.0(transitive)
- Removedfor-in@1.0.2(transitive)
- Removedfragment-cache@0.2.1(transitive)
- Removedfs.realpath@1.0.0(transitive)
- Removedget-stream@4.1.0(transitive)
- Removedget-value@2.0.6(transitive)
- Removedglob@7.2.3(transitive)
- Removedglob-parent@3.1.0(transitive)
- Removedglob-to-regexp@0.3.0(transitive)
- Removedglobby@9.2.0(transitive)
- Removedgot@9.6.0(transitive)
- Removedgraceful-fs@4.2.11(transitive)
- Removedhas-value@0.3.11.0.0(transitive)
- Removedhas-values@0.1.41.0.0(transitive)
- Removedignore@4.0.6(transitive)
- Removedindent-string@3.2.0(transitive)
- Removedinflight@1.0.6(transitive)
- Removedinherits@2.0.4(transitive)
- Removedis-accessor-descriptor@1.0.1(transitive)
- Removedis-buffer@1.1.6(transitive)
- Removedis-data-descriptor@1.0.1(transitive)
- Removedis-descriptor@0.1.71.0.3(transitive)
- Removedis-extendable@0.1.11.0.1(transitive)
- Removedis-glob@3.1.0(transitive)
- Removedis-number@3.0.0(transitive)
- Removedis-plain-object@2.0.4(transitive)
- Removedis-windows@1.0.2(transitive)
- Removedisarray@1.0.0(transitive)
- Removedisobject@2.1.03.0.1(transitive)
- Removedjson-buffer@3.0.0(transitive)
- Removedjson-parse-better-errors@1.0.2(transitive)
- Removedkeyv@3.1.0(transitive)
- Removedkind-of@3.2.24.0.0(transitive)
- Removedload-json-file@4.0.0(transitive)
- Removedlocate-path@2.0.0(transitive)
- Removedloud-rejection@1.6.0(transitive)
- Removedlowercase-keys@1.0.1(transitive)
- Removedmap-cache@0.2.2(transitive)
- Removedmap-obj@2.0.0(transitive)
- Removedmap-visit@1.0.0(transitive)
- Removedmeow@5.0.0(transitive)
- Removedmicromatch@3.1.10(transitive)
- Removedminimatch@3.1.2(transitive)
- Removedminimist-options@3.0.2(transitive)
- Removedmixin-deep@1.3.2(transitive)
- Removedms@2.0.0(transitive)
- Removednanomatch@1.2.13(transitive)
- Removednormalize-url@4.5.1(transitive)
- Removedobject-copy@0.1.0(transitive)
- Removedobject-visit@1.0.1(transitive)
- Removedobject.pick@1.3.0(transitive)
- Removedp-cancelable@1.1.0(transitive)
- Removedp-limit@1.3.0(transitive)
- Removedp-locate@2.0.0(transitive)
- Removedp-try@1.0.0(transitive)
- Removedparse-json@4.0.0(transitive)
- Removedpascalcase@0.1.1(transitive)
- Removedpath-dirname@1.0.2(transitive)
- Removedpath-exists@3.0.0(transitive)
- Removedpath-is-absolute@1.0.1(transitive)
- Removedpath-type@3.0.0(transitive)
- Removedpify@3.0.04.0.1(transitive)
- Removedposix-character-classes@0.1.1(transitive)
- Removedprepend-http@2.0.0(transitive)
- Removedquick-lru@1.1.0(transitive)
- Removedread-pkg@3.0.0(transitive)
- Removedread-pkg-up@3.0.0(transitive)
- Removedredent@2.0.0(transitive)
- Removedregex-not@1.0.2(transitive)
- Removedrepeat-element@1.1.4(transitive)
- Removedrepeat-string@1.6.1(transitive)
- Removedresolve-url@0.2.1(transitive)
- Removedresponselike@1.0.2(transitive)
- Removedret@0.1.15(transitive)
- Removedsafe-regex@1.1.0(transitive)
- Removedset-value@2.0.1(transitive)
- Removedsignal-exit@3.0.7(transitive)
- Removedslash@2.0.0(transitive)
- Removedsnapdragon@0.8.2(transitive)
- Removedsnapdragon-node@2.1.1(transitive)
- Removedsnapdragon-util@3.0.1(transitive)
- Removedsource-map@0.5.7(transitive)
- Removedsource-map-resolve@0.5.3(transitive)
- Removedsource-map-url@0.4.1(transitive)
- Removedsplit-string@3.1.0(transitive)
- Removedstatic-extend@0.1.2(transitive)
- Removedstrip-bom@3.0.0(transitive)
- Removedstrip-indent@2.0.0(transitive)
- Removedto-object-path@0.3.0(transitive)
- Removedto-readable-stream@1.0.0(transitive)
- Removedto-regex@3.0.2(transitive)
- Removedto-regex-range@2.1.1(transitive)
- Removedtrim-newlines@2.0.0(transitive)
- Removedunion-value@1.0.1(transitive)
- Removedunset-value@1.0.0(transitive)
- Removedurix@0.1.0(transitive)
- Removedurl-parse-lax@3.0.0(transitive)
- Removeduse@3.1.1(transitive)
- Removedyargs-parser@10.1.0(transitive)
Updatedglobby@^11.0.0
Updatedgot@^11.1.3
Updatedmeow@^7.0.1
Updatedmime@^2.4.5