Skip to content
This repository was archived by the owner on Jul 6, 2025. It is now read-only.

Commit 4610fae

Browse files
author
X
authored
refactor: simplify
1 parent 77571e3 commit 4610fae

File tree

1 file changed

+25
-54
lines changed

1 file changed

+25
-54
lines changed

plugins/sass.ts

Lines changed: 25 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,42 @@
11
import { Options, renderSync } from 'https://esm.sh/[email protected]'
22

3-
const defaultOptions = {
3+
const defaultPlugin = {
44
name: 'sass-loader',
55
test: /.(sass|scss)$/,
66
acceptHMR: true,
77
transform(content: Uint8Array, path: string) {
8-
if (path.endsWith('.sass')) {
9-
const ret = renderSync({
10-
file: path,
11-
data: (new TextDecoder).decode(content),
12-
sourceMap: true,
13-
indentedSyntax: true
14-
})
15-
return {
16-
code: (new TextDecoder).decode(ret.css),
17-
map: ret.map ? (new TextDecoder).decode(ret.map) : undefined,
18-
loader: 'css'
19-
}
20-
} else {
21-
const ret = renderSync({
22-
file: path,
23-
data: (new TextDecoder).decode(content),
24-
sourceMap: true
25-
})
26-
return {
27-
code: (new TextDecoder).decode(ret.css),
28-
map: ret.map ? (new TextDecoder).decode(ret.map) : undefined,
29-
loader: 'css'
30-
}
8+
const ret = renderSync({
9+
file: path,
10+
data: (new TextDecoder).decode(content),
11+
sourceMap: true,
12+
indentedSyntax: path.endsWith('.sass')
13+
})
14+
return {
15+
code: (new TextDecoder).decode(ret.css),
16+
map: ret.map ? (new TextDecoder).decode(ret.map) : undefined,
17+
loader: 'css'
3118
}
3219
}
3320
}
3421

3522
let plugin: any = (opts: Options) => ({
36-
name: 'sass-loader',
37-
test: /.(sass|scss)$/,
38-
acceptHMR: true,
23+
...defaultPlugin,
3924
transform(content: Uint8Array, path: string) {
40-
if (path.endsWith('.sass')) {
41-
const ret = renderSync({
42-
...opts,
43-
file: path,
44-
data: (new TextDecoder).decode(content),
45-
sourceMap: true,
46-
indentedSyntax: true
47-
})
48-
return {
49-
code: (new TextDecoder).decode(ret.css),
50-
map: ret.map ? (new TextDecoder).decode(ret.map) : undefined,
51-
loader: 'css'
52-
}
53-
} else {
54-
const ret = renderSync({
55-
...opts,
56-
file: path,
57-
data: (new TextDecoder).decode(content),
58-
sourceMap: true
59-
})
60-
return {
61-
code: (new TextDecoder).decode(ret.css),
62-
map: ret.map ? (new TextDecoder).decode(ret.map) : undefined,
63-
loader: 'css'
64-
}
25+
const ret = renderSync({
26+
indentedSyntax: path.endsWith('.sass'),
27+
...opts,
28+
file: path,
29+
data: (new TextDecoder).decode(content),
30+
sourceMap: true
31+
})
32+
return {
33+
code: (new TextDecoder).decode(ret.css),
34+
map: ret.map ? (new TextDecoder).decode(ret.map) : undefined,
35+
loader: 'css'
6536
}
6637
}
6738
})
6839

69-
plugin = { ...plugin, ...defaultOptions }
40+
plugin = { ...plugin, ...defaultPlugin }
7041

71-
export default plugin;
42+
export default plugin;

0 commit comments

Comments
 (0)