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.22 kB
import e from"isomorphic-unfetch";import r,{Stream as t}from"stream";import s from"lodash.merge";import o from"user-agents";function n(n){var a=s({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"}},n);return function(s,n){try{var m=s.query.imageUrl;return!m||m&&Array.isArray(m)?(n.status(400).send({message:a.messages.wrongFormat}),Promise.resolve()):(u=m,a.whitelistedPatterns.some(function(e){return u.match(e)})?Promise.resolve(function(r){try{return Promise.resolve(e(r,{headers:{"user-agent":(new o).toString()}}).then(function(e){return e.body}))}catch(e){return Promise.reject(e)}}(m)).then(function(e){e?function(e,s,o){var n=new t.PassThrough;r.pipeline(s,n,function(r){if(r)return console.log(r),void i(e,o)}),n.pipe(e)}(n,e,a):i(n,a)}):(n.status(422).send({message:a.messages.notWhitelisted}),Promise.resolve()))}catch(e){return Promise.reject(e)}var u}}function i(e,r){r.fallbackUrl.trim()?e.redirect(r.fallbackUrl):e.status(422).send({message:r.messages.imageFetchError})}export{n as withImageProxy}; //# sourceMappingURL=next-image-proxy.module.js.map