Skip to content

Commit 506d93f

Browse files
committed
Remove support for rollup < 1.0.0, support 1.0.0
1 parent ecfafca commit 506d93f

5 files changed

Lines changed: 1099 additions & 1396 deletions

File tree

index.js

Lines changed: 27 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ const reporter = (analysis, opts) => {
4242
formatted += `${tab}-${buf}${d.replace(root, '')}\n`;
4343
});
4444
}
45-
if (showExports && m.usedExports && m.unusedExports) {
46-
formatted += `used exports: ${buf}${m.usedExports.length}\n`;
47-
m.usedExports.forEach((e) => {
45+
if (showExports && m.renderedExports && m.removedExports) {
46+
formatted += `used exports: ${buf}${m.renderedExports.length}\n`;
47+
m.renderedExports.forEach((e) => {
4848
formatted += `${tab}-${buf}${e}\n`;
4949
});
50-
formatted += `unused exports: ${buf}${m.unusedExports.length}\n`;
51-
m.unusedExports.forEach((e) => {
50+
formatted += `unused exports: ${buf}${m.removedExports.length}\n`;
51+
m.removedExports.forEach((e) => {
5252
formatted += `${tab}-${buf}${e}\n`;
5353
});
5454
}
@@ -65,7 +65,7 @@ const analyzer = (bundle, opts = {}) => {
6565
let deps = {};
6666
let bundleSize = 0;
6767
let bundleOrigSize = 0;
68-
let bundleModules = bundle.modules || [];
68+
let bundleModules = bundle.modules || (bundle.cache || {}).modules || [];
6969
let moduleCount = bundleModules.length;
7070

7171
let modules = bundleModules.map((m, i) => {
@@ -74,8 +74,8 @@ const analyzer = (bundle, opts = {}) => {
7474
originalLength: origSize,
7575
renderedLength,
7676
code,
77-
usedExports,
78-
unusedExports
77+
renderedExports,
78+
removedExports
7979
} = m;
8080
id = id.replace(root, '');
8181
if (transformModuleId) id = transformModuleId(id);
@@ -94,7 +94,7 @@ const analyzer = (bundle, opts = {}) => {
9494
deps[d].push(id);
9595
});
9696

97-
return { id, size, origSize, usedExports, unusedExports }
97+
return { id, size, origSize, renderedExports, removedExports }
9898
}).filter((m) => m);
9999

100100
modules.sort((a, b) => b.size - a.size);
@@ -127,42 +127,32 @@ const formatted = (bundle, opts) => new Promise((resolve, reject) => {
127127

128128
const plugin = (opts = {}) => {
129129
let writeTo = opts.writeTo || (opts.stdout ? console.log : console.error);
130-
let depMap = {};
131130

132131
let onAnalysis = (analysis) => {
133132
if (typeof opts.onAnalysis === 'function') opts.onAnalysis(analysis);
134133
if (!opts.skipFormatted) writeTo(reporter(analysis, opts));
135134
};
136135

137-
let runAnalysis = (out, bundle, isWrite) => new Promise((resolve, reject) => {
138-
resolve();
139-
if (out.bundle) bundle = out.bundle;
140-
let modules = bundle.modules;
141-
142-
if (Array.isArray(modules)) {
143-
return analyze({ modules }, opts).then(onAnalysis).catch(console.error)
144-
}
145-
146-
modules = Object.keys(modules).map((k) => {
147-
let module = Object.assign(modules[k], depMap[k] || {});
148-
module.usedExports = module.renderedExports;
149-
module.unusedExports = module.removedExports;
150-
return module
151-
});
152-
return analyze({ modules }, opts).then(onAnalysis).catch(console.error)
153-
});
154-
155136
return {
156137
name: 'rollup-plugin-analyzer',
157-
transformChunk: (_a, _b, chunk) => new Promise((resolve, reject) => {
158-
resolve(null);
159-
if (!chunk || !chunk.orderedModules) return
160-
chunk.orderedModules.forEach(({ id, dependencies }) => {
161-
depMap[id] = { id, dependencies: dependencies.map((d) => d.id) };
162-
});
163-
}),
164-
generateBundle: runAnalysis,
165-
ongenerate: runAnalysis
138+
generateBundle: function (outOpts, bundle, isWrite) {
139+
const ctx = this || {};
140+
const getDeps = (id) => {
141+
return ctx.getModuleInfo ? ctx.getModuleInfo(id).importedIds : []
142+
};
143+
144+
return new Promise((resolve, reject) => {
145+
resolve();
146+
const modules = [];
147+
Object.entries(bundle).forEach(([outId, { modules: bundleMods }]) => {
148+
Object.entries(bundleMods).forEach(([id, moduleInfo]) => {
149+
const dependencies = getDeps(id);
150+
modules.push(Object.assign({}, moduleInfo, { id, dependencies }));
151+
});
152+
});
153+
return analyze({ modules }, opts).then(onAnalysis).catch(console.error)
154+
})
155+
}
166156
}
167157
};
168158

module.js

Lines changed: 27 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ export const reporter = (analysis, opts) => {
4040
formatted += `${tab}-${buf}${d.replace(root, '')}\n`
4141
})
4242
}
43-
if (showExports && m.usedExports && m.unusedExports) {
44-
formatted += `used exports: ${buf}${m.usedExports.length}\n`
45-
m.usedExports.forEach((e) => {
43+
if (showExports && m.renderedExports && m.removedExports) {
44+
formatted += `used exports: ${buf}${m.renderedExports.length}\n`
45+
m.renderedExports.forEach((e) => {
4646
formatted += `${tab}-${buf}${e}\n`
4747
})
48-
formatted += `unused exports: ${buf}${m.unusedExports.length}\n`
49-
m.unusedExports.forEach((e) => {
48+
formatted += `unused exports: ${buf}${m.removedExports.length}\n`
49+
m.removedExports.forEach((e) => {
5050
formatted += `${tab}-${buf}${e}\n`
5151
})
5252
}
@@ -63,7 +63,7 @@ const analyzer = (bundle, opts = {}) => {
6363
let deps = {}
6464
let bundleSize = 0
6565
let bundleOrigSize = 0
66-
let bundleModules = bundle.modules || []
66+
let bundleModules = bundle.modules || (bundle.cache || {}).modules || []
6767
let moduleCount = bundleModules.length
6868

6969
let modules = bundleModules.map((m, i) => {
@@ -72,8 +72,8 @@ const analyzer = (bundle, opts = {}) => {
7272
originalLength: origSize,
7373
renderedLength,
7474
code,
75-
usedExports,
76-
unusedExports
75+
renderedExports,
76+
removedExports
7777
} = m
7878
id = id.replace(root, '')
7979
if (transformModuleId) id = transformModuleId(id)
@@ -92,7 +92,7 @@ const analyzer = (bundle, opts = {}) => {
9292
deps[d].push(id)
9393
})
9494

95-
return { id, size, origSize, usedExports, unusedExports }
95+
return { id, size, origSize, renderedExports, removedExports }
9696
}).filter((m) => m)
9797

9898
modules.sort((a, b) => b.size - a.size)
@@ -132,34 +132,26 @@ export const plugin = (opts = {}) => {
132132
if (!opts.skipFormatted) writeTo(reporter(analysis, opts))
133133
}
134134

135-
let runAnalysis = (out, bundle, isWrite) => new Promise((resolve, reject) => {
136-
resolve()
137-
if (out.bundle) bundle = out.bundle
138-
let modules = bundle.modules
139-
140-
if (Array.isArray(modules)) {
141-
return analyze({ modules }, opts).then(onAnalysis).catch(console.error)
142-
}
143-
144-
modules = Object.keys(modules).map((k) => {
145-
let module = Object.assign(modules[k], depMap[k] || {})
146-
module.usedExports = module.renderedExports
147-
module.unusedExports = module.removedExports
148-
return module
149-
})
150-
return analyze({ modules }, opts).then(onAnalysis).catch(console.error)
151-
})
152-
153135
return {
154136
name: 'rollup-plugin-analyzer',
155-
transformChunk: (_a, _b, chunk) => new Promise((resolve, reject) => {
156-
resolve(null)
157-
if (!chunk || !chunk.orderedModules) return
158-
chunk.orderedModules.forEach(({ id, dependencies }) => {
159-
depMap[id] = { id, dependencies: dependencies.map((d) => d.id) }
137+
generateBundle: function (outOpts, bundle, isWrite) {
138+
const ctx = this || {}
139+
const getDeps = (id) => {
140+
return ctx.getModuleInfo ? ctx.getModuleInfo(id).importedIds : []
141+
}
142+
143+
return new Promise((resolve, reject) => {
144+
resolve()
145+
const modules = []
146+
Object.entries(bundle).forEach(([outId, { modules: bundleMods }]) => {
147+
Object.entries(bundleMods).forEach(([id, moduleInfo]) => {
148+
depMap[id] = moduleInfo
149+
const dependencies = getDeps(id)
150+
modules.push(Object.assign({}, moduleInfo, { id, dependencies }))
151+
})
152+
})
153+
return analyze({ modules }, opts).then(onAnalysis).catch(console.error)
160154
})
161-
}),
162-
generateBundle: runAnalysis,
163-
ongenerate: runAnalysis
155+
}
164156
}
165157
}

package.json

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"module.js"
1010
],
1111
"scripts": {
12-
"test": "rollup -c && ava --verbose",
12+
"test": "rollup -c && ava --verbose --failFast --serial",
1313
"precommit": "rollup -c && ava && git add index.js",
1414
"changelog": "auto-changelog -u -l 50 && git add CHANGELOG.md"
1515
},
@@ -39,14 +39,11 @@
3939
},
4040
"homepage": "https://github.com/doesdev/rollup-plugin-analyzer#readme",
4141
"devDependencies": {
42-
"ava": "^0.25.0",
43-
"husky": "^0.14.3",
44-
"rollup": "latest",
45-
"rollup40": "npm:rollup@0.40.x",
46-
"rollup45": "npm:rollup@0.45.x",
47-
"rollup50": "npm:rollup@0.50.x",
48-
"rollup55": "npm:rollup@0.55.x",
49-
"rollup60": "npm:rollup@0.60.x"
42+
"ava": "^1.0.1",
43+
"husky": "^1.3.1",
44+
"rollup": "npm:rollup@latest",
45+
"rollup60": "npm:rollup@0.60.x",
46+
"rollup100": "npm:rollup@1.0.x"
5047
},
5148
"dependencies": {}
5249
}

test/test.js

Lines changed: 25 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,13 @@ import test from 'ava'
44
import { analyze, formatted, plugin } from './../index'
55
import { resolve as resolvePath, join, basename } from 'path'
66
import { rollup as rollupLatest } from 'rollup'
7-
import { rollup as rollup60 } from 'rollup60'
8-
import { rollup as rollup55 } from 'rollup55'
9-
import { rollup as rollup50 } from 'rollup50'
10-
import { rollup as rollup45 } from 'rollup45'
11-
import { rollup as rollup40 } from 'rollup40'
7+
import { rollup as rollup100 } from 'rollup100'
128
const skipFormatted = true
139
const fixtures = resolvePath(__dirname, 'fixtures')
1410
const baseOpts = {
1511
input: join(fixtures, 'bundle-a.js'),
1612
output: { format: 'cjs' }
1713
}
18-
const oldOpts = {
19-
entry: join(fixtures, 'bundle-a.js'),
20-
format: 'cjs'
21-
}
2214
const multiInputOpts = {
2315
input: [join(fixtures, 'bundle-a.js'), join(fixtures, 'bundle-b.js')],
2416
output: { format: 'cjs', dir: join(fixtures, 'multi') }
@@ -33,11 +25,7 @@ const headerLength = expectHeader.length
3325
// test against many versions of rollup
3426
const rollers = [
3527
{ rollup: rollupLatest, version: 'latest', opts: baseOpts },
36-
{ rollup: rollup60, version: '0.60.x', opts: baseOpts },
37-
{ rollup: rollup55, version: '0.55.x', opts: baseOpts, noTreeshake: true },
38-
{ rollup: rollup50, version: '0.50.x', opts: baseOpts, noTreeshake: true },
39-
{ rollup: rollup45, version: '0.45.x', opts: oldOpts, noTreeshake: true },
40-
{ rollup: rollup40, version: '0.40.x', opts: oldOpts, noTreeshake: true }
28+
{ rollup: rollup100, version: '1.0.x', opts: baseOpts }
4129
]
4230

4331
// main
@@ -142,32 +130,30 @@ rollers.forEach(({ rollup, version, opts, noTreeshake }) => {
142130
assert.is(results.substr(0, expectHeader.length), expectHeader)
143131
})
144132

145-
if (!noTreeshake) {
146-
test(`${version}: tree shaking is accounted for`, async (assert) => {
147-
let results
148-
let onAnalysis = (r) => { results = r.modules }
149-
let plugins = [plugin({ onAnalysis, skipFormatted })]
150-
let rollOpts = Object.assign({}, opts, { plugins })
151-
let bundle = await rollup(rollOpts)
152-
let output = { file: join(fixtures, 'output.js'), format: 'cjs' }
153-
await bundle.write(output)
154-
let imported = results.find((r) => r.id.indexOf('import-a') !== -1)
155-
let expectSize = 27
156-
assert.true(Math.abs(imported.size - expectSize) < 5)
157-
})
133+
test(`${version}: tree shaking is accounted for`, async (assert) => {
134+
let results
135+
let onAnalysis = (r) => { results = r.modules }
136+
let plugins = [plugin({ onAnalysis, skipFormatted })]
137+
let rollOpts = Object.assign({}, opts, { plugins })
138+
let bundle = await rollup(rollOpts)
139+
let output = { file: join(fixtures, 'output.js'), format: 'cjs' }
140+
await bundle.write(output)
141+
let imported = results.find((r) => r.id.indexOf('import-a') !== -1)
142+
let expectSize = 27
143+
assert.true(Math.abs(imported.size - expectSize) < 5)
144+
})
158145

159-
test(`${version}: treeshaken bundle filters with callback`, async (assert) => {
160-
let results
161-
let filter = (m) => m.size > 2000
162-
let onAnalysis = (r) => { results = r.modules }
163-
let plugins = [plugin({ onAnalysis, filter, skipFormatted })]
164-
let rollOpts = Object.assign({}, opts, { plugins })
165-
let bundle = await rollup(rollOpts)
166-
let output = { file: join(fixtures, 'output.js'), format: 'cjs' }
167-
await bundle.write(output)
168-
assert.is(results.length, 1)
169-
})
170-
}
146+
test(`${version}: treeshaken bundle filters with callback`, async (assert) => {
147+
let results
148+
let filter = (m) => m.size > 2000
149+
let onAnalysis = (r) => { results = r.modules }
150+
let plugins = [plugin({ onAnalysis, filter, skipFormatted })]
151+
let rollOpts = Object.assign({}, opts, { plugins })
152+
let bundle = await rollup(rollOpts)
153+
let output = { file: join(fixtures, 'output.js'), format: 'cjs' }
154+
await bundle.write(output)
155+
assert.is(results.length, 1)
156+
})
171157

172158
if (version === '0.60.x') {
173159
let split1 = `${version}: writes expected heading with experimentalCodeSplitting`

0 commit comments

Comments
 (0)