@@ -3,22 +3,14 @@ import path from 'path';
3
3
import dotenv from 'dotenv' ;
4
4
import { AcceptedPlugin } from 'postcss' ;
5
5
import postcssrc from 'postcss-load-config' ;
6
- import { server } from 'typescript/lib/tsserverlibrary' ;
6
+ import type tsModule from 'typescript/lib/tsserverlibrary' ;
7
7
import { Options } from './options' ;
8
8
import { createMatchers } from './helpers/createMatchers' ;
9
9
import { isCSSFn } from './helpers/cssExtensions' ;
10
10
import { getDtsSnapshot } from './helpers/getDtsSnapshot' ;
11
11
import { createLogger } from './helpers/logger' ;
12
12
import { getProcessor } from './helpers/getProcessor' ;
13
13
import { filterPlugins } from './helpers/filterPlugins' ;
14
- import {
15
- createLanguageService ,
16
- Extension ,
17
- LanguageService ,
18
- LanguageServiceHost ,
19
- ResolvedModuleFull ,
20
- ScriptKind ,
21
- } from 'typescript' ;
22
14
23
15
const getPostCssConfigPlugins = ( directory : string ) => {
24
16
try {
@@ -28,25 +20,27 @@ const getPostCssConfigPlugins = (directory: string) => {
28
20
}
29
21
} ;
30
22
31
- const init : server . PluginModuleFactory = ( { typescript : ts } ) => {
23
+ const init : tsModule . server . PluginModuleFactory = ( { typescript : ts } ) => {
32
24
let _isCSS : isCSSFn ;
33
25
34
- function create ( info : server . PluginCreateInfo ) : LanguageService {
26
+ function create (
27
+ info : tsModule . server . PluginCreateInfo ,
28
+ ) : tsModule . LanguageService {
35
29
const logger = createLogger ( info ) ;
36
30
const directory = info . project . getCurrentDirectory ( ) ;
37
31
const compilerOptions = info . project . getCompilerOptions ( ) ;
38
32
39
- const languageServiceHost = { } as Partial < LanguageServiceHost > ;
33
+ const languageServiceHost = { } as Partial < tsModule . LanguageServiceHost > ;
40
34
41
35
const languageServiceHostProxy = new Proxy ( info . languageServiceHost , {
42
- get ( target , key : keyof LanguageServiceHost ) {
36
+ get ( target , key : keyof tsModule . LanguageServiceHost ) {
43
37
return languageServiceHost [ key ]
44
38
? languageServiceHost [ key ]
45
39
: target [ key ] ;
46
40
} ,
47
41
} ) ;
48
42
49
- const languageService = createLanguageService ( languageServiceHostProxy ) ;
43
+ const languageService = ts . createLanguageService ( languageServiceHostProxy ) ;
50
44
51
45
// TypeScript plugins have a `cwd` of `/`, which causes issues with import resolution.
52
46
process . chdir ( directory ) ;
@@ -123,10 +117,10 @@ const init: server.PluginModuleFactory = ({ typescript: ts }) => {
123
117
124
118
languageServiceHost . getScriptKind = ( fileName ) => {
125
119
if ( ! info . languageServiceHost . getScriptKind ) {
126
- return ScriptKind . Unknown ;
120
+ return ts . ScriptKind . Unknown ;
127
121
}
128
122
if ( isCSS ( fileName ) ) {
129
- return ScriptKind . TS ;
123
+ return ts . ScriptKind . TS ;
130
124
}
131
125
return info . languageServiceHost . getScriptKind ( fileName ) ;
132
126
} ;
@@ -148,10 +142,10 @@ const init: server.PluginModuleFactory = ({ typescript: ts }) => {
148
142
149
143
const createModuleResolver =
150
144
( containingFile : string ) =>
151
- ( moduleName : string ) : ResolvedModuleFull | undefined => {
145
+ ( moduleName : string ) : tsModule . ResolvedModuleFull | undefined => {
152
146
if ( isRelativeCSS ( moduleName ) ) {
153
147
return {
154
- extension : Extension . Dts ,
148
+ extension : ts . Extension . Dts ,
155
149
isExternalLibraryImport : false ,
156
150
resolvedFileName : path . resolve (
157
151
path . dirname ( containingFile ) ,
@@ -203,7 +197,7 @@ const init: server.PluginModuleFactory = ({ typescript: ts }) => {
203
197
204
198
if ( cssModulePath ) {
205
199
return {
206
- extension : Extension . Dts ,
200
+ extension : ts . Extension . Dts ,
207
201
isExternalLibraryImport : false ,
208
202
resolvedFileName : path . resolve ( cssModulePath ) ,
209
203
} ;
@@ -279,7 +273,9 @@ const init: server.PluginModuleFactory = ({ typescript: ts }) => {
279
273
return languageService ;
280
274
}
281
275
282
- function getExternalFiles ( project : server . ConfiguredProject ) : string [ ] {
276
+ function getExternalFiles (
277
+ project : tsModule . server . ConfiguredProject ,
278
+ ) : string [ ] {
283
279
return project . getFileNames ( ) . filter ( _isCSS ) ;
284
280
}
285
281
0 commit comments