UNPKG

3.6 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/utils/gatsby-webpack-stats-extractor.js"],"names":["fs","require","path","GatsbyWebpackStatsExtractor","constructor","options","plugin","name","apply","compiler","hooks","done","tapAsync","stats","assets","assetsMap","chunkGroup","compilation","chunkGroups","files","chunk","chunks","push","filter","f","slice","length","map","filename","webpackStats","toJson","all","assetsByChunkName","writeFile","join","JSON","stringify","module","exports"],"mappings":";;AAAA,MAAMA,EAAE,GAAGC,OAAO,CAAE,UAAF,CAAlB;;AACA,MAAMC,IAAI,GAAGD,OAAO,CAAE,MAAF,CAApB;;AAEA,MAAME,2BAAN,CAAkC;AAChCC,EAAAA,WAAW,CAACC,OAAD,EAAU;AACnB,SAAKC,MAAL,GAAc;AAAEC,MAAAA,IAAI,EAAG;AAAT,KAAd;AACA,SAAKF,OAAL,GAAeA,OAAO,IAAI,EAA1B;AACD;;AACDG,EAAAA,KAAK,CAACC,QAAD,EAAW;AACdA,IAAAA,QAAQ,CAACC,KAAT,CAAeC,IAAf,CAAoBC,QAApB,CAA6B,KAAKN,MAAL,CAAYC,IAAzC,EAA+C,CAACM,KAAD,EAAQF,IAAR,KAAiB;AAC9D,UAAIG,MAAM,GAAG,EAAb;AACA,UAAIC,SAAS,GAAG,EAAhB;;AACA,WAAK,IAAIC,UAAT,IAAuBH,KAAK,CAACI,WAAN,CAAkBC,WAAzC,EAAsD;AACpD,YAAIF,UAAU,CAACT,IAAf,EAAqB;AACnB,cAAIY,KAAK,GAAG,EAAZ;;AACA,eAAK,IAAIC,KAAT,IAAkBJ,UAAU,CAACK,MAA7B,EAAqC;AACnCF,YAAAA,KAAK,CAACG,IAAN,CAAW,GAAGF,KAAK,CAACD,KAApB;AACD;;AACDL,UAAAA,MAAM,CAACE,UAAU,CAACT,IAAZ,CAAN,GAA0BY,KAAK,CAACI,MAAN,CAAaC,CAAC,IAAIA,CAAC,CAACC,KAAF,CAAQ,CAAC,CAAT,MAAiB,MAAnC,CAA1B;AACAV,UAAAA,SAAS,CAACC,UAAU,CAACT,IAAZ,CAAT,GAA6BY,KAAK,CAC/BI,MAD0B,CAEzBC,CAAC,IACCA,CAAC,CAACC,KAAF,CAAQ,CAAC,CAAT,MAAiB,MAAjB,IACAD,CAAC,CAACC,KAAF,CAAQ,CAAR,EAAWT,UAAU,CAACT,IAAX,CAAgBmB,MAA3B,MAAuCV,UAAU,CAACT,IAJ3B,EAM1BoB,GAN0B,CAMtBC,QAAQ,IAAK,IAAGA,QAAS,EANH,CAA7B;AAOD;AACF;;AACD,YAAMC,YAAY,qBACbhB,KAAK,CAACiB,MAAN,CAAa;AAAEC,QAAAA,GAAG,EAAE,KAAP;AAAcb,QAAAA,WAAW,EAAE;AAA3B,OAAb,CADa;AAEhBc,QAAAA,iBAAiB,EAAElB;AAFH,QAAlB;AAIAd,MAAAA,EAAE,CAACiC,SAAH,CACE/B,IAAI,CAACgC,IAAL,CAAW,QAAX,EAAqB,gBAArB,CADF,EAEEC,IAAI,CAACC,SAAL,CAAerB,SAAf,CAFF,EAGE,MAAM;AACJf,QAAAA,EAAE,CAACiC,SAAH,CACE/B,IAAI,CAACgC,IAAL,CAAW,QAAX,EAAqB,oBAArB,CADF,EAEEC,IAAI,CAACC,SAAL,CAAeP,YAAf,CAFF,EAGElB,IAHF;AAKD,OATH;AAWD,KAlCD;AAmCD;;AAzC+B;;AA4ClC0B,MAAM,CAACC,OAAP,GAAiBnC,2BAAjB","sourcesContent":["const fs = require(`fs-extra`)\nconst path = require(`path`)\n\nclass GatsbyWebpackStatsExtractor {\n constructor(options) {\n this.plugin = { name: `GatsbyWebpackStatsExtractor` }\n this.options = options || {}\n }\n apply(compiler) {\n compiler.hooks.done.tapAsync(this.plugin.name, (stats, done) => {\n let assets = {}\n let assetsMap = {}\n for (let chunkGroup of stats.compilation.chunkGroups) {\n if (chunkGroup.name) {\n let files = []\n for (let chunk of chunkGroup.chunks) {\n files.push(...chunk.files)\n }\n assets[chunkGroup.name] = files.filter(f => f.slice(-4) !== `.map`)\n assetsMap[chunkGroup.name] = files\n .filter(\n f =>\n f.slice(-4) !== `.map` &&\n f.slice(0, chunkGroup.name.length) === chunkGroup.name\n )\n .map(filename => `/${filename}`)\n }\n }\n const webpackStats = {\n ...stats.toJson({ all: false, chunkGroups: true }),\n assetsByChunkName: assets,\n }\n fs.writeFile(\n path.join(`public`, `chunk-map.json`),\n JSON.stringify(assetsMap),\n () => {\n fs.writeFile(\n path.join(`public`, `webpack.stats.json`),\n JSON.stringify(webpackStats),\n done\n )\n }\n )\n })\n }\n}\n\nmodule.exports = GatsbyWebpackStatsExtractor\n"],"file":"gatsby-webpack-stats-extractor.js"}
\No newline at end of file