UNPKG

@blazity/next-image-proxy

Version:

Next.js image proxy. Makes it possible to use dynamic domains in next/image component.

3 lines (2 loc) 1.63 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("isomorphic-unfetch"),require("stream"),require("lodash.merge"),require("user-agents")):"function"==typeof define&&define.amd?define(["exports","isomorphic-unfetch","stream","lodash.merge","user-agents"],r):r((e||self).nextImageProxy={},e.isomorphicUnfetch,e.stream,e.merge,e.userAgents)}(this,function(e,r,t,s,n){function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=o(r),a=o(t),u=o(s),f=o(n);function l(e,r){r.fallbackUrl.trim()?e.redirect(r.fallbackUrl):e.status(422).send({message:r.messages.imageFetchError})}e.withImageProxy=function(e){var r=u.default({whitelistedPatterns:[],fallbackUrl:"",messages:{wrongFormat:"Image url not provided or has wrong format",notWhitelisted:"Provided image url is not whitelisted",imageFetchError:"Couldn't fetch the image"}},e);return function(e,s){try{var n=e.query.imageUrl;return!n||n&&Array.isArray(n)?(s.status(400).send({message:r.messages.wrongFormat}),Promise.resolve()):(o=n,r.whitelistedPatterns.some(function(e){return o.match(e)})?Promise.resolve(function(e){try{return Promise.resolve(i.default(e,{headers:{"user-agent":(new f.default).toString()}}).then(function(e){return e.body}))}catch(e){return Promise.reject(e)}}(n)).then(function(e){e?function(e,r,s){var n=new t.Stream.PassThrough;a.default.pipeline(r,n,function(r){if(r)return console.log(r),void l(e,s)}),n.pipe(e)}(s,e,r):l(s,r)}):(s.status(422).send({message:r.messages.notWhitelisted}),Promise.resolve()))}catch(e){return Promise.reject(e)}var o}}}); //# sourceMappingURL=next-image-proxy.umd.js.map