happy-css-modules 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/emitter/dts.test.ts +3 -3
- package/src/emitter/dts.ts +59 -37
- package/src/emitter/index.test.ts +3 -3
- package/src/locator/index.test.ts +143 -48
- package/src/locator/index.ts +51 -23
- package/src/locator/postcss.test.ts +135 -26
- package/src/locator/postcss.ts +120 -36
- package/src/test-util/util.ts +23 -18
- package/src/transformer/less-transformer.test.ts +25 -15
- package/src/transformer/postcss-transformer.test.ts +5 -3
- package/src/transformer/scss-transformer.test.ts +38 -19
- package/dist/cli.d.ts +0 -6
- package/dist/cli.js +0 -121
- package/dist/cli.js.map +0 -1
- package/dist/cli.test.d.ts +0 -1
- package/dist/cli.test.js +0 -66
- package/dist/cli.test.js.map +0 -1
- package/dist/config.d.ts +0 -1
- package/dist/config.js +0 -2
- package/dist/config.js.map +0 -1
- package/dist/emitter/dts.d.ts +0 -14
- package/dist/emitter/dts.js +0 -111
- package/dist/emitter/dts.js.map +0 -1
- package/dist/emitter/dts.test.d.ts +0 -1
- package/dist/emitter/dts.test.js +0 -205
- package/dist/emitter/dts.test.js.map +0 -1
- package/dist/emitter/file-system.d.ts +0 -6
- package/dist/emitter/file-system.js +0 -26
- package/dist/emitter/file-system.js.map +0 -1
- package/dist/emitter/file-system.test.d.ts +0 -1
- package/dist/emitter/file-system.test.js +0 -34
- package/dist/emitter/file-system.test.js.map +0 -1
- package/dist/emitter/index.d.ts +0 -34
- package/dist/emitter/index.js +0 -49
- package/dist/emitter/index.js.map +0 -1
- package/dist/emitter/index.test.d.ts +0 -1
- package/dist/emitter/index.test.js +0 -68
- package/dist/emitter/index.test.js.map +0 -1
- package/dist/emitter/source-map.d.ts +0 -8
- package/dist/emitter/source-map.js +0 -16
- package/dist/emitter/source-map.js.map +0 -1
- package/dist/emitter/source-map.test.d.ts +0 -1
- package/dist/emitter/source-map.test.js +0 -13
- package/dist/emitter/source-map.test.js.map +0 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/integration-test/go-to-definition.test.d.ts +0 -1
- package/dist/integration-test/go-to-definition.test.js +0 -334
- package/dist/integration-test/go-to-definition.test.js.map +0 -1
- package/dist/library/source-map/index.d.ts +0 -8
- package/dist/library/source-map/index.js +0 -5
- package/dist/library/source-map/index.js.map +0 -1
- package/dist/locator/index.d.ts +0 -44
- package/dist/locator/index.js +0 -147
- package/dist/locator/index.js.map +0 -1
- package/dist/locator/index.test.d.ts +0 -1
- package/dist/locator/index.test.js +0 -299
- package/dist/locator/index.test.js.map +0 -1
- package/dist/locator/postcss.d.ts +0 -53
- package/dist/locator/postcss.js +0 -169
- package/dist/locator/postcss.js.map +0 -1
- package/dist/locator/postcss.test.d.ts +0 -1
- package/dist/locator/postcss.test.js +0 -196
- package/dist/locator/postcss.test.js.map +0 -1
- package/dist/logger.d.ts +0 -9
- package/dist/logger.js +0 -28
- package/dist/logger.js.map +0 -1
- package/dist/regression-test/issue-168.test.d.ts +0 -1
- package/dist/regression-test/issue-168.test.js +0 -30
- package/dist/regression-test/issue-168.test.js.map +0 -1
- package/dist/resolver/index.d.ts +0 -22
- package/dist/resolver/index.js +0 -44
- package/dist/resolver/index.js.map +0 -1
- package/dist/resolver/index.test.d.ts +0 -1
- package/dist/resolver/index.test.js +0 -16
- package/dist/resolver/index.test.js.map +0 -1
- package/dist/resolver/node-resolver.d.ts +0 -2
- package/dist/resolver/node-resolver.js +0 -6
- package/dist/resolver/node-resolver.js.map +0 -1
- package/dist/resolver/node-resolver.test.d.ts +0 -1
- package/dist/resolver/node-resolver.test.js +0 -25
- package/dist/resolver/node-resolver.test.js.map +0 -1
- package/dist/resolver/relative-resolver.d.ts +0 -2
- package/dist/resolver/relative-resolver.js +0 -5
- package/dist/resolver/relative-resolver.js.map +0 -1
- package/dist/resolver/relative-resolver.test.d.ts +0 -1
- package/dist/resolver/relative-resolver.test.js +0 -12
- package/dist/resolver/relative-resolver.test.js.map +0 -1
- package/dist/resolver/webpack-resolver.d.ts +0 -24
- package/dist/resolver/webpack-resolver.js +0 -91
- package/dist/resolver/webpack-resolver.js.map +0 -1
- package/dist/resolver/webpack-resolver.test.d.ts +0 -1
- package/dist/resolver/webpack-resolver.test.js +0 -89
- package/dist/resolver/webpack-resolver.test.js.map +0 -1
- package/dist/runner.d.ts +0 -76
- package/dist/runner.js +0 -120
- package/dist/runner.js.map +0 -1
- package/dist/runner.test.d.ts +0 -1
- package/dist/runner.test.js +0 -287
- package/dist/runner.test.js.map +0 -1
- package/dist/test-util/jest/resolver.cjs +0 -31
- package/dist/test-util/jest/resolver.cjs.map +0 -1
- package/dist/test-util/jest/resolver.d.cts +0 -16
- package/dist/test-util/tsserver.d.ts +0 -31
- package/dist/test-util/tsserver.js +0 -112
- package/dist/test-util/tsserver.js.map +0 -1
- package/dist/test-util/util.d.ts +0 -28
- package/dist/test-util/util.js +0 -81
- package/dist/test-util/util.js.map +0 -1
- package/dist/transformer/index.d.ts +0 -30
- package/dist/transformer/index.js +0 -25
- package/dist/transformer/index.js.map +0 -1
- package/dist/transformer/index.test.d.ts +0 -1
- package/dist/transformer/index.test.js +0 -66
- package/dist/transformer/index.test.js.map +0 -1
- package/dist/transformer/less-transformer.d.ts +0 -2
- package/dist/transformer/less-transformer.js +0 -45
- package/dist/transformer/less-transformer.js.map +0 -1
- package/dist/transformer/less-transformer.test.d.ts +0 -1
- package/dist/transformer/less-transformer.test.js +0 -124
- package/dist/transformer/less-transformer.test.js.map +0 -1
- package/dist/transformer/postcss-transformer.d.ts +0 -12
- package/dist/transformer/postcss-transformer.js +0 -32
- package/dist/transformer/postcss-transformer.js.map +0 -1
- package/dist/transformer/postcss-transformer.test.d.ts +0 -1
- package/dist/transformer/postcss-transformer.test.js +0 -176
- package/dist/transformer/postcss-transformer.test.js.map +0 -1
- package/dist/transformer/scss-transformer.d.ts +0 -2
- package/dist/transformer/scss-transformer.js +0 -40
- package/dist/transformer/scss-transformer.js.map +0 -1
- package/dist/transformer/scss-transformer.test.d.ts +0 -1
- package/dist/transformer/scss-transformer.test.js +0 -130
- package/dist/transformer/scss-transformer.test.js.map +0 -1
- package/dist/util.d.ts +0 -21
- package/dist/util.js +0 -72
- package/dist/util.js.map +0 -1
- package/dist/util.test.d.ts +0 -1
- package/dist/util.test.js +0 -74
- package/dist/util.test.js.map +0 -1
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
import dedent from 'dedent';
|
|
2
|
-
import { run } from '../runner.js';
|
|
3
|
-
import { createTSServer } from '../test-util/tsserver.js';
|
|
4
|
-
import { createFixtures, getFixturePath } from '../test-util/util.js';
|
|
5
|
-
const server = createTSServer();
|
|
6
|
-
const defaultOptions = {
|
|
7
|
-
pattern: 'test/**/*.{css,scss}',
|
|
8
|
-
logLevel: 'silent',
|
|
9
|
-
declarationMap: true,
|
|
10
|
-
cwd: getFixturePath('/'),
|
|
11
|
-
cache: false,
|
|
12
|
-
};
|
|
13
|
-
afterAll(async () => {
|
|
14
|
-
await server.exit();
|
|
15
|
-
});
|
|
16
|
-
test('basic', async () => {
|
|
17
|
-
createFixtures({
|
|
18
|
-
'/test/1.css': dedent `
|
|
19
|
-
.basic {}
|
|
20
|
-
.cascading {}
|
|
21
|
-
.cascading {}
|
|
22
|
-
.pseudo_class_1 {}
|
|
23
|
-
.pseudo_class_2:hover {}
|
|
24
|
-
:not(.pseudo_class_3) {}
|
|
25
|
-
.multiple_selector_1.multiple_selector_2 {}
|
|
26
|
-
.combinator_1 + .combinator_2 {}
|
|
27
|
-
@supports (display: flex) {
|
|
28
|
-
@media screen and (min-width: 900px) {
|
|
29
|
-
.at_rule {}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
.selector_list_1, .selector_list_2 {}
|
|
33
|
-
:local .local_class_name_1 {}
|
|
34
|
-
:local {
|
|
35
|
-
.local_class_name_2 {}
|
|
36
|
-
.local_class_name_3 {}
|
|
37
|
-
}
|
|
38
|
-
:local(.local_class_name_4) {}
|
|
39
|
-
`,
|
|
40
|
-
});
|
|
41
|
-
await run({ ...defaultOptions });
|
|
42
|
-
const results = await server.getMultipleIdentifierDefinitions(getFixturePath(`/test/1.css`), [
|
|
43
|
-
'basic',
|
|
44
|
-
'cascading',
|
|
45
|
-
'pseudo_class_1',
|
|
46
|
-
'pseudo_class_2',
|
|
47
|
-
'pseudo_class_3',
|
|
48
|
-
'multiple_selector_1',
|
|
49
|
-
'multiple_selector_2',
|
|
50
|
-
'combinator_1',
|
|
51
|
-
'combinator_2',
|
|
52
|
-
'at_rule',
|
|
53
|
-
'selector_list_1',
|
|
54
|
-
'selector_list_2',
|
|
55
|
-
'local_class_name_1',
|
|
56
|
-
'local_class_name_2',
|
|
57
|
-
'local_class_name_3',
|
|
58
|
-
'local_class_name_4',
|
|
59
|
-
]);
|
|
60
|
-
// FIXME: Fix an issue where the text at definition destination was incorrect.
|
|
61
|
-
expect(results).toMatchInlineSnapshot(`
|
|
62
|
-
[
|
|
63
|
-
{
|
|
64
|
-
"definitions": [
|
|
65
|
-
{ file: "<fixtures>/test/1.css", text: ".basic ", start: { line: 1, offset: 1 }, end: { line: 1, offset: 8 } },
|
|
66
|
-
],
|
|
67
|
-
"identifier": "basic",
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"definitions": [
|
|
71
|
-
{ file: "<fixtures>/test/1.css", text: ".cascading ", start: { line: 2, offset: 1 }, end: { line: 2, offset: 12 } },
|
|
72
|
-
{ file: "<fixtures>/test/1.css", text: ".cascading ", start: { line: 3, offset: 1 }, end: { line: 3, offset: 12 } },
|
|
73
|
-
],
|
|
74
|
-
"identifier": "cascading",
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"definitions": [
|
|
78
|
-
{ file: "<fixtures>/test/1.css", text: ".pseudo_class_1 ", start: { line: 4, offset: 1 }, end: { line: 4, offset: 17 } },
|
|
79
|
-
],
|
|
80
|
-
"identifier": "pseudo_class_1",
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"definitions": [
|
|
84
|
-
{ file: "<fixtures>/test/1.css", text: ".pseudo_class_2:", start: { line: 5, offset: 1 }, end: { line: 5, offset: 17 } },
|
|
85
|
-
],
|
|
86
|
-
"identifier": "pseudo_class_2",
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"definitions": [
|
|
90
|
-
{ file: "<fixtures>/test/1.css", text: ".pseudo_class_3)", start: { line: 6, offset: 6 }, end: { line: 6, offset: 22 } },
|
|
91
|
-
],
|
|
92
|
-
"identifier": "pseudo_class_3",
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"definitions": [
|
|
96
|
-
{
|
|
97
|
-
file: "<fixtures>/test/1.css",
|
|
98
|
-
text: ".multiple_selector_1.",
|
|
99
|
-
start: { line: 7, offset: 1 },
|
|
100
|
-
end: { line: 7, offset: 22 },
|
|
101
|
-
},
|
|
102
|
-
],
|
|
103
|
-
"identifier": "multiple_selector_1",
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"definitions": [
|
|
107
|
-
{
|
|
108
|
-
file: "<fixtures>/test/1.css",
|
|
109
|
-
text: ".multiple_selector_2 ",
|
|
110
|
-
start: { line: 7, offset: 21 },
|
|
111
|
-
end: { line: 7, offset: 42 },
|
|
112
|
-
},
|
|
113
|
-
],
|
|
114
|
-
"identifier": "multiple_selector_2",
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
"definitions": [
|
|
118
|
-
{ file: "<fixtures>/test/1.css", text: ".combinator_1 ", start: { line: 8, offset: 1 }, end: { line: 8, offset: 15 } },
|
|
119
|
-
],
|
|
120
|
-
"identifier": "combinator_1",
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"definitions": [
|
|
124
|
-
{ file: "<fixtures>/test/1.css", text: ".combinator_2 ", start: { line: 8, offset: 17 }, end: { line: 8, offset: 31 } },
|
|
125
|
-
],
|
|
126
|
-
"identifier": "combinator_2",
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"definitions": [
|
|
130
|
-
{ file: "<fixtures>/test/1.css", text: ".at_rule ", start: { line: 11, offset: 5 }, end: { line: 11, offset: 14 } },
|
|
131
|
-
],
|
|
132
|
-
"identifier": "at_rule",
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
"definitions": [
|
|
136
|
-
{
|
|
137
|
-
file: "<fixtures>/test/1.css",
|
|
138
|
-
text: ".selector_list_1,",
|
|
139
|
-
start: { line: 14, offset: 1 },
|
|
140
|
-
end: { line: 14, offset: 18 },
|
|
141
|
-
},
|
|
142
|
-
],
|
|
143
|
-
"identifier": "selector_list_1",
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
"definitions": [
|
|
147
|
-
{
|
|
148
|
-
file: "<fixtures>/test/1.css",
|
|
149
|
-
text: ".selector_list_2 ",
|
|
150
|
-
start: { line: 14, offset: 19 },
|
|
151
|
-
end: { line: 14, offset: 36 },
|
|
152
|
-
},
|
|
153
|
-
],
|
|
154
|
-
"identifier": "selector_list_2",
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
"definitions": [
|
|
158
|
-
{
|
|
159
|
-
file: "<fixtures>/test/1.css",
|
|
160
|
-
text: ".local_class_name_1 ",
|
|
161
|
-
start: { line: 15, offset: 8 },
|
|
162
|
-
end: { line: 15, offset: 28 },
|
|
163
|
-
},
|
|
164
|
-
],
|
|
165
|
-
"identifier": "local_class_name_1",
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
"definitions": [
|
|
169
|
-
{
|
|
170
|
-
file: "<fixtures>/test/1.css",
|
|
171
|
-
text: ".local_class_name_2 ",
|
|
172
|
-
start: { line: 17, offset: 3 },
|
|
173
|
-
end: { line: 17, offset: 23 },
|
|
174
|
-
},
|
|
175
|
-
],
|
|
176
|
-
"identifier": "local_class_name_2",
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
"definitions": [
|
|
180
|
-
{
|
|
181
|
-
file: "<fixtures>/test/1.css",
|
|
182
|
-
text: ".local_class_name_3 ",
|
|
183
|
-
start: { line: 18, offset: 3 },
|
|
184
|
-
end: { line: 18, offset: 23 },
|
|
185
|
-
},
|
|
186
|
-
],
|
|
187
|
-
"identifier": "local_class_name_3",
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
"definitions": [
|
|
191
|
-
{
|
|
192
|
-
file: "<fixtures>/test/1.css",
|
|
193
|
-
text: ".local_class_name_4)",
|
|
194
|
-
start: { line: 20, offset: 8 },
|
|
195
|
-
end: { line: 20, offset: 28 },
|
|
196
|
-
},
|
|
197
|
-
],
|
|
198
|
-
"identifier": "local_class_name_4",
|
|
199
|
-
},
|
|
200
|
-
]
|
|
201
|
-
`);
|
|
202
|
-
const moduleDefinitions = await server.getModuleDefinitions(getFixturePath('/test/1.css'));
|
|
203
|
-
expect(moduleDefinitions).toMatchInlineSnapshot(`
|
|
204
|
-
[
|
|
205
|
-
{ file: "<fixtures>/test/1.css", text: "", start: { line: 1, offset: 1 }, end: { line: 1, offset: 1 } },
|
|
206
|
-
]
|
|
207
|
-
`);
|
|
208
|
-
});
|
|
209
|
-
test('imported tokens', async () => {
|
|
210
|
-
createFixtures({
|
|
211
|
-
'/test/1.css': dedent `
|
|
212
|
-
@import './2.css';
|
|
213
|
-
.a {}
|
|
214
|
-
.b {}
|
|
215
|
-
.b {}
|
|
216
|
-
`,
|
|
217
|
-
'/test/2.css': dedent `
|
|
218
|
-
@import './3.css';
|
|
219
|
-
.c {}
|
|
220
|
-
`,
|
|
221
|
-
'/test/3.css': dedent `
|
|
222
|
-
.d {}
|
|
223
|
-
`,
|
|
224
|
-
});
|
|
225
|
-
await run({ ...defaultOptions });
|
|
226
|
-
const results = await server.getMultipleIdentifierDefinitions(getFixturePath(`/test/1.css`), ['a', 'b', 'c', 'd']);
|
|
227
|
-
expect(results).toMatchInlineSnapshot(`
|
|
228
|
-
[
|
|
229
|
-
{
|
|
230
|
-
"definitions": [
|
|
231
|
-
{ file: "<fixtures>/test/1.css", text: ".a ", start: { line: 2, offset: 1 }, end: { line: 2, offset: 4 } },
|
|
232
|
-
],
|
|
233
|
-
"identifier": "a",
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
"definitions": [
|
|
237
|
-
{ file: "<fixtures>/test/1.css", text: ".b ", start: { line: 3, offset: 1 }, end: { line: 3, offset: 4 } },
|
|
238
|
-
{ file: "<fixtures>/test/1.css", text: ".b ", start: { line: 4, offset: 1 }, end: { line: 4, offset: 4 } },
|
|
239
|
-
],
|
|
240
|
-
"identifier": "b",
|
|
241
|
-
},
|
|
242
|
-
{
|
|
243
|
-
"definitions": [
|
|
244
|
-
{ file: "<fixtures>/test/2.css", text: ".c ", start: { line: 2, offset: 1 }, end: { line: 2, offset: 4 } },
|
|
245
|
-
],
|
|
246
|
-
"identifier": "c",
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
"definitions": [
|
|
250
|
-
{ file: "<fixtures>/test/3.css", text: ".d ", start: { line: 1, offset: 1 }, end: { line: 1, offset: 4 } },
|
|
251
|
-
],
|
|
252
|
-
"identifier": "d",
|
|
253
|
-
},
|
|
254
|
-
]
|
|
255
|
-
`);
|
|
256
|
-
});
|
|
257
|
-
test('with transformer', async () => {
|
|
258
|
-
createFixtures({
|
|
259
|
-
'/test/1.scss': dedent `
|
|
260
|
-
@use './2.scss' as two; // sass feature test (@use)
|
|
261
|
-
@import './3.scss'; // css feature test (@import)
|
|
262
|
-
.basic { dummy: ''; }
|
|
263
|
-
.nesting {
|
|
264
|
-
dummy: '';
|
|
265
|
-
// sass feature test (nesting)
|
|
266
|
-
.nesting_1 { dummy: ''; }
|
|
267
|
-
&_2 { dummy: ''; }
|
|
268
|
-
}
|
|
269
|
-
`,
|
|
270
|
-
'/test/2.scss': dedent `
|
|
271
|
-
.b_1 { dummy: ''; }
|
|
272
|
-
@mixin b_2 { dummy: ''; }
|
|
273
|
-
`,
|
|
274
|
-
'/test/3.scss': dedent `
|
|
275
|
-
.c { dummy: ''; }
|
|
276
|
-
`,
|
|
277
|
-
});
|
|
278
|
-
await run({ ...defaultOptions });
|
|
279
|
-
const results = await server.getMultipleIdentifierDefinitions(getFixturePath(`/test/1.scss`), [
|
|
280
|
-
'basic',
|
|
281
|
-
'nesting',
|
|
282
|
-
'nesting_1',
|
|
283
|
-
'nesting_2',
|
|
284
|
-
'b_1',
|
|
285
|
-
'b_2',
|
|
286
|
-
'c',
|
|
287
|
-
]);
|
|
288
|
-
expect(results).toMatchInlineSnapshot(`
|
|
289
|
-
[
|
|
290
|
-
{
|
|
291
|
-
"definitions": [
|
|
292
|
-
{ file: "<fixtures>/test/1.scss", text: ".basic ", start: { line: 3, offset: 1 }, end: { line: 3, offset: 8 } },
|
|
293
|
-
],
|
|
294
|
-
"identifier": "basic",
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
"definitions": [
|
|
298
|
-
{ file: "<fixtures>/test/1.scss", text: ".nesting ", start: { line: 4, offset: 1 }, end: { line: 4, offset: 10 } },
|
|
299
|
-
{ file: "<fixtures>/test/1.scss", text: ".nesting_", start: { line: 7, offset: 3 }, end: { line: 7, offset: 12 } },
|
|
300
|
-
],
|
|
301
|
-
"identifier": "nesting",
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
"definitions": [
|
|
305
|
-
{ file: "<fixtures>/test/1.scss", text: ".nesting_1 ", start: { line: 7, offset: 3 }, end: { line: 7, offset: 14 } },
|
|
306
|
-
],
|
|
307
|
-
"identifier": "nesting_1",
|
|
308
|
-
},
|
|
309
|
-
{
|
|
310
|
-
"definitions": [
|
|
311
|
-
{ file: "<fixtures>/test/1.scss", text: "&_2 { dummy", start: { line: 8, offset: 3 }, end: { line: 8, offset: 14 } },
|
|
312
|
-
],
|
|
313
|
-
"identifier": "nesting_2",
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
"definitions": [
|
|
317
|
-
{ file: "<fixtures>/test/2.scss", text: ".b_1 ", start: { line: 1, offset: 1 }, end: { line: 1, offset: 6 } },
|
|
318
|
-
],
|
|
319
|
-
"identifier": "b_1",
|
|
320
|
-
},
|
|
321
|
-
{
|
|
322
|
-
"definitions": [],
|
|
323
|
-
"identifier": "b_2",
|
|
324
|
-
},
|
|
325
|
-
{
|
|
326
|
-
"definitions": [
|
|
327
|
-
{ file: "<fixtures>/test/3.scss", text: ".c ", start: { line: 1, offset: 1 }, end: { line: 1, offset: 4 } },
|
|
328
|
-
],
|
|
329
|
-
"identifier": "c",
|
|
330
|
-
},
|
|
331
|
-
]
|
|
332
|
-
`);
|
|
333
|
-
});
|
|
334
|
-
//# sourceMappingURL=go-to-definition.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"go-to-definition.test.js","sourceRoot":"","sources":["../../src/integration-test/go-to-definition.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { SourceNode as OriginalSourceNode, type CodeWithSourceMap } from 'source-map';
|
|
2
|
-
type Chunk = string | StrictlyTypedSourceNode | Chunk[];
|
|
3
|
-
interface StrictlyTypedSourceNode extends OriginalSourceNode {
|
|
4
|
-
new (line: number | null, column: number | null, source: string | null): StrictlyTypedSourceNode;
|
|
5
|
-
new (line: number | null, column: number | null, source: string | null, chunk?: Chunk, name?: string): StrictlyTypedSourceNode;
|
|
6
|
-
}
|
|
7
|
-
declare const SourceNode: StrictlyTypedSourceNode;
|
|
8
|
-
export { SourceNode, type CodeWithSourceMap };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/source-map/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAA0B,MAAM,YAAY,CAAC;AAsBtF,8DAA8D;AAC9D,MAAM,UAAU,GAA4B,kBAAyB,CAAC;AAEtE,OAAO,EAAE,UAAU,EAA0B,CAAC"}
|
package/dist/locator/index.d.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import type { Resolver } from '../resolver/index.js';
|
|
2
|
-
import { type Transformer } from '../transformer/index.js';
|
|
3
|
-
import { type Location } from './postcss.js';
|
|
4
|
-
export { collectNodes, type Location } from './postcss.js';
|
|
5
|
-
/** The exported token. */
|
|
6
|
-
export type Token = {
|
|
7
|
-
/** The token name. */
|
|
8
|
-
name: string;
|
|
9
|
-
/** The original locations of the token in the source file. */
|
|
10
|
-
originalLocations: Location[];
|
|
11
|
-
};
|
|
12
|
-
/** The result of `Locator#load`. */
|
|
13
|
-
export type LoadResult = {
|
|
14
|
-
/** The path of the file imported from the source file with `@import`. */
|
|
15
|
-
dependencies: string[];
|
|
16
|
-
/** The tokens exported by the source file. */
|
|
17
|
-
tokens: Token[];
|
|
18
|
-
};
|
|
19
|
-
export type LocatorOptions = {
|
|
20
|
-
/** The function to transform source code. */
|
|
21
|
-
transformer?: Transformer | undefined;
|
|
22
|
-
/** The function to resolve the path of the imported file. */
|
|
23
|
-
resolver?: Resolver | undefined;
|
|
24
|
-
};
|
|
25
|
-
/** The resolver that throws an exception if resolving fails. */
|
|
26
|
-
export type StrictlyResolver = (...args: Parameters<Resolver>) => Promise<string>;
|
|
27
|
-
/** This class collects information on tokens exported from CSS Modules files. */
|
|
28
|
-
export declare class Locator {
|
|
29
|
-
private readonly cache;
|
|
30
|
-
private readonly transformer;
|
|
31
|
-
private readonly resolver;
|
|
32
|
-
private loading;
|
|
33
|
-
constructor(options?: LocatorOptions);
|
|
34
|
-
/** Returns `true` if the cache is outdated. */
|
|
35
|
-
private isCacheOutdated;
|
|
36
|
-
/**
|
|
37
|
-
* Reads the source file and returns the code.
|
|
38
|
-
* If transformer is specified, the code is transformed before returning.
|
|
39
|
-
*/
|
|
40
|
-
private readCSS;
|
|
41
|
-
/** Returns information about the tokens exported from the CSS Modules file. */
|
|
42
|
-
load(filePath: string): Promise<LoadResult>;
|
|
43
|
-
private _load;
|
|
44
|
-
}
|
package/dist/locator/index.js
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { readFile, stat } from 'fs/promises';
|
|
2
|
-
import postcss from 'postcss';
|
|
3
|
-
import { createDefaultResolver } from '../resolver/index.js';
|
|
4
|
-
import { createDefaultTransformer } from '../transformer/index.js';
|
|
5
|
-
import { unique, uniqueBy } from '../util.js';
|
|
6
|
-
import { getOriginalLocation, generateLocalTokenNames, parseAtImport, collectNodes } from './postcss.js';
|
|
7
|
-
export { collectNodes } from './postcss.js';
|
|
8
|
-
/**
|
|
9
|
-
* Whether the specifier should be ignored.
|
|
10
|
-
* For example, specifiers starting with `http://` or `https://` should be ignored.
|
|
11
|
-
*/
|
|
12
|
-
function isIgnoredSpecifier(specifier) {
|
|
13
|
-
return specifier.startsWith('http://') || specifier.startsWith('https://');
|
|
14
|
-
}
|
|
15
|
-
function normalizeTokens(tokens) {
|
|
16
|
-
const tokenNameToOriginalLocations = new Map();
|
|
17
|
-
for (const token of tokens) {
|
|
18
|
-
tokenNameToOriginalLocations.set(token.name, uniqueBy([...(tokenNameToOriginalLocations.get(token.name) ?? []), ...token.originalLocations], (location) => JSON.stringify(location)));
|
|
19
|
-
}
|
|
20
|
-
return Array.from(tokenNameToOriginalLocations.entries()).map(([name, originalLocations]) => ({
|
|
21
|
-
name,
|
|
22
|
-
originalLocations,
|
|
23
|
-
}));
|
|
24
|
-
}
|
|
25
|
-
/** This class collects information on tokens exported from CSS Modules files. */
|
|
26
|
-
export class Locator {
|
|
27
|
-
constructor(options) {
|
|
28
|
-
this.cache = new Map();
|
|
29
|
-
this.loading = false;
|
|
30
|
-
this.transformer = options?.transformer ?? createDefaultTransformer();
|
|
31
|
-
this.resolver = async (specifier, resolverOptions) => {
|
|
32
|
-
const resolver = options?.resolver ?? createDefaultResolver();
|
|
33
|
-
const resolved = await resolver(specifier, resolverOptions);
|
|
34
|
-
if (resolved === false)
|
|
35
|
-
throw new Error(`Could not resolve '${specifier}' in '${resolverOptions.request}'.`);
|
|
36
|
-
return resolved;
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/** Returns `true` if the cache is outdated. */
|
|
40
|
-
async isCacheOutdated(filePath) {
|
|
41
|
-
const entry = this.cache.get(filePath);
|
|
42
|
-
if (!entry)
|
|
43
|
-
return true;
|
|
44
|
-
const mtime = (await stat(filePath)).mtime.getTime();
|
|
45
|
-
if (entry.mtime !== mtime)
|
|
46
|
-
return true;
|
|
47
|
-
const { dependencies } = entry.result;
|
|
48
|
-
for (const dependency of dependencies) {
|
|
49
|
-
const entry = this.cache.get(dependency);
|
|
50
|
-
if (!entry)
|
|
51
|
-
return true;
|
|
52
|
-
// eslint-disable-next-line no-await-in-loop
|
|
53
|
-
const mtime = (await stat(dependency)).mtime.getTime();
|
|
54
|
-
if (entry.mtime !== mtime)
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Reads the source file and returns the code.
|
|
61
|
-
* If transformer is specified, the code is transformed before returning.
|
|
62
|
-
*/
|
|
63
|
-
async readCSS(filePath) {
|
|
64
|
-
const css = await readFile(filePath, 'utf-8');
|
|
65
|
-
if (!this.transformer)
|
|
66
|
-
return { css, map: undefined, dependencies: [] };
|
|
67
|
-
const result = await this.transformer(css, { from: filePath, resolver: this.resolver, isIgnoredSpecifier });
|
|
68
|
-
if (result === false)
|
|
69
|
-
return { css, map: undefined, dependencies: [] };
|
|
70
|
-
return {
|
|
71
|
-
css: result.css,
|
|
72
|
-
map: result.map,
|
|
73
|
-
dependencies: result.dependencies
|
|
74
|
-
.map((dep) => {
|
|
75
|
-
if (typeof dep === 'string')
|
|
76
|
-
return dep;
|
|
77
|
-
if (dep.protocol !== 'file:')
|
|
78
|
-
throw new Error(`Unsupported protocol: ${dep.protocol}`);
|
|
79
|
-
return dep.pathname;
|
|
80
|
-
})
|
|
81
|
-
.filter((dep) => {
|
|
82
|
-
// less makes a remote module inline, so it may be included in dependencies.
|
|
83
|
-
// However, the dependencies field of happy-css-modules is not yet designed to store http protocol URLs.
|
|
84
|
-
// Therefore, we exclude them from the dependencies field for now.
|
|
85
|
-
return !isIgnoredSpecifier(dep);
|
|
86
|
-
}),
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
/** Returns information about the tokens exported from the CSS Modules file. */
|
|
90
|
-
async load(filePath) {
|
|
91
|
-
if (this.loading)
|
|
92
|
-
throw new Error('Cannot call `Locator#load` concurrently.');
|
|
93
|
-
this.loading = true;
|
|
94
|
-
const result = await this._load(filePath).finally(() => {
|
|
95
|
-
this.loading = false;
|
|
96
|
-
});
|
|
97
|
-
return result;
|
|
98
|
-
}
|
|
99
|
-
async _load(filePath) {
|
|
100
|
-
if (!(await this.isCacheOutdated(filePath))) {
|
|
101
|
-
const cacheEntry = this.cache.get(filePath);
|
|
102
|
-
return cacheEntry.result;
|
|
103
|
-
}
|
|
104
|
-
const mtime = (await stat(filePath)).mtime.getTime();
|
|
105
|
-
const { css, map, dependencies } = await this.readCSS(filePath);
|
|
106
|
-
const ast = postcss.parse(css, { from: filePath, map: map ? { inline: false, prev: map } : { inline: false } });
|
|
107
|
-
// Get the local tokens exported by the source file.
|
|
108
|
-
// The tokens are fetched using `postcss-modules` plugin.
|
|
109
|
-
const localTokenNames = await generateLocalTokenNames(ast);
|
|
110
|
-
const tokens = [];
|
|
111
|
-
const { atImports, classSelectors } = collectNodes(ast);
|
|
112
|
-
// Load imported sheets recursively.
|
|
113
|
-
for (const atImport of atImports) {
|
|
114
|
-
const importedSheetPath = parseAtImport(atImport);
|
|
115
|
-
if (!importedSheetPath)
|
|
116
|
-
continue;
|
|
117
|
-
if (isIgnoredSpecifier(importedSheetPath))
|
|
118
|
-
continue;
|
|
119
|
-
// eslint-disable-next-line no-await-in-loop
|
|
120
|
-
const from = await this.resolver(importedSheetPath, { request: filePath });
|
|
121
|
-
// eslint-disable-next-line no-await-in-loop
|
|
122
|
-
const result = await this._load(from);
|
|
123
|
-
const externalTokens = result.tokens;
|
|
124
|
-
dependencies.push(from, ...result.dependencies);
|
|
125
|
-
tokens.push(...externalTokens);
|
|
126
|
-
}
|
|
127
|
-
// Traverse the source file to find a class selector that matches the local token.
|
|
128
|
-
for (const { rule, classSelector } of classSelectors) {
|
|
129
|
-
// Consider a class selector to be the origin of a token if it matches a token fetched by postcss-modules.
|
|
130
|
-
// NOTE: This method has false positives. However, it works as expected in many cases.
|
|
131
|
-
if (!localTokenNames.includes(classSelector.value))
|
|
132
|
-
continue;
|
|
133
|
-
const originalLocation = getOriginalLocation(rule, classSelector);
|
|
134
|
-
tokens.push({
|
|
135
|
-
name: classSelector.value,
|
|
136
|
-
originalLocations: [originalLocation],
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
const result = {
|
|
140
|
-
dependencies: unique(dependencies).filter((dep) => dep !== filePath),
|
|
141
|
-
tokens: normalizeTokens(tokens),
|
|
142
|
-
};
|
|
143
|
-
this.cache.set(filePath, { mtime, result });
|
|
144
|
-
return result;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locator/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|