Skip to content

Commit be2c9c6

Browse files
committed
refactor: Extract rollup plugin
1 parent c31059c commit be2c9c6

File tree

3 files changed

+37
-28
lines changed

3 files changed

+37
-28
lines changed

rollup.types.config.ts

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as rollup from 'rollup'
22
import dts from 'rollup-plugin-dts'
33
import pkg from './package.json'
4+
import removeVscodeDeclareModule from './rollup/rollup-plugin-remove-vscode-declare-module'
45

56
const externals = [
67
...Object.keys(pkg.dependencies),
@@ -25,33 +26,7 @@ export default rollup.defineConfig({
2526
return externals.some(external => source.startsWith(external))
2627
},
2728
plugins: [
28-
{
29-
// Remove "declare module 'vscode'" from vscode type
30-
// Or else dts plugin is unable to extract types from it
31-
name: 'remove-vscode-declare-module',
32-
transform: (code, id) => {
33-
if (id.endsWith('@types/vscode/index.d.ts')) {
34-
const lines = code.split('\n')
35-
let index = lines.indexOf('declare module \'vscode\' {')
36-
lines.splice(index, 1)
37-
if (index >= 0) {
38-
let end = false
39-
while (!end) {
40-
if (lines[index] === '}') {
41-
lines.splice(index, 1)
42-
end = true
43-
} else {
44-
// unindent
45-
lines[index] = lines[index].slice(4)
46-
}
47-
index++
48-
}
49-
}
50-
return lines.join('\n')
51-
}
52-
return code
53-
}
54-
},
29+
removeVscodeDeclareModule(),
5530
dts({
5631
respectExternal: true
5732
})
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { PluginImpl } from 'rollup'
2+
3+
const plugin: PluginImpl<{}> = () => {
4+
return {
5+
// Remove "declare module 'vscode'" from vscode type
6+
// Or else dts plugin is unable to extract types from it
7+
name: 'remove-vscode-declare-module',
8+
transform (code, id) {
9+
if (id.endsWith('@types/vscode/index.d.ts')) {
10+
const lines = code.split('\n')
11+
let index = lines.indexOf('declare module \'vscode\' {')
12+
lines.splice(index, 1)
13+
if (index >= 0) {
14+
let end = false
15+
while (!end) {
16+
if (lines[index] === '}') {
17+
lines.splice(index, 1)
18+
end = true
19+
} else {
20+
// unindent
21+
lines[index] = lines[index].slice(4)
22+
}
23+
index++
24+
}
25+
}
26+
return lines.join('\n')
27+
}
28+
return code
29+
}
30+
31+
}
32+
}
33+
34+
export default plugin

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"sourceMap": true,
2424
"target": "es5"
2525
},
26-
"include": ["src", "update-extensions.ts", "rollup.config.ts", "rollup.types.config.ts"],
26+
"include": ["src", "rollup", "update-extensions.ts", "rollup.config.ts", "rollup.types.config.ts"],
2727
"exclude": [
2828
"dist",
2929
"node_modules"

0 commit comments

Comments
 (0)