happy-css-modules 0.5.0 → 0.6.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/README.md +78 -9
- package/dist/cli.js +17 -10
- package/dist/cli.js.map +1 -1
- package/dist/cli.test.js +9 -4
- package/dist/cli.test.js.map +1 -1
- package/dist/emitter/dts.d.ts +3 -4
- package/dist/emitter/dts.js +4 -14
- package/dist/emitter/dts.js.map +1 -1
- package/dist/emitter/dts.test.js +7 -10
- package/dist/emitter/dts.test.js.map +1 -1
- package/dist/emitter/index.d.ts +6 -15
- package/dist/emitter/index.js +18 -13
- package/dist/emitter/index.js.map +1 -1
- package/dist/emitter/index.test.js +0 -50
- package/dist/emitter/index.test.js.map +1 -1
- package/dist/emitter/source-map.d.ts +1 -3
- package/dist/emitter/source-map.js +2 -3
- package/dist/emitter/source-map.js.map +1 -1
- package/dist/emitter/source-map.test.js +1 -4
- package/dist/emitter/source-map.test.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/integration-test/go-to-definition.test.js +1 -0
- package/dist/integration-test/go-to-definition.test.js.map +1 -1
- package/dist/{loader → locator}/index.d.ts +6 -4
- package/dist/{loader → locator}/index.js +13 -5
- package/dist/locator/index.js.map +1 -0
- package/dist/{loader → locator}/index.test.d.ts +0 -0
- package/dist/{loader → locator}/index.test.js +25 -17
- package/dist/locator/index.test.js.map +1 -0
- package/dist/{loader → locator}/postcss.d.ts +0 -0
- package/dist/{loader → locator}/postcss.js +0 -0
- package/dist/locator/postcss.js.map +1 -0
- package/dist/{loader → locator}/postcss.test.d.ts +0 -0
- package/dist/{loader → locator}/postcss.test.js +0 -0
- package/dist/locator/postcss.test.js.map +1 -0
- package/dist/runner.d.ts +10 -1
- package/dist/runner.js +45 -18
- package/dist/runner.js.map +1 -1
- package/dist/runner.test.js +55 -3
- package/dist/runner.test.js.map +1 -1
- package/dist/test/util.d.ts +1 -1
- package/dist/test/util.js +1 -1
- package/dist/test/util.js.map +1 -1
- package/dist/transformer/index.d.ts +1 -1
- package/dist/transformer/index.test.js +8 -8
- package/dist/transformer/index.test.js.map +1 -1
- package/dist/transformer/less-transformer.test.js +8 -8
- package/dist/transformer/less-transformer.test.js.map +1 -1
- package/dist/transformer/postcss-transformer.test.js +13 -13
- package/dist/transformer/postcss-transformer.test.js.map +1 -1
- package/dist/transformer/scss-transformer.test.js +8 -8
- package/dist/transformer/scss-transformer.test.js.map +1 -1
- package/dist/util.d.ts +2 -0
- package/dist/util.js +19 -2
- package/dist/util.js.map +1 -1
- package/package.json +5 -7
- package/src/cli.test.ts +9 -4
- package/src/cli.ts +17 -11
- package/src/emitter/dts.test.ts +7 -12
- package/src/emitter/dts.ts +5 -14
- package/src/emitter/index.test.ts +0 -52
- package/src/emitter/index.ts +22 -29
- package/src/emitter/source-map.test.ts +1 -6
- package/src/emitter/source-map.ts +3 -4
- package/src/index.ts +1 -0
- package/src/integration-test/go-to-definition.test.ts +1 -0
- package/src/{loader → locator}/index.test.ts +26 -17
- package/src/{loader → locator}/index.ts +16 -8
- package/src/{loader → locator}/postcss.test.ts +0 -0
- package/src/{loader → locator}/postcss.ts +0 -0
- package/src/runner.test.ts +65 -3
- package/src/runner.ts +53 -19
- package/src/test/util.ts +1 -1
- package/src/transformer/index.test.ts +8 -8
- package/src/transformer/index.ts +1 -1
- package/src/transformer/less-transformer.test.ts +8 -8
- package/src/transformer/postcss-transformer.test.ts +13 -13
- package/src/transformer/scss-transformer.test.ts +8 -8
- package/src/util.ts +21 -2
- package/dist/loader/index.js.map +0 -1
- package/dist/loader/index.test.js.map +0 -1
- package/dist/loader/postcss.js.map +0 -1
- package/dist/loader/postcss.test.js.map +0 -1
package/dist/runner.test.js
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
import { readFile, writeFile } from 'fs/promises';
|
|
1
|
+
import { readFile, rm, writeFile } from 'fs/promises';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { createRequire } from 'node:module';
|
|
4
|
+
import { dirname, join, resolve } from 'path';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import * as fileCacheNpm from '@file-cache/npm';
|
|
4
7
|
import { jest } from '@jest/globals';
|
|
5
8
|
import chalk from 'chalk';
|
|
6
9
|
import dedent from 'dedent';
|
|
7
|
-
import AggregateError from 'es-aggregate-error';
|
|
8
|
-
import { run } from './runner.js';
|
|
9
10
|
import { createFixtures, exists, getFixturePath, waitForAsyncTask } from './test/util.js';
|
|
10
11
|
const require = createRequire(import.meta.url);
|
|
12
|
+
jest.unstable_mockModule('@file-cache/npm', () => ({
|
|
13
|
+
...fileCacheNpm,
|
|
14
|
+
createNpmPackageKey: () => 'mocked-key',
|
|
15
|
+
}));
|
|
16
|
+
const { run } = await import('./runner.js');
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
18
|
+
const consoleLogSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
|
|
11
19
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
12
20
|
const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => { });
|
|
13
21
|
const defaultOptions = {
|
|
@@ -15,7 +23,14 @@ const defaultOptions = {
|
|
|
15
23
|
declarationMap: true,
|
|
16
24
|
silent: true,
|
|
17
25
|
cwd: getFixturePath('/'),
|
|
26
|
+
cache: false,
|
|
18
27
|
};
|
|
28
|
+
const dir = join(dirname(fileURLToPath(import.meta.url)));
|
|
29
|
+
beforeEach(async () => {
|
|
30
|
+
consoleLogSpy.mockClear();
|
|
31
|
+
consoleErrorSpy.mockClear();
|
|
32
|
+
await rm(resolve(dir, '../node_modules/.cache/happy-css-modules'), { recursive: true, force: true }); // clear cache
|
|
33
|
+
});
|
|
19
34
|
// Exit the watcher even if the test fails
|
|
20
35
|
let watcher;
|
|
21
36
|
afterEach(async () => {
|
|
@@ -34,6 +49,43 @@ test('generates .d.ts and .d.ts.map', async () => {
|
|
|
34
49
|
expect(await readFile(getFixturePath('/test/2.css.d.ts'), 'utf8')).toMatchSnapshot();
|
|
35
50
|
expect(await readFile(getFixturePath('/test/2.css.d.ts.map'), 'utf8')).toMatchSnapshot();
|
|
36
51
|
});
|
|
52
|
+
test('uses cache', async () => {
|
|
53
|
+
createFixtures({
|
|
54
|
+
'/test/1.css': '.a {}',
|
|
55
|
+
});
|
|
56
|
+
await run({ ...defaultOptions, declarationMap: true, silent: false, cache: true });
|
|
57
|
+
expect(consoleLogSpy).toBeCalledTimes(1);
|
|
58
|
+
expect(consoleLogSpy).toHaveBeenNthCalledWith(1, expect.stringContaining('generated'));
|
|
59
|
+
consoleLogSpy.mockClear();
|
|
60
|
+
// Skip generation
|
|
61
|
+
await run({ ...defaultOptions, declarationMap: true, silent: false, cache: true });
|
|
62
|
+
expect(consoleLogSpy).toBeCalledTimes(1);
|
|
63
|
+
expect(consoleLogSpy).toHaveBeenNthCalledWith(1, expect.stringContaining('skipped'));
|
|
64
|
+
consoleLogSpy.mockClear();
|
|
65
|
+
// Generates if generated files are missing
|
|
66
|
+
await rm(getFixturePath('/test/1.css.d.ts'));
|
|
67
|
+
await run({ ...defaultOptions, declarationMap: true, silent: false, cache: true });
|
|
68
|
+
expect(consoleLogSpy).toBeCalledTimes(1);
|
|
69
|
+
expect(consoleLogSpy).toHaveBeenNthCalledWith(1, expect.stringContaining('generated'));
|
|
70
|
+
consoleLogSpy.mockClear();
|
|
71
|
+
// Generates if options are changed
|
|
72
|
+
await run({ ...defaultOptions, declarationMap: false, silent: false, cache: true });
|
|
73
|
+
expect(consoleLogSpy).toBeCalledTimes(1);
|
|
74
|
+
expect(consoleLogSpy).toHaveBeenNthCalledWith(1, expect.stringContaining('generated'));
|
|
75
|
+
consoleLogSpy.mockClear();
|
|
76
|
+
});
|
|
77
|
+
test('outputs logs', async () => {
|
|
78
|
+
createFixtures({
|
|
79
|
+
'/test/1.css': '.a {}',
|
|
80
|
+
});
|
|
81
|
+
await run({ ...defaultOptions, silent: false, cache: true });
|
|
82
|
+
expect(consoleLogSpy).toBeCalledTimes(1);
|
|
83
|
+
expect(consoleLogSpy).toHaveBeenNthCalledWith(1, `${chalk.green('test/1.css')} (generated)`);
|
|
84
|
+
consoleLogSpy.mockClear();
|
|
85
|
+
await run({ ...defaultOptions, silent: false, cache: true });
|
|
86
|
+
expect(consoleLogSpy).toBeCalledTimes(1);
|
|
87
|
+
expect(consoleLogSpy).toHaveBeenNthCalledWith(1, `${chalk.gray('test/1.css (skipped)')}`);
|
|
88
|
+
});
|
|
37
89
|
test.todo('changes dts format with localsConvention options');
|
|
38
90
|
test('does not emit declaration map if declarationMap is false', async () => {
|
|
39
91
|
createFixtures({
|
package/dist/runner.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../src/runner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../src/runner.test.ts"],"names":[],"mappings":"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"}
|
package/dist/test/util.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Root, type Rule, type AtRule, type Declaration } from 'postcss';
|
|
2
2
|
import { type ClassName } from 'postcss-selector-parser';
|
|
3
|
-
import { type Token, type Location } from '../
|
|
3
|
+
import { type Token, type Location } from '../locator/index.js';
|
|
4
4
|
export declare const FIXTURE_DIR_PATH: string;
|
|
5
5
|
export declare function createRoot(code: string, from?: string): Root;
|
|
6
6
|
export declare function createAtImports(root: Root): AtRule[];
|
package/dist/test/util.js
CHANGED
|
@@ -3,7 +3,7 @@ import { access } from 'fs/promises';
|
|
|
3
3
|
import { tmpdir } from 'os';
|
|
4
4
|
import { dirname, join, resolve } from 'path';
|
|
5
5
|
import postcss from 'postcss';
|
|
6
|
-
import { collectNodes } from '../
|
|
6
|
+
import { collectNodes } from '../locator/index.js';
|
|
7
7
|
import { sleepSync } from '../util.js';
|
|
8
8
|
export const FIXTURE_DIR_PATH = resolve(realpathSync(tmpdir()), 'happy-css-modules/fixtures', process.env['JEST_WORKER_ID']);
|
|
9
9
|
export function createRoot(code, from) {
|
package/dist/test/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/test/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,OAAgE,MAAM,SAAS,CAAC;AAEvF,OAAO,EAAc,YAAY,EAAiB,MAAM,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/test/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import type { StrictlyResolver } from '../
|
|
2
|
+
import type { StrictlyResolver } from '../locator/index.js';
|
|
3
3
|
import type { PostcssTransformerOptions } from './postcss-transformer.js';
|
|
4
4
|
/**
|
|
5
5
|
* The value returned from the transformer.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import dedent from 'dedent';
|
|
4
|
-
import {
|
|
4
|
+
import { Locator } from '../locator/index.js';
|
|
5
5
|
import { createFixtures, getFixturePath } from '../test/util.js';
|
|
6
6
|
import { createDefaultTransformer } from './index.js';
|
|
7
7
|
const require = createRequire(import.meta.url);
|
|
8
8
|
const cwd = getFixturePath('/');
|
|
9
|
-
const
|
|
9
|
+
const locator = new Locator({ transformer: createDefaultTransformer({ cwd }) });
|
|
10
10
|
test('processes .scss with scss transformer', async () => {
|
|
11
11
|
createFixtures({
|
|
12
12
|
'/test/1.scss': dedent `
|
|
@@ -16,7 +16,7 @@ test('processes .scss with scss transformer', async () => {
|
|
|
16
16
|
}
|
|
17
17
|
`,
|
|
18
18
|
});
|
|
19
|
-
const result = await
|
|
19
|
+
const result = await locator.load(getFixturePath('/test/1.scss'));
|
|
20
20
|
expect(result.tokens.map((token) => token.name)).toStrictEqual(['a', 'a_1']);
|
|
21
21
|
});
|
|
22
22
|
test('processes .less with less transformer', async () => {
|
|
@@ -28,23 +28,23 @@ test('processes .less with less transformer', async () => {
|
|
|
28
28
|
}
|
|
29
29
|
`,
|
|
30
30
|
});
|
|
31
|
-
const result = await
|
|
31
|
+
const result = await locator.load(getFixturePath('/test/1.less'));
|
|
32
32
|
expect(result.tokens.map((token) => token.name)).toStrictEqual(['a', 'a_1']);
|
|
33
33
|
});
|
|
34
34
|
test('processes .css with postcss transformer if postcssrc is found', async () => {
|
|
35
35
|
// if postcssrc is not found
|
|
36
|
-
const
|
|
36
|
+
const locator1 = new Locator({ transformer: createDefaultTransformer() });
|
|
37
37
|
createFixtures({
|
|
38
38
|
'/test/1.css': dedent `
|
|
39
39
|
$prefix: foo;
|
|
40
40
|
.$(prefix)_bar {}
|
|
41
41
|
`,
|
|
42
42
|
});
|
|
43
|
-
const result1 = await
|
|
43
|
+
const result1 = await locator1.load(getFixturePath('/test/1.css'));
|
|
44
44
|
expect(result1.tokens.map((token) => token.name)).toStrictEqual(['$(prefix)']);
|
|
45
45
|
// if postcssrc is found
|
|
46
46
|
const uuid = randomUUID();
|
|
47
|
-
const
|
|
47
|
+
const locator2 = new Locator({
|
|
48
48
|
transformer: createDefaultTransformer({ cwd, postcssConfig: `${uuid}/postcss.config.js` }),
|
|
49
49
|
});
|
|
50
50
|
createFixtures({
|
|
@@ -60,7 +60,7 @@ test('processes .css with postcss transformer if postcssrc is found', async () =
|
|
|
60
60
|
.$(prefix)_bar {}
|
|
61
61
|
`,
|
|
62
62
|
});
|
|
63
|
-
const result2 = await
|
|
63
|
+
const result2 = await locator2.load(getFixturePath('/test/1.css'));
|
|
64
64
|
expect(result2.tokens.map((token) => token.name)).toStrictEqual(['foo_bar']);
|
|
65
65
|
});
|
|
66
66
|
//# sourceMappingURL=index.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/transformer/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/transformer/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jest } from '@jest/globals';
|
|
2
2
|
import dedent from 'dedent';
|
|
3
|
-
import {
|
|
3
|
+
import { Locator } from '../locator/index.js';
|
|
4
4
|
import { createFixtures, getFixturePath } from '../test/util.js';
|
|
5
5
|
import { createLessTransformer } from './less-transformer.js';
|
|
6
|
-
const
|
|
7
|
-
const loadSpy = jest.spyOn(
|
|
6
|
+
const locator = new Locator({ transformer: createLessTransformer() });
|
|
7
|
+
const loadSpy = jest.spyOn(locator, 'load');
|
|
8
8
|
afterEach(() => {
|
|
9
9
|
loadSpy.mockClear();
|
|
10
10
|
});
|
|
@@ -32,7 +32,7 @@ test('handles less features', async () => {
|
|
|
32
32
|
.c { dummy: ''; }
|
|
33
33
|
`,
|
|
34
34
|
});
|
|
35
|
-
const result = await
|
|
35
|
+
const result = await locator.load(getFixturePath('/test/1.less'));
|
|
36
36
|
// FIXME: The end position of 'a_2_2' is incorrect.
|
|
37
37
|
expect(result).toMatchInlineSnapshot(`
|
|
38
38
|
{
|
|
@@ -92,9 +92,9 @@ test('tracks dependencies that have been pre-bundled by less compiler', async ()
|
|
|
92
92
|
'/test/4.less': dedent `
|
|
93
93
|
`,
|
|
94
94
|
});
|
|
95
|
-
const result = await
|
|
95
|
+
const result = await locator.load(getFixturePath('/test/1.less'));
|
|
96
96
|
// The files imported using @import are pre-bundled by the compiler.
|
|
97
|
-
// Therefore, `
|
|
97
|
+
// Therefore, `Locator#load` is not called to process other files.
|
|
98
98
|
expect(loadSpy).toBeCalledTimes(1);
|
|
99
99
|
expect(loadSpy).toHaveBeenNthCalledWith(1, getFixturePath('/test/1.less'));
|
|
100
100
|
// The files pre-bundled by the compiler are also included in `result.dependencies`
|
|
@@ -112,7 +112,7 @@ test('resolves specifier using resolver', async () => {
|
|
|
112
112
|
'/node_modules/package-1/index.css': `.a {}`,
|
|
113
113
|
'/node_modules/package-2/index.less': `.a {}`,
|
|
114
114
|
});
|
|
115
|
-
const result = await
|
|
115
|
+
const result = await locator.load(getFixturePath('/test/1.less'));
|
|
116
116
|
// eslint-disable-next-line @typescript-eslint/require-array-sort-compare
|
|
117
117
|
expect(result.dependencies.sort()).toStrictEqual(
|
|
118
118
|
// eslint-disable-next-line @typescript-eslint/require-array-sort-compare
|
|
@@ -126,7 +126,7 @@ test('ignores http(s) protocol file', async () => {
|
|
|
126
126
|
@import 'https://example.com/path/less.less';
|
|
127
127
|
`,
|
|
128
128
|
});
|
|
129
|
-
const result = await
|
|
129
|
+
const result = await locator.load(getFixturePath('/test/1.less'));
|
|
130
130
|
expect(result.dependencies).toStrictEqual([]);
|
|
131
131
|
});
|
|
132
132
|
//# sourceMappingURL=less-transformer.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"less-transformer.test.js","sourceRoot":"","sources":["../../src/transformer/less-transformer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"less-transformer.test.js","sourceRoot":"","sources":["../../src/transformer/less-transformer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { randomUUID } from 'node:crypto';
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { jest } from '@jest/globals';
|
|
4
4
|
import dedent from 'dedent';
|
|
5
|
-
import {
|
|
5
|
+
import { Locator } from '../locator/index.js';
|
|
6
6
|
import { createFixtures, getFixturePath } from '../test/util.js';
|
|
7
7
|
import { createPostcssTransformer } from './postcss-transformer.js';
|
|
8
8
|
const cwd = getFixturePath('/');
|
|
@@ -11,7 +11,7 @@ const require = createRequire(import.meta.url);
|
|
|
11
11
|
// Therefore, change the path for each test case so that a new configuration file is always used.
|
|
12
12
|
test('handles postcss features', async () => {
|
|
13
13
|
const uuid = randomUUID();
|
|
14
|
-
const
|
|
14
|
+
const locator = new Locator({
|
|
15
15
|
transformer: createPostcssTransformer({
|
|
16
16
|
cwd,
|
|
17
17
|
postcssConfig: `${uuid}/postcss.config.js`,
|
|
@@ -30,7 +30,7 @@ test('handles postcss features', async () => {
|
|
|
30
30
|
.$(prefix)_bar {}
|
|
31
31
|
`,
|
|
32
32
|
});
|
|
33
|
-
const result = await
|
|
33
|
+
const result = await locator.load(getFixturePath('/test/1.css'));
|
|
34
34
|
expect(result).toMatchInlineSnapshot(`
|
|
35
35
|
{
|
|
36
36
|
dependencies: [],
|
|
@@ -47,13 +47,13 @@ test('handles postcss features', async () => {
|
|
|
47
47
|
});
|
|
48
48
|
test('tracks dependencies that have been pre-bundled by postcss compiler', async () => {
|
|
49
49
|
const uuid = randomUUID();
|
|
50
|
-
const
|
|
50
|
+
const locator = new Locator({
|
|
51
51
|
transformer: createPostcssTransformer({
|
|
52
52
|
cwd,
|
|
53
53
|
postcssConfig: `${uuid}/postcss.config.js`,
|
|
54
54
|
}),
|
|
55
55
|
});
|
|
56
|
-
const loadSpy = jest.spyOn(
|
|
56
|
+
const loadSpy = jest.spyOn(locator, 'load');
|
|
57
57
|
createFixtures({
|
|
58
58
|
[`/${uuid}/postcss.config.js`]: dedent `
|
|
59
59
|
module.exports = {
|
|
@@ -70,9 +70,9 @@ test('tracks dependencies that have been pre-bundled by postcss compiler', async
|
|
|
70
70
|
'/test/3.css': `@import './4.css'`,
|
|
71
71
|
'/test/4.css': ``,
|
|
72
72
|
});
|
|
73
|
-
const result = await
|
|
73
|
+
const result = await locator.load(getFixturePath('/test/1.css'));
|
|
74
74
|
// The files imported using @import are pre-bundled by the compiler.
|
|
75
|
-
// Therefore, `
|
|
75
|
+
// Therefore, `Locator#load` is not called to process other files.
|
|
76
76
|
expect(loadSpy).toBeCalledTimes(1);
|
|
77
77
|
expect(loadSpy).toHaveBeenNthCalledWith(1, getFixturePath('/test/1.css'));
|
|
78
78
|
// The files pre-bundled by the compiler are also included in `result.dependencies`
|
|
@@ -80,7 +80,7 @@ test('tracks dependencies that have been pre-bundled by postcss compiler', async
|
|
|
80
80
|
});
|
|
81
81
|
test('resolves specifier using resolver', async () => {
|
|
82
82
|
const uuid = randomUUID();
|
|
83
|
-
const
|
|
83
|
+
const locator = new Locator({
|
|
84
84
|
transformer: createPostcssTransformer({
|
|
85
85
|
cwd,
|
|
86
86
|
postcssConfig: `${uuid}/postcss.config.js`,
|
|
@@ -101,12 +101,12 @@ test('resolves specifier using resolver', async () => {
|
|
|
101
101
|
`,
|
|
102
102
|
'/node_modules/package/index.css': `.a {}`,
|
|
103
103
|
});
|
|
104
|
-
const result = await
|
|
104
|
+
const result = await locator.load(getFixturePath('/test/1.css'));
|
|
105
105
|
expect(result.dependencies).toStrictEqual(['/node_modules/package/index.css'].map(getFixturePath));
|
|
106
106
|
});
|
|
107
107
|
test('ignores http(s) protocol file', async () => {
|
|
108
108
|
const uuid = randomUUID();
|
|
109
|
-
const
|
|
109
|
+
const locator = new Locator({
|
|
110
110
|
transformer: createPostcssTransformer({
|
|
111
111
|
cwd,
|
|
112
112
|
postcssConfig: `${uuid}/postcss.config.js`,
|
|
@@ -127,7 +127,7 @@ test('ignores http(s) protocol file', async () => {
|
|
|
127
127
|
@import 'https://example.com/path/https.css';
|
|
128
128
|
`,
|
|
129
129
|
});
|
|
130
|
-
const result = await
|
|
130
|
+
const result = await locator.load(getFixturePath('/test/1.css'));
|
|
131
131
|
expect(result.dependencies).toStrictEqual([]);
|
|
132
132
|
});
|
|
133
133
|
test('returns false if postcssrc is not found', async () => {
|
|
@@ -152,7 +152,7 @@ test('returns false if postcssrc is not found', async () => {
|
|
|
152
152
|
test('searches config from cwd if postcssConfig option is missing', async () => {
|
|
153
153
|
const uuid = randomUUID();
|
|
154
154
|
const cwd = `/${uuid}`;
|
|
155
|
-
const
|
|
155
|
+
const locator = new Locator({
|
|
156
156
|
transformer: createPostcssTransformer({
|
|
157
157
|
cwd: getFixturePath(cwd),
|
|
158
158
|
}),
|
|
@@ -170,7 +170,7 @@ test('searches config from cwd if postcssConfig option is missing', async () =>
|
|
|
170
170
|
.$(prefix)_bar {}
|
|
171
171
|
`,
|
|
172
172
|
});
|
|
173
|
-
const result = await
|
|
173
|
+
const result = await locator.load(getFixturePath('/test/1.css'));
|
|
174
174
|
expect(result.tokens.map((token) => token.name)).toStrictEqual(['foo_bar']);
|
|
175
175
|
});
|
|
176
176
|
//# sourceMappingURL=postcss-transformer.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postcss-transformer.test.js","sourceRoot":"","sources":["../../src/transformer/postcss-transformer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"postcss-transformer.test.js","sourceRoot":"","sources":["../../src/transformer/postcss-transformer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jest } from '@jest/globals';
|
|
2
2
|
import dedent from 'dedent';
|
|
3
|
-
import {
|
|
3
|
+
import { Locator } from '../locator/index.js';
|
|
4
4
|
import { createFixtures, getFixturePath } from '../test/util.js';
|
|
5
5
|
import { createScssTransformer } from './scss-transformer.js';
|
|
6
|
-
const
|
|
7
|
-
const loadSpy = jest.spyOn(
|
|
6
|
+
const locator = new Locator({ transformer: createScssTransformer() });
|
|
7
|
+
const loadSpy = jest.spyOn(locator, 'load');
|
|
8
8
|
afterEach(() => {
|
|
9
9
|
loadSpy.mockClear();
|
|
10
10
|
});
|
|
@@ -34,7 +34,7 @@ test('handles sass features', async () => {
|
|
|
34
34
|
.d { dummy: ''; }
|
|
35
35
|
`,
|
|
36
36
|
});
|
|
37
|
-
const result = await
|
|
37
|
+
const result = await locator.load(getFixturePath('/test/1.scss'));
|
|
38
38
|
// NOTE: There should be only one originalLocations for 'a_2', but there are multiple.
|
|
39
39
|
// This is probably due to an incorrect sourcemap output by the sass compiler.
|
|
40
40
|
// FIXME: The sass compiler or Loader implementation needs to be fixed.
|
|
@@ -104,9 +104,9 @@ test('tracks dependencies that have been pre-bundled by sass compiler', async ()
|
|
|
104
104
|
'/test/4.scss': dedent `
|
|
105
105
|
`,
|
|
106
106
|
});
|
|
107
|
-
const result = await
|
|
107
|
+
const result = await locator.load(getFixturePath('/test/1.scss'));
|
|
108
108
|
// The files imported using @import are pre-bundled by the compiler.
|
|
109
|
-
// Therefore, `
|
|
109
|
+
// Therefore, `Locator#load` is not called to process other files.
|
|
110
110
|
expect(loadSpy).toBeCalledTimes(1);
|
|
111
111
|
expect(loadSpy).toHaveBeenNthCalledWith(1, getFixturePath('/test/1.scss'));
|
|
112
112
|
// The files pre-bundled by the compiler are also included in `result.dependencies`
|
|
@@ -121,7 +121,7 @@ test('resolves specifier using resolver', async () => {
|
|
|
121
121
|
'/node_modules/package-1/index.css': `.a {}`,
|
|
122
122
|
'/node_modules/package-2/index.scss': `.a {}`,
|
|
123
123
|
});
|
|
124
|
-
const result = await
|
|
124
|
+
const result = await locator.load(getFixturePath('/test/1.scss'));
|
|
125
125
|
expect(result.dependencies).toStrictEqual(['/node_modules/package-1/index.css', '/node_modules/package-2/index.scss'].map(getFixturePath));
|
|
126
126
|
});
|
|
127
127
|
test('ignores http(s) protocol file', async () => {
|
|
@@ -132,7 +132,7 @@ test('ignores http(s) protocol file', async () => {
|
|
|
132
132
|
@import 'https://example.com/path/scss.scss';
|
|
133
133
|
`,
|
|
134
134
|
});
|
|
135
|
-
const result = await
|
|
135
|
+
const result = await locator.load(getFixturePath('/test/1.scss'));
|
|
136
136
|
expect(result.dependencies).toStrictEqual([]);
|
|
137
137
|
});
|
|
138
138
|
//# sourceMappingURL=scss-transformer.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scss-transformer.test.js","sourceRoot":"","sources":["../../src/transformer/scss-transformer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"scss-transformer.test.js","sourceRoot":"","sources":["../../src/transformer/scss-transformer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;AACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE5C,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,SAAS,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IACvC,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;;;;;;;;;;;OAYnB;QACH,cAAc,EAAE,MAAM,CAAA;;;OAGnB;QACH,cAAc,EAAE,MAAM,CAAA;;OAEnB;QACH,cAAc,EAAE,MAAM,CAAA;;OAEnB;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAElE,sFAAsF;IACtF,8EAA8E;IAC9E,uEAAuE;IAEvE,mDAAmD;IACnD,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;IACjF,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;;KAGrB;QACD,cAAc,EAAE,MAAM,CAAA;KACrB;QACD,cAAc,EAAE,MAAM,CAAA;;KAErB;QACD,cAAc,EAAE,MAAM,CAAA;KACrB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAElE,oEAAoE;IACpE,kEAAkE;IAClE,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAE3E,mFAAmF;IACnF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAClH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;IACnD,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;;KAGrB;QACD,mCAAmC,EAAE,OAAO;QAC5C,oCAAoC,EAAE,OAAO;KAC9C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CACvC,CAAC,mCAAmC,EAAE,oCAAoC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAChG,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;IAC/C,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;;;KAIrB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC"}
|
package/dist/util.d.ts
CHANGED
|
@@ -17,3 +17,5 @@ export declare function exists(path: string): Promise<boolean>;
|
|
|
17
17
|
export declare function isMatchByGlob(filePath: string, pattern: string, options: {
|
|
18
18
|
cwd: string;
|
|
19
19
|
}): boolean;
|
|
20
|
+
export declare function getPackageJson(): any;
|
|
21
|
+
export declare function getInstalledPeerDependencies(): Promise<string[]>;
|
package/dist/util.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { constants } from 'fs';
|
|
1
|
+
import { constants, readFileSync } from 'fs';
|
|
2
2
|
import { access } from 'fs/promises';
|
|
3
|
-
import { join } from 'path';
|
|
3
|
+
import { join, dirname, resolve } from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
import { resolve as importMetaResolve } from 'import-meta-resolve';
|
|
4
6
|
import minimatch from 'minimatch';
|
|
5
7
|
export function isSystemError(value) {
|
|
6
8
|
return (isObject(value) &&
|
|
@@ -49,4 +51,19 @@ export async function exists(path) {
|
|
|
49
51
|
export function isMatchByGlob(filePath, pattern, options) {
|
|
50
52
|
return minimatch(filePath, join(options.cwd, pattern));
|
|
51
53
|
}
|
|
54
|
+
export function getPackageJson() {
|
|
55
|
+
return JSON.parse(readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), '../package.json'), 'utf-8'));
|
|
56
|
+
}
|
|
57
|
+
export async function getInstalledPeerDependencies() {
|
|
58
|
+
const pkgJson = getPackageJson();
|
|
59
|
+
const result = [];
|
|
60
|
+
for (const deps of Object.keys(pkgJson.peerDependencies)) {
|
|
61
|
+
const isInstalled = await importMetaResolve(deps, import.meta.url)
|
|
62
|
+
.then(() => true)
|
|
63
|
+
.catch(() => false);
|
|
64
|
+
if (isInstalled)
|
|
65
|
+
result.push(deps);
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
52
69
|
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "happy-css-modules",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Creates .d.ts files from CSS Modules .css files",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,11 +27,12 @@
|
|
|
27
27
|
"node": ">=16.0.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
+
"@file-cache/core": "^1.1.3",
|
|
31
|
+
"@file-cache/npm": "^1.1.3",
|
|
30
32
|
"camelcase": "^7.0.0",
|
|
31
33
|
"chalk": "^5.0.1",
|
|
32
34
|
"chokidar": "^3.5.3",
|
|
33
35
|
"enhanced-resolve": "^5.10.0",
|
|
34
|
-
"es-aggregate-error": "^1.0.8",
|
|
35
36
|
"glob": "^8.0.3",
|
|
36
37
|
"import-meta-resolve": "^2.1.0",
|
|
37
38
|
"minimatch": "^5.1.0",
|
|
@@ -44,15 +45,13 @@
|
|
|
44
45
|
"yargs": "^17.5.1"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|
|
47
|
-
"@babel/core": "^7.18.13",
|
|
48
|
-
"@babel/preset-typescript": "^7.18.6",
|
|
49
48
|
"@jest/globals": "^29.0.3",
|
|
50
49
|
"@jest/types": "^29.0.3",
|
|
51
50
|
"@mizdra/eslint-config-mizdra": "^1.2.0",
|
|
52
51
|
"@mizdra/prettier-config-mizdra": "^1.0.0",
|
|
53
|
-
"@
|
|
52
|
+
"@swc/core": "^1.3.8",
|
|
53
|
+
"@swc/jest": "^0.2.23",
|
|
54
54
|
"@types/dedent": "^0.7.0",
|
|
55
|
-
"@types/es-aggregate-error": "^1.0.2",
|
|
56
55
|
"@types/glob": "^7.2.0",
|
|
57
56
|
"@types/jest": "^29.0.0",
|
|
58
57
|
"@types/less": "^3.0.3",
|
|
@@ -63,7 +62,6 @@
|
|
|
63
62
|
"@typescript-eslint/eslint-plugin": "^5.31.0",
|
|
64
63
|
"@typescript-eslint/parser": "^5.31.0",
|
|
65
64
|
"@typescript/server-harness": "^0.2.0",
|
|
66
|
-
"babel-jest": "^29.0.3",
|
|
67
65
|
"dedent": "^0.7.0",
|
|
68
66
|
"eslint": "^8.20.0",
|
|
69
67
|
"eslint-config-prettier": "^8.5.0",
|