happy-css-modules 2.1.2 → 3.0.1
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/README.md +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/emitter/dts.js +8 -7
- package/dist/emitter/dts.js.map +1 -1
- package/dist/emitter/dts.test.js +1 -1
- package/dist/emitter/dts.test.js.map +1 -1
- package/dist/emitter/file-system.js.map +1 -1
- package/dist/emitter/index.js +1 -1
- package/dist/emitter/index.js.map +1 -1
- package/dist/emitter/source-map.js +2 -2
- package/dist/emitter/source-map.js.map +1 -1
- package/dist/emitter/source-map.test.js +2 -2
- package/dist/emitter/source-map.test.js.map +1 -1
- package/dist/integration-test/go-to-definition.test.js +1 -36
- package/dist/integration-test/go-to-definition.test.js.map +1 -1
- package/dist/locator/index.d.ts +1 -1
- package/dist/locator/index.js +6 -16
- package/dist/locator/index.js.map +1 -1
- package/dist/locator/index.test.js +23 -119
- package/dist/locator/index.test.js.map +1 -1
- package/dist/locator/postcss.d.ts +1 -12
- package/dist/locator/postcss.js +3 -42
- package/dist/locator/postcss.js.map +1 -1
- package/dist/locator/postcss.test.js +7 -53
- package/dist/locator/postcss.test.js.map +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/regression-test/issue-168.test.js.map +1 -1
- package/dist/resolver/index.d.ts +1 -1
- package/dist/resolver/index.js +2 -0
- package/dist/resolver/index.js.map +1 -1
- package/dist/resolver/node-resolver.js +2 -2
- package/dist/resolver/node-resolver.js.map +1 -1
- package/dist/resolver/webpack-resolver.js +7 -8
- package/dist/resolver/webpack-resolver.js.map +1 -1
- package/dist/runner.js +9 -7
- package/dist/runner.js.map +1 -1
- package/dist/runner.test.js +16 -15
- package/dist/runner.test.js.map +1 -1
- package/dist/test-util/jest/resolver.cjs +3 -2
- package/dist/test-util/jest/resolver.cjs.map +1 -1
- package/dist/test-util/tsserver.d.ts +2 -2
- package/dist/test-util/tsserver.js +6 -7
- package/dist/test-util/tsserver.js.map +1 -1
- package/dist/test-util/util.d.ts +1 -2
- package/dist/test-util/util.js +3 -4
- package/dist/test-util/util.js.map +1 -1
- package/dist/transformer/index.d.ts +1 -1
- package/dist/transformer/index.js.map +1 -1
- package/dist/transformer/less-transformer.js +1 -0
- package/dist/transformer/less-transformer.js.map +1 -1
- package/dist/transformer/less-transformer.test.js +1 -9
- package/dist/transformer/less-transformer.test.js.map +1 -1
- package/dist/transformer/scss-transformer.js +3 -3
- package/dist/transformer/scss-transformer.js.map +1 -1
- package/dist/transformer/scss-transformer.test.js +1 -9
- package/dist/transformer/scss-transformer.test.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.js +10 -7
- package/dist/util.js.map +1 -1
- package/package.json +17 -17
- package/src/emitter/dts.test.ts +1 -1
- package/src/emitter/dts.ts +10 -9
- package/src/emitter/index.ts +1 -1
- package/src/emitter/source-map.test.ts +2 -2
- package/src/emitter/source-map.ts +2 -2
- package/src/integration-test/go-to-definition.test.ts +1 -36
- package/src/locator/index.test.ts +23 -124
- package/src/locator/index.ts +7 -23
- package/src/locator/postcss.test.ts +7 -74
- package/src/locator/postcss.ts +3 -44
- package/src/resolver/index.ts +3 -1
- package/src/resolver/node-resolver.ts +2 -2
- package/src/resolver/webpack-resolver.ts +7 -8
- package/src/runner.test.ts +17 -17
- package/src/runner.ts +9 -8
- package/src/test-util/jest/resolver.cjs +3 -2
- package/src/test-util/tsserver.ts +7 -11
- package/src/test-util/util.ts +4 -6
- package/src/transformer/index.ts +1 -1
- package/src/transformer/less-transformer.test.ts +1 -9
- package/src/transformer/less-transformer.ts +1 -0
- package/src/transformer/postcss-transformer.ts +1 -1
- package/src/transformer/scss-transformer.test.ts +1 -9
- package/src/transformer/scss-transformer.ts +2 -2
- package/src/util.ts +10 -7
|
@@ -23,8 +23,6 @@ test('handles less features', async () => {
|
|
|
23
23
|
&_2 { dummy: ''; }
|
|
24
24
|
.b_1();
|
|
25
25
|
.b_2();
|
|
26
|
-
composes: a_1; // css module feature test (composes)
|
|
27
|
-
composes: c from './3.less'; // css module feature test (composes from other file)
|
|
28
26
|
}
|
|
29
27
|
`,
|
|
30
28
|
'/test/2.less': dedent`
|
|
@@ -40,7 +38,7 @@ test('handles less features', async () => {
|
|
|
40
38
|
// FIXME: The end position of 'a_2_2' is incorrect.
|
|
41
39
|
expect(result).toMatchInlineSnapshot(`
|
|
42
40
|
{
|
|
43
|
-
dependencies: ["<fixtures>/test/2.less"
|
|
41
|
+
dependencies: ["<fixtures>/test/2.less"],
|
|
44
42
|
tokens: [
|
|
45
43
|
{
|
|
46
44
|
name: "b_1",
|
|
@@ -72,12 +70,6 @@ test('handles less features', async () => {
|
|
|
72
70
|
{ filePath: "<fixtures>/test/1.less", start: { line: 7, column: 3 }, end: { line: 7, column: 8 } },
|
|
73
71
|
],
|
|
74
72
|
},
|
|
75
|
-
{
|
|
76
|
-
name: "c",
|
|
77
|
-
originalLocations: [
|
|
78
|
-
{ filePath: "<fixtures>/test/3.less", start: { line: 1, column: 1 }, end: { line: 1, column: 2 } },
|
|
79
|
-
],
|
|
80
|
-
},
|
|
81
73
|
],
|
|
82
74
|
}
|
|
83
75
|
`);
|
|
@@ -44,6 +44,7 @@ function createLessPluginResolver(Less: typeof import('less'), options: Transfor
|
|
|
44
44
|
export const createLessTransformer: () => Transformer = () => {
|
|
45
45
|
let less: typeof import('less');
|
|
46
46
|
return async (source, options) => {
|
|
47
|
+
// eslint-disable-next-line require-atomic-updates
|
|
47
48
|
less ??= (await import('less').catch(handleImportError('less'))).default;
|
|
48
49
|
const result = await less.render(source, {
|
|
49
50
|
filename: options.from,
|
|
@@ -8,7 +8,7 @@ const require = createRequire(import.meta.url);
|
|
|
8
8
|
|
|
9
9
|
const postcssrc: typeof import('postcss-load-config') = require('postcss-load-config');
|
|
10
10
|
|
|
11
|
-
//ref: https://github.com/postcss/postcss-import#dependency-message-support
|
|
11
|
+
// ref: https://github.com/postcss/postcss-import#dependency-message-support
|
|
12
12
|
interface DependencyMessage extends Message {
|
|
13
13
|
type: 'dependency';
|
|
14
14
|
file: string;
|
|
@@ -22,8 +22,6 @@ test('handles sass features', async () => {
|
|
|
22
22
|
// sass feature test (nesting)
|
|
23
23
|
.a_2_1 { dummy: ''; }
|
|
24
24
|
&_2 { dummy: ''; }
|
|
25
|
-
composes: a_1; // css module feature test (composes)
|
|
26
|
-
composes: d from './4.scss'; // css module feature test (composes from other file)
|
|
27
25
|
}
|
|
28
26
|
`,
|
|
29
27
|
'/test/2.scss': dedent`
|
|
@@ -46,7 +44,7 @@ test('handles sass features', async () => {
|
|
|
46
44
|
// FIXME: The end position of 'a_2_2' is incorrect.
|
|
47
45
|
expect(result).toMatchInlineSnapshot(`
|
|
48
46
|
{
|
|
49
|
-
dependencies: ["<fixtures>/test/2.scss", "<fixtures>/test/3.scss"
|
|
47
|
+
dependencies: ["<fixtures>/test/2.scss", "<fixtures>/test/3.scss"],
|
|
50
48
|
tokens: [
|
|
51
49
|
{
|
|
52
50
|
name: "b_1",
|
|
@@ -85,12 +83,6 @@ test('handles sass features', async () => {
|
|
|
85
83
|
{ filePath: "<fixtures>/test/1.scss", start: { line: 8, column: 3 }, end: { line: 8, column: 8 } },
|
|
86
84
|
],
|
|
87
85
|
},
|
|
88
|
-
{
|
|
89
|
-
name: "d",
|
|
90
|
-
originalLocations: [
|
|
91
|
-
{ filePath: "<fixtures>/test/4.scss", start: { line: 1, column: 1 }, end: { line: 1, column: 2 } },
|
|
92
|
-
],
|
|
93
|
-
},
|
|
94
86
|
],
|
|
95
87
|
}
|
|
96
88
|
`);
|
|
@@ -22,8 +22,8 @@ function promisifySassRender(sass: typeof import('sass')) {
|
|
|
22
22
|
export const createScssTransformer: () => Transformer = () => {
|
|
23
23
|
let sass: typeof import('sass');
|
|
24
24
|
return async (source, options) => {
|
|
25
|
-
|
|
26
|
-
sass ??=
|
|
25
|
+
// eslint-disable-next-line require-atomic-updates
|
|
26
|
+
sass ??= await import('sass').catch(handleImportError('sass'));
|
|
27
27
|
const render = promisifySassRender(sass);
|
|
28
28
|
const result = await render({
|
|
29
29
|
data: source,
|
package/src/util.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { access } from 'fs/promises';
|
|
|
3
3
|
import { join, dirname, resolve } from 'path';
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
5
|
import { resolve as importMetaResolve } from 'import-meta-resolve';
|
|
6
|
-
import minimatch from 'minimatch';
|
|
6
|
+
import { minimatch } from 'minimatch';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* The SystemError type of Node.js.
|
|
@@ -66,21 +66,24 @@ export async function exists(path: string): Promise<boolean> {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
export function isMatchByGlob(filePath: string, pattern: string, options: { cwd: string }): boolean {
|
|
69
|
-
return minimatch(filePath, join(options.cwd, pattern));
|
|
69
|
+
return minimatch(filePath, join(options.cwd, pattern), { windowsPathsNoEscape: true });
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
export function getPackageJson() {
|
|
73
73
|
return JSON.parse(readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), '../package.json'), 'utf-8'));
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
export
|
|
76
|
+
export function getInstalledPeerDependencies(): string[] {
|
|
77
77
|
const pkgJson = getPackageJson();
|
|
78
78
|
const result = [];
|
|
79
79
|
for (const deps of Object.keys(pkgJson.peerDependencies)) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
try {
|
|
81
|
+
importMetaResolve(deps, import.meta.url);
|
|
82
|
+
// If the package is installed, push it to the result array.
|
|
83
|
+
result.push(deps);
|
|
84
|
+
} catch {
|
|
85
|
+
// If the package is not installed, do nothing.
|
|
86
|
+
}
|
|
84
87
|
}
|
|
85
88
|
return result;
|
|
86
89
|
}
|