Skip to content

Commit 374440e

Browse files
committed
Refactor
1 parent c6a602a commit 374440e

File tree

1 file changed

+28
-17
lines changed
  • packages/tailwindcss-language-server/src

1 file changed

+28
-17
lines changed

packages/tailwindcss-language-server/src/oxide.ts

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ declare namespace OxideV2 {
3636
}
3737
}
3838

39-
// This covers the Oxide API from v4.0.0-alpha.20+
40-
declare namespace OxideV3 {
39+
// This covers the Oxide API from v4.0.0-alpha.30+
40+
declare namespace OxideV3And4 {
4141
interface GlobEntry {
4242
base: string
4343
pattern: string
@@ -61,7 +61,7 @@ declare namespace OxideV3 {
6161
interface Oxide {
6262
scanDir?(options: OxideV1.ScanOptions): OxideV1.ScanResult
6363
scanDir?(options: OxideV2.ScanOptions): OxideV2.ScanResult
64-
Scanner?: OxideV3.ScannerConstructor
64+
Scanner?: OxideV3And4.ScannerConstructor
6565
}
6666

6767
async function loadOxideAtPath(id: string): Promise<Oxide | null> {
@@ -78,11 +78,17 @@ interface GlobEntry {
7878
pattern: string
7979
}
8080

81+
interface SourceEntry {
82+
base: string
83+
pattern: string
84+
negated: boolean
85+
}
86+
8187
interface ScanOptions {
8288
oxidePath: string
8389
oxideVersion: string
8490
basePath: string
85-
sources: Array<GlobEntry>
91+
sources: Array<SourceEntry>
8692
}
8793

8894
interface ScanResult {
@@ -118,38 +124,43 @@ export async function scan(options: ScanOptions): Promise<ScanResult | null> {
118124
}
119125

120126
// V2
121-
if (lte(options.oxideVersion, '4.0.0-alpha.19')) {
127+
else if (lte(options.oxideVersion, '4.0.0-alpha.19')) {
122128
let result = oxide.scanDir({
123129
base: options.basePath,
124-
sources: options.sources,
130+
sources: options.sources.map((g) => ({ base: g.base, pattern: g.pattern })),
125131
})
126132

127133
return {
128134
files: result.files,
129-
globs: result.globs,
135+
globs: result.globs.map((g) => ({ base: g.base, pattern: g.pattern })),
130136
}
131137
}
132138

133139
// V3
134-
if (lte(options.oxideVersion, '4.0.0-alpha.30')) {
135-
let scanner = new oxide.Scanner({
140+
else if (lte(options.oxideVersion, '4.0.0-alpha.30')) {
141+
let scanner = new (oxide.Scanner as OxideV3And4.ScannerConstructor)({
136142
detectSources: { base: options.basePath },
137-
sources: options.sources,
143+
sources: options.sources.map((g) => ({ base: g.base, pattern: g.pattern })),
138144
})
139145

140146
return {
141147
files: scanner.files,
142-
globs: scanner.globs,
148+
globs: scanner.globs.map((g) => ({ base: g.base, pattern: g.pattern })),
143149
}
144150
}
145151

146152
// V4
147-
let scanner = new oxide.Scanner({
148-
sources: [{ base: options.basePath, pattern: '**/*' }, ...options.sources],
149-
})
153+
else {
154+
let scanner = new (oxide.Scanner as OxideV3And4.ScannerConstructor)({
155+
sources: [
156+
{ base: options.basePath, pattern: '**/*' },
157+
...options.sources.map((g) => ({ base: g.base, pattern: g.pattern })),
158+
],
159+
})
150160

151-
return {
152-
files: scanner.files,
153-
globs: scanner.globs,
161+
return {
162+
files: scanner.files,
163+
globs: scanner.globs.map((g) => ({ base: g.base, pattern: g.pattern })),
164+
}
154165
}
155166
}

0 commit comments

Comments
 (0)