Initial boiler plate project
This commit is contained in:
58
node_modules/next/dist/esm/build/webpack/loaders/next-image-loader/blur.js
generated
vendored
Normal file
58
node_modules/next/dist/esm/build/webpack/loaders/next-image-loader/blur.js
generated
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
import isAnimated from "next/dist/compiled/is-animated";
|
||||
import { optimizeImage } from "../../../../server/image-optimizer";
|
||||
const BLUR_IMG_SIZE = 8;
|
||||
const BLUR_QUALITY = 70;
|
||||
const VALID_BLUR_EXT = [
|
||||
"jpeg",
|
||||
"png",
|
||||
"webp",
|
||||
"avif"
|
||||
] // should match other usages
|
||||
;
|
||||
export async function getBlurImage(content, extension, imageSize, { basePath, outputPath, isDev, tracing = ()=>({
|
||||
traceFn: (fn)=>(...args)=>fn(...args),
|
||||
traceAsyncFn: (fn)=>(...args)=>fn(...args)
|
||||
}) }) {
|
||||
let blurDataURL;
|
||||
let blurWidth = 0;
|
||||
let blurHeight = 0;
|
||||
if (VALID_BLUR_EXT.includes(extension) && !isAnimated(content)) {
|
||||
// Shrink the image's largest dimension
|
||||
if (imageSize.width >= imageSize.height) {
|
||||
blurWidth = BLUR_IMG_SIZE;
|
||||
blurHeight = Math.max(Math.round(imageSize.height / imageSize.width * BLUR_IMG_SIZE), 1);
|
||||
} else {
|
||||
blurWidth = Math.max(Math.round(imageSize.width / imageSize.height * BLUR_IMG_SIZE), 1);
|
||||
blurHeight = BLUR_IMG_SIZE;
|
||||
}
|
||||
if (isDev) {
|
||||
// During `next dev`, we don't want to generate blur placeholders with webpack
|
||||
// because it can delay starting the dev server. Instead, we inline a
|
||||
// special url to lazily generate the blur placeholder at request time.
|
||||
const prefix = "http://localhost";
|
||||
const url = new URL(`${basePath || ""}/_next/image`, prefix);
|
||||
url.searchParams.set("url", outputPath);
|
||||
url.searchParams.set("w", String(blurWidth));
|
||||
url.searchParams.set("q", String(BLUR_QUALITY));
|
||||
blurDataURL = url.href.slice(prefix.length);
|
||||
} else {
|
||||
const resizeImageSpan = tracing("image-resize");
|
||||
const resizedImage = await resizeImageSpan.traceAsyncFn(()=>optimizeImage({
|
||||
buffer: content,
|
||||
width: blurWidth,
|
||||
height: blurHeight,
|
||||
contentType: `image/${extension}`,
|
||||
quality: BLUR_QUALITY
|
||||
}));
|
||||
const blurDataURLSpan = tracing("image-base64-tostring");
|
||||
blurDataURL = blurDataURLSpan.traceFn(()=>`data:image/${extension};base64,${resizedImage.toString("base64")}`);
|
||||
}
|
||||
}
|
||||
return {
|
||||
dataURL: blurDataURL,
|
||||
width: blurWidth,
|
||||
height: blurHeight
|
||||
};
|
||||
}
|
||||
|
||||
//# sourceMappingURL=blur.js.map
|
||||
1
node_modules/next/dist/esm/build/webpack/loaders/next-image-loader/blur.js.map
generated
vendored
Normal file
1
node_modules/next/dist/esm/build/webpack/loaders/next-image-loader/blur.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["../../../../../src/build/webpack/loaders/next-image-loader/blur.ts"],"names":["isAnimated","optimizeImage","BLUR_IMG_SIZE","BLUR_QUALITY","VALID_BLUR_EXT","getBlurImage","content","extension","imageSize","basePath","outputPath","isDev","tracing","traceFn","fn","args","traceAsyncFn","blurDataURL","blurWidth","blurHeight","includes","width","height","Math","max","round","prefix","url","URL","searchParams","set","String","href","slice","length","resizeImageSpan","resizedImage","buffer","contentType","quality","blurDataURLSpan","toString","dataURL"],"mappings":"AAAA,OAAOA,gBAAgB,iCAAgC;AACvD,SAASC,aAAa,QAAQ,qCAAoC;AAElE,MAAMC,gBAAgB;AACtB,MAAMC,eAAe;AACrB,MAAMC,iBAAiB;IAAC;IAAQ;IAAO;IAAQ;CAAO,CAAC,4BAA4B;;AAEnF,OAAO,eAAeC,aACpBC,OAAe,EACfC,SAAiB,EACjBC,SAA4C,EAC5C,EACEC,QAAQ,EACRC,UAAU,EACVC,KAAK,EACLC,UAAU,IAAO,CAAA;QACfC,SACE,CAACC,KACD,CAAC,GAAGC,OACFD,MAAMC;QACVC,cACE,CAACF,KACD,CAAC,GAAGC,OACFD,MAAMC;IACZ,CAAA,CAAE,EASH;IAED,IAAIE;IACJ,IAAIC,YAAoB;IACxB,IAAIC,aAAqB;IAEzB,IAAIf,eAAegB,QAAQ,CAACb,cAAc,CAACP,WAAWM,UAAU;QAC9D,uCAAuC;QACvC,IAAIE,UAAUa,KAAK,IAAIb,UAAUc,MAAM,EAAE;YACvCJ,YAAYhB;YACZiB,aAAaI,KAAKC,GAAG,CACnBD,KAAKE,KAAK,CAAC,AAACjB,UAAUc,MAAM,GAAGd,UAAUa,KAAK,GAAInB,gBAClD;QAEJ,OAAO;YACLgB,YAAYK,KAAKC,GAAG,CAClBD,KAAKE,KAAK,CAAC,AAACjB,UAAUa,KAAK,GAAGb,UAAUc,MAAM,GAAIpB,gBAClD;YAEFiB,aAAajB;QACf;QAEA,IAAIS,OAAO;YACT,8EAA8E;YAC9E,qEAAqE;YACrE,uEAAuE;YACvE,MAAMe,SAAS;YACf,MAAMC,MAAM,IAAIC,IAAI,CAAC,EAAEnB,YAAY,GAAG,YAAY,CAAC,EAAEiB;YACrDC,IAAIE,YAAY,CAACC,GAAG,CAAC,OAAOpB;YAC5BiB,IAAIE,YAAY,CAACC,GAAG,CAAC,KAAKC,OAAOb;YACjCS,IAAIE,YAAY,CAACC,GAAG,CAAC,KAAKC,OAAO5B;YACjCc,cAAcU,IAAIK,IAAI,CAACC,KAAK,CAACP,OAAOQ,MAAM;QAC5C,OAAO;YACL,MAAMC,kBAAkBvB,QAAQ;YAChC,MAAMwB,eAAe,MAAMD,gBAAgBnB,YAAY,CAAC,IACtDf,cAAc;oBACZoC,QAAQ/B;oBACRe,OAAOH;oBACPI,QAAQH;oBACRmB,aAAa,CAAC,MAAM,EAAE/B,UAAU,CAAC;oBACjCgC,SAASpC;gBACX;YAEF,MAAMqC,kBAAkB5B,QAAQ;YAChCK,cAAcuB,gBAAgB3B,OAAO,CACnC,IACE,CAAC,WAAW,EAAEN,UAAU,QAAQ,EAAE6B,aAAaK,QAAQ,CAAC,UAAU,CAAC;QAEzE;IACF;IACA,OAAO;QACLC,SAASzB;QACTI,OAAOH;QACPI,QAAQH;IACV;AACF"}
|
||||
53
node_modules/next/dist/esm/build/webpack/loaders/next-image-loader/index.js
generated
vendored
Normal file
53
node_modules/next/dist/esm/build/webpack/loaders/next-image-loader/index.js
generated
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
import path from "path";
|
||||
import loaderUtils from "next/dist/compiled/loader-utils3";
|
||||
import { getImageSize } from "../../../../server/image-optimizer";
|
||||
import { getBlurImage } from "./blur";
|
||||
function nextImageLoader(content) {
|
||||
const imageLoaderSpan = this.currentTraceSpan.traceChild("next-image-loader");
|
||||
return imageLoaderSpan.traceAsyncFn(async ()=>{
|
||||
const options = this.getOptions();
|
||||
const { compilerType, isDev, assetPrefix, basePath } = options;
|
||||
const context = this.rootContext;
|
||||
const opts = {
|
||||
context,
|
||||
content
|
||||
};
|
||||
const interpolatedName = loaderUtils.interpolateName(this, "/static/media/[name].[hash:8].[ext]", opts);
|
||||
const outputPath = assetPrefix + "/_next" + interpolatedName;
|
||||
let extension = loaderUtils.interpolateName(this, "[ext]", opts);
|
||||
if (extension === "jpg") {
|
||||
extension = "jpeg";
|
||||
}
|
||||
const imageSizeSpan = imageLoaderSpan.traceChild("image-size-calculation");
|
||||
const imageSize = await imageSizeSpan.traceAsyncFn(()=>getImageSize(content, extension).catch((err)=>err));
|
||||
if (imageSize instanceof Error) {
|
||||
const err = imageSize;
|
||||
err.name = "InvalidImageFormatError";
|
||||
throw err;
|
||||
}
|
||||
const { dataURL: blurDataURL, width: blurWidth, height: blurHeight } = await getBlurImage(content, extension, imageSize, {
|
||||
basePath,
|
||||
outputPath,
|
||||
isDev,
|
||||
tracing: imageLoaderSpan.traceChild.bind(imageLoaderSpan)
|
||||
});
|
||||
const stringifiedData = imageLoaderSpan.traceChild("image-data-stringify").traceFn(()=>JSON.stringify({
|
||||
src: outputPath,
|
||||
height: imageSize.height,
|
||||
width: imageSize.width,
|
||||
blurDataURL,
|
||||
blurWidth,
|
||||
blurHeight
|
||||
}));
|
||||
if (compilerType === "client") {
|
||||
this.emitFile(interpolatedName, content, null);
|
||||
} else {
|
||||
this.emitFile(path.join("..", isDev || compilerType === "edge-server" ? "" : "..", interpolatedName), content, null);
|
||||
}
|
||||
return `export default ${stringifiedData};`;
|
||||
});
|
||||
}
|
||||
export const raw = true;
|
||||
export default nextImageLoader;
|
||||
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/next/dist/esm/build/webpack/loaders/next-image-loader/index.js.map
generated
vendored
Normal file
1
node_modules/next/dist/esm/build/webpack/loaders/next-image-loader/index.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["../../../../../src/build/webpack/loaders/next-image-loader/index.ts"],"names":["path","loaderUtils","getImageSize","getBlurImage","nextImageLoader","content","imageLoaderSpan","currentTraceSpan","traceChild","traceAsyncFn","options","getOptions","compilerType","isDev","assetPrefix","basePath","context","rootContext","opts","interpolatedName","interpolateName","outputPath","extension","imageSizeSpan","imageSize","catch","err","Error","name","dataURL","blurDataURL","width","blurWidth","height","blurHeight","tracing","bind","stringifiedData","traceFn","JSON","stringify","src","emitFile","join","raw"],"mappings":"AAEA,OAAOA,UAAU,OAAM;AACvB,OAAOC,iBAAiB,mCAAkC;AAC1D,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,YAAY,QAAQ,SAAQ;AASrC,SAASC,gBAA2BC,OAAe;IACjD,MAAMC,kBAAkB,IAAI,CAACC,gBAAgB,CAACC,UAAU,CAAC;IACzD,OAAOF,gBAAgBG,YAAY,CAAC;QAClC,MAAMC,UAAmB,IAAI,CAACC,UAAU;QACxC,MAAM,EAAEC,YAAY,EAAEC,KAAK,EAAEC,WAAW,EAAEC,QAAQ,EAAE,GAAGL;QACvD,MAAMM,UAAU,IAAI,CAACC,WAAW;QAEhC,MAAMC,OAAO;YAAEF;YAASX;QAAQ;QAChC,MAAMc,mBAAmBlB,YAAYmB,eAAe,CAClD,IAAI,EACJ,uCACAF;QAEF,MAAMG,aAAaP,cAAc,WAAWK;QAC5C,IAAIG,YAAYrB,YAAYmB,eAAe,CAAC,IAAI,EAAE,SAASF;QAC3D,IAAII,cAAc,OAAO;YACvBA,YAAY;QACd;QAEA,MAAMC,gBAAgBjB,gBAAgBE,UAAU,CAAC;QACjD,MAAMgB,YAAY,MAAMD,cAAcd,YAAY,CAAC,IACjDP,aAAaG,SAASiB,WAAWG,KAAK,CAAC,CAACC,MAAQA;QAGlD,IAAIF,qBAAqBG,OAAO;YAC9B,MAAMD,MAAMF;YACZE,IAAIE,IAAI,GAAG;YACX,MAAMF;QACR;QAEA,MAAM,EACJG,SAASC,WAAW,EACpBC,OAAOC,SAAS,EAChBC,QAAQC,UAAU,EACnB,GAAG,MAAM/B,aAAaE,SAASiB,WAAWE,WAAW;YACpDT;YACAM;YACAR;YACAsB,SAAS7B,gBAAgBE,UAAU,CAAC4B,IAAI,CAAC9B;QAC3C;QAEA,MAAM+B,kBAAkB/B,gBACrBE,UAAU,CAAC,wBACX8B,OAAO,CAAC,IACPC,KAAKC,SAAS,CAAC;gBACbC,KAAKpB;gBACLY,QAAQT,UAAUS,MAAM;gBACxBF,OAAOP,UAAUO,KAAK;gBACtBD;gBACAE;gBACAE;YACF;QAGJ,IAAItB,iBAAiB,UAAU;YAC7B,IAAI,CAAC8B,QAAQ,CAACvB,kBAAkBd,SAAS;QAC3C,OAAO;YACL,IAAI,CAACqC,QAAQ,CACX1C,KAAK2C,IAAI,CACP,MACA9B,SAASD,iBAAiB,gBAAgB,KAAK,MAC/CO,mBAEFd,SACA;QAEJ;QAEA,OAAO,CAAC,eAAe,EAAEgC,gBAAgB,CAAC,CAAC;IAC7C;AACF;AACA,OAAO,MAAMO,MAAM,KAAI;AACvB,eAAexC,gBAAe"}
|
||||
Reference in New Issue
Block a user