Skip to content

Commit a162f37

Browse files
committed
refactor: enable isolatedDeclarations
1 parent 6a82cbb commit a162f37

10 files changed

+174
-34
lines changed

src/esbuild.ts

+20-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1-
import unplugin from '.'
1+
/**
2+
* This entry file is for esbuild plugin.
3+
*
4+
* @module
5+
*/
26

3-
export default unplugin.esbuild
7+
import LightningCSS from './index'
8+
9+
/**
10+
* Esbuild plugin
11+
*
12+
* @example
13+
* ```ts
14+
* import { build } from 'esbuild'
15+
*
16+
* build({
17+
* plugins: [require('unplugin-isolated-decl/esbuild')()],
18+
* })
19+
* ```
20+
*/
21+
export default LightningCSS.esbuild as typeof LightningCSS.esbuild

src/farm.ts

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1-
import unplugin from '.'
1+
/**
2+
* This entry file is for Farm plugin.
3+
*
4+
* @module
5+
*/
26

3-
export default unplugin.farm
7+
import LightningCSS from './index'
8+
9+
/**
10+
* Farm plugin
11+
*
12+
* @example
13+
* ```ts
14+
* // farm.config.js
15+
* import LightningCSS from 'unplugin-isolated-decl/farm'
16+
*
17+
* export default {
18+
* plugins: [LightningCSS()],
19+
* }
20+
* ```
21+
*/
22+
export default LightningCSS.farm as typeof LightningCSS.farm

src/index.ts

+21-17
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,36 @@
11
import { Buffer } from 'node:buffer'
2-
import { createUnplugin } from 'unplugin'
32
import { createFilter } from '@rollup/pluginutils'
43
import { transform } from 'lightningcss'
5-
import { type Options, resolveOption } from './core/options'
4+
import { createUnplugin, type UnpluginInstance } from 'unplugin'
5+
import { resolveOption, type Options } from './core/options'
66

77
const postfixRE = /[#?].*$/s
88
function cleanUrl(url: string): string {
99
return url.replace(postfixRE, '')
1010
}
1111

12-
export default createUnplugin<Options | undefined, false>((rawOptions = {}) => {
13-
const options = resolveOption(rawOptions)
14-
const filter = createFilter(options.include, options.exclude)
12+
const plugin: UnpluginInstance<Options | undefined, false> = createUnplugin(
13+
(rawOptions = {}) => {
14+
const options = resolveOption(rawOptions)
15+
const filter = createFilter(options.include, options.exclude)
1516

16-
const name = 'unplugin-lightningcss'
17-
return {
18-
name,
19-
enforce: options.enforce,
17+
const name = 'unplugin-lightningcss'
18+
return {
19+
name,
20+
enforce: options.enforce,
2021

21-
transformInclude(id) {
22-
return filter(id)
23-
},
22+
transformInclude(id) {
23+
return filter(id)
24+
},
2425

25-
transform(code, id) {
26-
return transformCss(id, code, options.options)
27-
},
28-
}
29-
})
26+
transform(code, id) {
27+
return transformCss(id, code, options.options)
28+
},
29+
}
30+
},
31+
)
32+
33+
export default plugin
3034

3135
function transformCss(id: string, code: string, options: Options['options']) {
3236
const filename = cleanUrl(id)

src/rolldown.ts

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1-
import unplugin from '.'
1+
/**
2+
* This entry file is for Rolldown plugin.
3+
*
4+
* @module
5+
*/
26

3-
export default unplugin.rolldown
7+
import LightningCSS from './index'
8+
9+
/**
10+
* Rolldown plugin
11+
*
12+
* @example
13+
* ```ts
14+
* // rolldown.config.js
15+
* import LightningCSS from 'unplugin-isolated-decl/rolldown'
16+
*
17+
* export default {
18+
* plugins: [LightningCSS()],
19+
* }
20+
* ```
21+
*/
22+
export default LightningCSS.rolldown as typeof LightningCSS.rolldown

src/rollup.ts

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1-
import unplugin from '.'
1+
/**
2+
* This entry file is for Rollup plugin.
3+
*
4+
* @module
5+
*/
26

3-
export default unplugin.rollup
7+
import LightningCSS from './index'
8+
9+
/**
10+
* Rollup plugin
11+
*
12+
* @example
13+
* ```ts
14+
* // rollup.config.js
15+
* import LightningCSS from 'unplugin-isolated-decl/rollup'
16+
*
17+
* export default {
18+
* plugins: [LightningCSS()],
19+
* }
20+
* ```
21+
*/
22+
export default LightningCSS.rollup as typeof LightningCSS.rollup

src/rspack.ts

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1-
import unplugin from '.'
1+
/**
2+
* This entry file is for Vite plugin.
3+
*
4+
* @module
5+
*/
26

3-
export default unplugin.rspack
7+
import LightningCSS from './index'
8+
9+
/**
10+
* Vite plugin
11+
*
12+
* @example
13+
* ```ts
14+
* // rspack.config.js
15+
* import LightningCSS from 'unplugin-isolated-decl/rspack'
16+
*
17+
* export default {
18+
* plugins: [LightningCSS()],
19+
* }
20+
* ```
21+
*/
22+
export default LightningCSS.rspack as typeof LightningCSS.rspack

src/vite.ts

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1-
import unplugin from '.'
1+
/**
2+
* This entry file is for Vite plugin.
3+
*
4+
* @module
5+
*/
26

3-
export default unplugin.vite
7+
import LightningCSS from './index'
8+
9+
/**
10+
* Vite plugin
11+
*
12+
* @example
13+
* ```ts
14+
* // vite.config.js
15+
* import LightningCSS from 'unplugin-isolated-decl/vite'
16+
*
17+
* export default {
18+
* plugins: [LightningCSS()],
19+
* }
20+
* ```
21+
*/
22+
export default LightningCSS.vite as typeof LightningCSS.vite

src/webpack.ts

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1-
import unplugin from '.'
1+
/**
2+
* This entry file is for Vite plugin.
3+
*
4+
* @module
5+
*/
26

3-
export default unplugin.webpack
7+
import LightningCSS from './index'
8+
9+
/**
10+
* Vite plugin
11+
*
12+
* @example
13+
* ```ts
14+
* // webpack.config.js
15+
* import LightningCSS from 'unplugin-isolated-decl/webpack'
16+
*
17+
* export default {
18+
* plugins: [LightningCSS()],
19+
* }
20+
* ```
21+
*/
22+
export default LightningCSS.webpack as typeof LightningCSS.webpack

tests/transform.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { resolve } from 'node:path'
2-
import { describe } from 'vitest'
32
import { rollupBuild, testFixtures } from '@sxzz/test-utils'
43
import css from 'rollup-plugin-css-only'
4+
import { describe } from 'vitest'
55
import LightningCSS from '../src/rollup'
66

77
describe('transform', async () => {

tsconfig.json

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
{
22
"compilerOptions": {
33
"target": "esnext",
4-
"jsx": "preserve",
54
"lib": ["es2022"],
6-
"module": "esnext",
5+
"moduleDetection": "force",
6+
"module": "preserve",
77
"moduleResolution": "bundler",
88
"resolveJsonModule": true,
99
"types": ["node"],
1010
"strict": true,
1111
"noUnusedLocals": true,
12+
"declaration": true,
13+
"isolatedDeclarations": true,
1214
"esModuleInterop": true,
15+
"isolatedModules": true,
16+
"verbatimModuleSyntax": true,
1317
"skipLibCheck": true
1418
},
1519
"include": ["src", "tests"],

0 commit comments

Comments
 (0)