MCPcopy Index your code
hub / github.com/doesdev/rollup-plugin-analyzer / plugin

Function plugin

index.js:172–215  ·  view source on GitHub ↗
(opts = {})

Source from the content-addressed store, hash-verified

170});
171
172const plugin = (opts = {}) => {
173 const writeTo = opts.writeTo || (opts.stdout ? console.log : console.error);
174
175 const onAnalysis = (analysis) => {
176 if (typeof opts.onAnalysis === 'function') opts.onAnalysis(analysis);
177 if (!opts.skipFormatted) writeTo(reporter(analysis, opts));
178 };
179
180 return {
181 name: 'rollup-plugin-analyzer',
182 buildStart: function () {
183 const ctx = this || {};
184 if (!ctx.meta || +(ctx.meta.rollupVersion || 0).charAt(0) < 1) {
185 const msg = '' +
186 `rollup-plugin-analyzer: Rollup version not supported\n${tab}` +
187 `Starting with 3.0.0 only Rollup >= 1.0.0 is supported\n${tab}` +
188 'Use rollup-plugin-analyzer 2.1.0 for prior Rollup versions';
189 console.error(msg);
190 }
191 },
192 generateBundle: function (outOpts, bundle, isWrite) {
193 const ctx = this || {};
194 if (!ctx.meta || +(ctx.meta.rollupVersion || 0).charAt(0) < 1) return null
195 const getDeps = (id) => {
196 return ctx.getModuleInfo ? ctx.getModuleInfo(id).importedIds : []
197 };
198
199 return new Promise((resolve, reject) => {
200 resolve();
201
202 const modules = [];
203 Object.entries(bundle).forEach(([outId, { modules: bundleMods }]) => {
204 bundleMods = bundleMods || {};
205 Object.entries(bundleMods).forEach(([id, moduleInfo]) => {
206 const dependencies = getDeps(id);
207 modules.push(Object.assign({}, moduleInfo, { id, dependencies }));
208 });
209 });
210
211 return analyze({ modules }, opts).then(onAnalysis).catch(console.error)
212 })
213 }
214 }
215};
216
217Object.assign(plugin, { plugin, analyze, formatted, reporter });
218

Callers 1

test.jsFile · 0.50

Calls 2

getDepsFunction · 0.70
analyzeFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…