happy-css-modules 0.5.0 → 0.6.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.
Files changed (85) hide show
  1. package/README.md +112 -10
  2. package/dist/cli.js +17 -10
  3. package/dist/cli.js.map +1 -1
  4. package/dist/cli.test.js +9 -4
  5. package/dist/cli.test.js.map +1 -1
  6. package/dist/emitter/dts.d.ts +3 -4
  7. package/dist/emitter/dts.js +4 -14
  8. package/dist/emitter/dts.js.map +1 -1
  9. package/dist/emitter/dts.test.js +7 -10
  10. package/dist/emitter/dts.test.js.map +1 -1
  11. package/dist/emitter/index.d.ts +6 -15
  12. package/dist/emitter/index.js +18 -13
  13. package/dist/emitter/index.js.map +1 -1
  14. package/dist/emitter/index.test.js +0 -50
  15. package/dist/emitter/index.test.js.map +1 -1
  16. package/dist/emitter/source-map.d.ts +1 -3
  17. package/dist/emitter/source-map.js +2 -3
  18. package/dist/emitter/source-map.js.map +1 -1
  19. package/dist/emitter/source-map.test.js +1 -4
  20. package/dist/emitter/source-map.test.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/integration-test/go-to-definition.test.js +1 -0
  25. package/dist/integration-test/go-to-definition.test.js.map +1 -1
  26. package/dist/{loader → locator}/index.d.ts +6 -4
  27. package/dist/{loader → locator}/index.js +13 -5
  28. package/dist/locator/index.js.map +1 -0
  29. package/dist/{loader → locator}/index.test.d.ts +0 -0
  30. package/dist/{loader → locator}/index.test.js +25 -17
  31. package/dist/locator/index.test.js.map +1 -0
  32. package/dist/{loader → locator}/postcss.d.ts +0 -0
  33. package/dist/{loader → locator}/postcss.js +0 -0
  34. package/dist/locator/postcss.js.map +1 -0
  35. package/dist/{loader → locator}/postcss.test.d.ts +0 -0
  36. package/dist/{loader → locator}/postcss.test.js +0 -0
  37. package/dist/locator/postcss.test.js.map +1 -0
  38. package/dist/runner.d.ts +10 -1
  39. package/dist/runner.js +52 -18
  40. package/dist/runner.js.map +1 -1
  41. package/dist/runner.test.js +60 -3
  42. package/dist/runner.test.js.map +1 -1
  43. package/dist/test/util.d.ts +1 -1
  44. package/dist/test/util.js +1 -1
  45. package/dist/test/util.js.map +1 -1
  46. package/dist/transformer/index.d.ts +1 -1
  47. package/dist/transformer/index.test.js +8 -8
  48. package/dist/transformer/index.test.js.map +1 -1
  49. package/dist/transformer/less-transformer.test.js +8 -8
  50. package/dist/transformer/less-transformer.test.js.map +1 -1
  51. package/dist/transformer/postcss-transformer.test.js +13 -13
  52. package/dist/transformer/postcss-transformer.test.js.map +1 -1
  53. package/dist/transformer/scss-transformer.test.js +8 -8
  54. package/dist/transformer/scss-transformer.test.js.map +1 -1
  55. package/dist/util.d.ts +2 -0
  56. package/dist/util.js +19 -2
  57. package/dist/util.js.map +1 -1
  58. package/package.json +6 -7
  59. package/src/cli.test.ts +9 -4
  60. package/src/cli.ts +17 -11
  61. package/src/emitter/dts.test.ts +7 -12
  62. package/src/emitter/dts.ts +5 -14
  63. package/src/emitter/index.test.ts +0 -52
  64. package/src/emitter/index.ts +22 -29
  65. package/src/emitter/source-map.test.ts +1 -6
  66. package/src/emitter/source-map.ts +3 -4
  67. package/src/index.ts +1 -0
  68. package/src/integration-test/go-to-definition.test.ts +1 -0
  69. package/src/{loader → locator}/index.test.ts +26 -17
  70. package/src/{loader → locator}/index.ts +16 -8
  71. package/src/{loader → locator}/postcss.test.ts +0 -0
  72. package/src/{loader → locator}/postcss.ts +0 -0
  73. package/src/runner.test.ts +71 -3
  74. package/src/runner.ts +61 -19
  75. package/src/test/util.ts +1 -1
  76. package/src/transformer/index.test.ts +8 -8
  77. package/src/transformer/index.ts +1 -1
  78. package/src/transformer/less-transformer.test.ts +8 -8
  79. package/src/transformer/postcss-transformer.test.ts +13 -13
  80. package/src/transformer/scss-transformer.test.ts +8 -8
  81. package/src/util.ts +21 -2
  82. package/dist/loader/index.js.map +0 -1
  83. package/dist/loader/index.test.js.map +0 -1
  84. package/dist/loader/postcss.js.map +0 -1
  85. package/dist/loader/postcss.test.js.map +0 -1
@@ -1,16 +1,26 @@
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
10
  import type { Watcher } from './runner.js';
9
- import { run } from './runner.js';
10
11
  import { createFixtures, exists, getFixturePath, waitForAsyncTask } from './test/util.js';
11
12
 
12
13
  const require = createRequire(import.meta.url);
13
14
 
15
+ jest.unstable_mockModule('@file-cache/npm', () => ({
16
+ ...fileCacheNpm, // Inherit native functions
17
+ createNpmPackageKey: () => 'mocked-key',
18
+ }));
19
+
20
+ const { run } = await import('./runner.js');
21
+
22
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
23
+ const consoleLogSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
14
24
  // eslint-disable-next-line @typescript-eslint/no-empty-function
15
25
  const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
16
26
 
@@ -19,8 +29,17 @@ const defaultOptions = {
19
29
  declarationMap: true,
20
30
  silent: true,
21
31
  cwd: getFixturePath('/'),
32
+ cache: false,
22
33
  };
23
34
 
35
+ const dir = join(dirname(fileURLToPath(import.meta.url)));
36
+
37
+ beforeEach(async () => {
38
+ consoleLogSpy.mockClear();
39
+ consoleErrorSpy.mockClear();
40
+ await rm(resolve(dir, '../node_modules/.cache/happy-css-modules'), { recursive: true, force: true }); // clear cache
41
+ });
42
+
24
43
  // Exit the watcher even if the test fails
25
44
  let watcher: Watcher | undefined;
26
45
  afterEach(async () => {
@@ -41,6 +60,49 @@ test('generates .d.ts and .d.ts.map', async () => {
41
60
  expect(await readFile(getFixturePath('/test/2.css.d.ts.map'), 'utf8')).toMatchSnapshot();
42
61
  });
43
62
 
63
+ test('uses cache', async () => {
64
+ createFixtures({
65
+ '/test/1.css': '.a {}',
66
+ });
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
+
72
+ // Skip generation
73
+ await run({ ...defaultOptions, declarationMap: true, silent: false, cache: true });
74
+ expect(consoleLogSpy).toBeCalledTimes(1);
75
+ expect(consoleLogSpy).toHaveBeenNthCalledWith(1, expect.stringContaining('skipped'));
76
+ consoleLogSpy.mockClear();
77
+
78
+ // Generates if generated files are missing
79
+ await rm(getFixturePath('/test/1.css.d.ts'));
80
+ await run({ ...defaultOptions, declarationMap: true, silent: false, cache: true });
81
+ expect(consoleLogSpy).toBeCalledTimes(1);
82
+ expect(consoleLogSpy).toHaveBeenNthCalledWith(1, expect.stringContaining('generated'));
83
+ consoleLogSpy.mockClear();
84
+
85
+ // Generates if options are changed
86
+ await run({ ...defaultOptions, declarationMap: false, silent: false, cache: true });
87
+ expect(consoleLogSpy).toBeCalledTimes(1);
88
+ expect(consoleLogSpy).toHaveBeenNthCalledWith(1, expect.stringContaining('generated'));
89
+ consoleLogSpy.mockClear();
90
+ });
91
+
92
+ test('outputs logs', async () => {
93
+ createFixtures({
94
+ '/test/1.css': '.a {}',
95
+ });
96
+ await run({ ...defaultOptions, silent: false, cache: true });
97
+ expect(consoleLogSpy).toBeCalledTimes(1);
98
+ expect(consoleLogSpy).toHaveBeenNthCalledWith(1, `${chalk.green('test/1.css')} (generated)`);
99
+ consoleLogSpy.mockClear();
100
+
101
+ await run({ ...defaultOptions, silent: false, cache: true });
102
+ expect(consoleLogSpy).toBeCalledTimes(1);
103
+ expect(consoleLogSpy).toHaveBeenNthCalledWith(1, `${chalk.gray('test/1.css (skipped)')}`);
104
+ });
105
+
44
106
  test.todo('changes dts format with localsConvention options');
45
107
  test('does not emit declaration map if declarationMap is false', async () => {
46
108
  createFixtures({
@@ -71,6 +133,12 @@ test('watches for changes in files', async () => {
71
133
  await writeFile(getFixturePath('/test/1.css'), '.a-2 {}');
72
134
  await waitForAsyncTask(500); // Wait until the file is written
73
135
  expect(await readFile(getFixturePath('/test/1.css.d.ts'), 'utf8')).toMatch(/a-2/);
136
+
137
+ await writeFile(getFixturePath('/test/2.css'), '.b {}');
138
+ await writeFile(getFixturePath('/test/3.css'), '.c {}');
139
+ await waitForAsyncTask(500); // Wait until the file is written
140
+ expect(await readFile(getFixturePath('/test/2.css.d.ts'), 'utf8')).toMatch(/b/);
141
+ expect(await readFile(getFixturePath('/test/3.css.d.ts'), 'utf8')).toMatch(/c/);
74
142
  });
75
143
  test('returns an error if the file fails to process in non-watch mode', async () => {
76
144
  createFixtures({
package/src/runner.ts CHANGED
@@ -1,16 +1,18 @@
1
- import { resolve } from 'path';
1
+ import { resolve, relative } from 'path';
2
2
  import * as process from 'process';
3
3
  import * as util from 'util';
4
+ import { createCache } from '@file-cache/core';
5
+ import { createNpmPackageKey } from '@file-cache/npm';
6
+ import AwaitLock from 'await-lock';
4
7
  import chalk from 'chalk';
5
8
  import * as chokidar from 'chokidar';
6
- import AggregateError from 'es-aggregate-error';
7
9
  import _glob from 'glob';
8
- import { emitGeneratedFiles } from './emitter/index.js';
9
- import { Loader } from './loader/index.js';
10
+ import { isGeneratedFilesExist, emitGeneratedFiles } from './emitter/index.js';
11
+ import { Locator } from './locator/index.js';
10
12
  import type { Resolver } from './resolver/index.js';
11
13
  import { createDefaultResolver } from './resolver/index.js';
12
14
  import { createDefaultTransformer, type Transformer } from './transformer/index.js';
13
- import { isMatchByGlob } from './util.js';
15
+ import { getInstalledPeerDependencies, isMatchByGlob } from './util.js';
14
16
 
15
17
  const glob = util.promisify(_glob);
16
18
 
@@ -22,7 +24,6 @@ export type LocalsConvention = 'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashe
22
24
 
23
25
  export interface RunnerOptions {
24
26
  pattern: string;
25
- outDir?: string | undefined;
26
27
  watch?: boolean | undefined;
27
28
  localsConvention?: LocalsConvention | undefined;
28
29
  declarationMap?: boolean | undefined;
@@ -53,6 +54,16 @@ export interface RunnerOptions {
53
54
  * @example '/home/user/repository/src'
54
55
  */
55
56
  postcssConfig?: string | undefined;
57
+ /**
58
+ * Only generate .d.ts and .d.ts.map for changed files.
59
+ * @default true
60
+ */
61
+ cache?: boolean | undefined;
62
+ /**
63
+ * Strategy for the cache to use for detecting changed files.
64
+ * @default 'content'
65
+ */
66
+ cacheStrategy?: 'content' | 'metadata' | undefined;
56
67
  /**
57
68
  * Silent output. Do not show "files written" messages.
58
69
  * @default false
@@ -72,6 +83,8 @@ type OverrideProp<T, K extends keyof T, V extends T[K]> = Omit<T, K> & { [P in K
72
83
  export async function run(options: OverrideProp<RunnerOptions, 'watch', true>): Promise<Watcher>;
73
84
  export async function run(options: RunnerOptions): Promise<void>;
74
85
  export async function run(options: RunnerOptions): Promise<Watcher | void> {
86
+ const lock = new AwaitLock.default();
87
+
75
88
  const cwd = options.cwd ?? process.cwd();
76
89
  const silent = options.silent ?? false;
77
90
  const resolver =
@@ -83,33 +96,40 @@ export async function run(options: RunnerOptions): Promise<Watcher | void> {
83
96
  webpackResolveAlias: options.webpackResolveAlias,
84
97
  });
85
98
  const transformer = options.transformer ?? createDefaultTransformer({ cwd, postcssConfig: options.postcssConfig });
86
- const distOptions = options.outDir
87
- ? {
88
- rootDir: cwd, // TODO: support `--rootDir` option
89
- outDir: options.outDir,
90
- }
91
- : undefined;
92
99
 
93
- const loader = new Loader({ transformer, resolver });
100
+ const installedPeerDependencies = await getInstalledPeerDependencies();
101
+ const cache = await createCache({
102
+ mode: options.cacheStrategy ?? 'content',
103
+ keys: [
104
+ () => createNpmPackageKey(['happy-css-modules', ...installedPeerDependencies]),
105
+ () => {
106
+ return JSON.stringify(options);
107
+ },
108
+ ],
109
+ noCache: !(options.cache ?? true),
110
+ });
111
+
112
+ const locator = new Locator({ transformer, resolver });
94
113
  const isExternalFile = (filePath: string) => {
95
114
  return !isMatchByGlob(filePath, options.pattern, { cwd });
96
115
  };
97
116
 
98
117
  async function processFile(filePath: string) {
99
118
  try {
100
- const result = await loader.load(filePath);
119
+ // Locator#load cannot be called concurrently. Therefore, it takes a lock and waits.
120
+ await lock.acquireAsync();
121
+
122
+ const result = await locator.load(filePath);
101
123
  await emitGeneratedFiles({
102
124
  filePath,
103
125
  tokens: result.tokens,
104
- distOptions,
105
126
  emitDeclarationMap: options.declarationMap,
106
127
  dtsFormatOptions: {
107
128
  localsConvention: options.localsConvention,
108
129
  },
109
- silent,
110
- cwd,
111
130
  isExternalFile,
112
131
  });
132
+ if (!silent) console.log(`${chalk.green(relative(cwd, filePath))} (generated)`);
113
133
  } catch (error) {
114
134
  if (error instanceof Error) {
115
135
  // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
@@ -119,9 +139,17 @@ export async function run(options: RunnerOptions): Promise<Watcher | void> {
119
139
  console.error(chalk.red('[Error] ' + error));
120
140
  }
121
141
  throw error;
142
+ } finally {
143
+ lock.release();
122
144
  }
123
145
  }
124
146
 
147
+ async function isChangedFile(filePath: string) {
148
+ const result = await cache.getAndUpdateCache(filePath);
149
+ if (result.error) throw result.error;
150
+ return result.changed;
151
+ }
152
+
125
153
  if (options.watch) {
126
154
  if (!silent) console.log('Watch ' + options.pattern + '...');
127
155
  const watcher = chokidar.watch([options.pattern.replace(/\\/g, '/')], { cwd });
@@ -138,11 +166,25 @@ export async function run(options: RunnerOptions): Promise<Watcher | void> {
138
166
  // convert relative path to absolute path
139
167
  .map((file) => resolve(cwd, file));
140
168
 
141
- // TODO: Use `@file-cache/core` to process only files that have changed
142
169
  const errors: unknown[] = [];
143
170
  for (const filePath of filePaths) {
144
- await processFile(filePath).catch((e: unknown) => errors.push(e));
171
+ try {
172
+ const _isGeneratedFilesExist = await isGeneratedFilesExist(filePath, options.declarationMap);
173
+ const _isChangedFile = await isChangedFile(filePath);
174
+ // Generate .d.ts and .d.ts.map only when the file has been updated.
175
+ // However, if .d.ts or .d.ts.map has not yet been generated, always generate.
176
+ if (!_isGeneratedFilesExist || _isChangedFile) {
177
+ await processFile(filePath);
178
+ } else {
179
+ if (!silent) console.log(chalk.gray(`${relative(cwd, filePath)} (skipped)`));
180
+ }
181
+ } catch (e: unknown) {
182
+ errors.push(e);
183
+ }
145
184
  }
146
185
  if (errors.length > 0) throw new AggregateError(errors, 'Failed to process files');
147
186
  }
187
+
188
+ // Write cache state to file for persistence
189
+ await cache.reconcile();
148
190
  }
package/src/test/util.ts CHANGED
@@ -4,7 +4,7 @@ import { tmpdir } from 'os';
4
4
  import { dirname, join, resolve } from 'path';
5
5
  import postcss, { type Root, type Rule, type AtRule, type Declaration } from 'postcss';
6
6
  import { type ClassName } from 'postcss-selector-parser';
7
- import { type Token, collectNodes, type Location } from '../loader/index.js';
7
+ import { type Token, collectNodes, type Location } from '../locator/index.js';
8
8
  import { sleepSync } from '../util.js';
9
9
 
10
10
  export const FIXTURE_DIR_PATH = resolve(
@@ -1,14 +1,14 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { createRequire } from 'node:module';
3
3
  import dedent from 'dedent';
4
- import { Loader } from '../loader/index.js';
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
 
8
8
  const require = createRequire(import.meta.url);
9
9
 
10
10
  const cwd = getFixturePath('/');
11
- const loader = new Loader({ transformer: createDefaultTransformer({ cwd }) });
11
+ const locator = new Locator({ transformer: createDefaultTransformer({ cwd }) });
12
12
 
13
13
  test('processes .scss with scss transformer', async () => {
14
14
  createFixtures({
@@ -19,7 +19,7 @@ test('processes .scss with scss transformer', async () => {
19
19
  }
20
20
  `,
21
21
  });
22
- const result = await loader.load(getFixturePath('/test/1.scss'));
22
+ const result = await locator.load(getFixturePath('/test/1.scss'));
23
23
  expect(result.tokens.map((token) => token.name)).toStrictEqual(['a', 'a_1']);
24
24
  });
25
25
 
@@ -32,25 +32,25 @@ test('processes .less with less transformer', async () => {
32
32
  }
33
33
  `,
34
34
  });
35
- const result = await loader.load(getFixturePath('/test/1.less'));
35
+ const result = await locator.load(getFixturePath('/test/1.less'));
36
36
  expect(result.tokens.map((token) => token.name)).toStrictEqual(['a', 'a_1']);
37
37
  });
38
38
 
39
39
  test('processes .css with postcss transformer if postcssrc is found', async () => {
40
40
  // if postcssrc is not found
41
- const loader1 = new Loader({ transformer: createDefaultTransformer() });
41
+ const locator1 = new Locator({ transformer: createDefaultTransformer() });
42
42
  createFixtures({
43
43
  '/test/1.css': dedent`
44
44
  $prefix: foo;
45
45
  .$(prefix)_bar {}
46
46
  `,
47
47
  });
48
- const result1 = await loader1.load(getFixturePath('/test/1.css'));
48
+ const result1 = await locator1.load(getFixturePath('/test/1.css'));
49
49
  expect(result1.tokens.map((token) => token.name)).toStrictEqual(['$(prefix)']);
50
50
 
51
51
  // if postcssrc is found
52
52
  const uuid = randomUUID();
53
- const loader2 = new Loader({
53
+ const locator2 = new Locator({
54
54
  transformer: createDefaultTransformer({ cwd, postcssConfig: `${uuid}/postcss.config.js` }),
55
55
  });
56
56
  createFixtures({
@@ -66,6 +66,6 @@ test('processes .css with postcss transformer if postcssrc is found', async () =
66
66
  .$(prefix)_bar {}
67
67
  `,
68
68
  });
69
- const result2 = await loader2.load(getFixturePath('/test/1.css'));
69
+ const result2 = await locator2.load(getFixturePath('/test/1.css'));
70
70
  expect(result2.tokens.map((token) => token.name)).toStrictEqual(['foo_bar']);
71
71
  });
@@ -1,4 +1,4 @@
1
- import type { StrictlyResolver } from '../loader/index.js';
1
+ import type { StrictlyResolver } from '../locator/index.js';
2
2
  import { createLessTransformer } from './less-transformer.js';
3
3
  import type { PostcssTransformerOptions } from './postcss-transformer.js';
4
4
  import { createPostcssTransformer } from './postcss-transformer.js';
@@ -1,11 +1,11 @@
1
1
  import { jest } from '@jest/globals';
2
2
  import dedent from 'dedent';
3
- import { Loader } from '../loader/index.js';
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
6
 
7
- const loader = new Loader({ transformer: createLessTransformer() });
8
- const loadSpy = jest.spyOn(loader, 'load');
7
+ const locator = new Locator({ transformer: createLessTransformer() });
8
+ const loadSpy = jest.spyOn(locator, 'load');
9
9
 
10
10
  afterEach(() => {
11
11
  loadSpy.mockClear();
@@ -35,7 +35,7 @@ test('handles less features', async () => {
35
35
  .c { dummy: ''; }
36
36
  `,
37
37
  });
38
- const result = await loader.load(getFixturePath('/test/1.less'));
38
+ const result = await locator.load(getFixturePath('/test/1.less'));
39
39
 
40
40
  // FIXME: The end position of 'a_2_2' is incorrect.
41
41
  expect(result).toMatchInlineSnapshot(`
@@ -97,10 +97,10 @@ test('tracks dependencies that have been pre-bundled by less compiler', async ()
97
97
  '/test/4.less': dedent`
98
98
  `,
99
99
  });
100
- const result = await loader.load(getFixturePath('/test/1.less'));
100
+ const result = await locator.load(getFixturePath('/test/1.less'));
101
101
 
102
102
  // The files imported using @import are pre-bundled by the compiler.
103
- // Therefore, `Loader#load` is not called to process other files.
103
+ // Therefore, `Locator#load` is not called to process other files.
104
104
  expect(loadSpy).toBeCalledTimes(1);
105
105
  expect(loadSpy).toHaveBeenNthCalledWith(1, getFixturePath('/test/1.less'));
106
106
 
@@ -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.less': `.a {}`,
123
123
  });
124
- const result = await loader.load(getFixturePath('/test/1.less'));
124
+ const result = await locator.load(getFixturePath('/test/1.less'));
125
125
  // eslint-disable-next-line @typescript-eslint/require-array-sort-compare
126
126
  expect(result.dependencies.sort()).toStrictEqual(
127
127
  // eslint-disable-next-line @typescript-eslint/require-array-sort-compare
@@ -137,6 +137,6 @@ test('ignores http(s) protocol file', async () => {
137
137
  @import 'https://example.com/path/less.less';
138
138
  `,
139
139
  });
140
- const result = await loader.load(getFixturePath('/test/1.less'));
140
+ const result = await locator.load(getFixturePath('/test/1.less'));
141
141
  expect(result.dependencies).toStrictEqual([]);
142
142
  });
@@ -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 { Loader } from '../loader/index.js';
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
 
@@ -14,7 +14,7 @@ const require = createRequire(import.meta.url);
14
14
 
15
15
  test('handles postcss features', async () => {
16
16
  const uuid = randomUUID();
17
- const loader = new Loader({
17
+ const locator = new Locator({
18
18
  transformer: createPostcssTransformer({
19
19
  cwd,
20
20
  postcssConfig: `${uuid}/postcss.config.js`,
@@ -33,7 +33,7 @@ test('handles postcss features', async () => {
33
33
  .$(prefix)_bar {}
34
34
  `,
35
35
  });
36
- const result = await loader.load(getFixturePath('/test/1.css'));
36
+ const result = await locator.load(getFixturePath('/test/1.css'));
37
37
 
38
38
  expect(result).toMatchInlineSnapshot(`
39
39
  {
@@ -52,13 +52,13 @@ test('handles postcss features', async () => {
52
52
 
53
53
  test('tracks dependencies that have been pre-bundled by postcss compiler', async () => {
54
54
  const uuid = randomUUID();
55
- const loader = new Loader({
55
+ const locator = new Locator({
56
56
  transformer: createPostcssTransformer({
57
57
  cwd,
58
58
  postcssConfig: `${uuid}/postcss.config.js`,
59
59
  }),
60
60
  });
61
- const loadSpy = jest.spyOn(loader, 'load');
61
+ const loadSpy = jest.spyOn(locator, 'load');
62
62
  createFixtures({
63
63
  [`/${uuid}/postcss.config.js`]: dedent`
64
64
  module.exports = {
@@ -75,10 +75,10 @@ test('tracks dependencies that have been pre-bundled by postcss compiler', async
75
75
  '/test/3.css': `@import './4.css'`,
76
76
  '/test/4.css': ``,
77
77
  });
78
- const result = await loader.load(getFixturePath('/test/1.css'));
78
+ const result = await locator.load(getFixturePath('/test/1.css'));
79
79
 
80
80
  // The files imported using @import are pre-bundled by the compiler.
81
- // Therefore, `Loader#load` is not called to process other files.
81
+ // Therefore, `Locator#load` is not called to process other files.
82
82
  expect(loadSpy).toBeCalledTimes(1);
83
83
  expect(loadSpy).toHaveBeenNthCalledWith(1, getFixturePath('/test/1.css'));
84
84
 
@@ -88,7 +88,7 @@ test('tracks dependencies that have been pre-bundled by postcss compiler', async
88
88
 
89
89
  test('resolves specifier using resolver', async () => {
90
90
  const uuid = randomUUID();
91
- const loader = new Loader({
91
+ const locator = new Locator({
92
92
  transformer: createPostcssTransformer({
93
93
  cwd,
94
94
  postcssConfig: `${uuid}/postcss.config.js`,
@@ -109,13 +109,13 @@ test('resolves specifier using resolver', async () => {
109
109
  `,
110
110
  '/node_modules/package/index.css': `.a {}`,
111
111
  });
112
- const result = await loader.load(getFixturePath('/test/1.css'));
112
+ const result = await locator.load(getFixturePath('/test/1.css'));
113
113
  expect(result.dependencies).toStrictEqual(['/node_modules/package/index.css'].map(getFixturePath));
114
114
  });
115
115
 
116
116
  test('ignores http(s) protocol file', async () => {
117
117
  const uuid = randomUUID();
118
- const loader = new Loader({
118
+ const locator = new Locator({
119
119
  transformer: createPostcssTransformer({
120
120
  cwd,
121
121
  postcssConfig: `${uuid}/postcss.config.js`,
@@ -136,7 +136,7 @@ test('ignores http(s) protocol file', async () => {
136
136
  @import 'https://example.com/path/https.css';
137
137
  `,
138
138
  });
139
- const result = await loader.load(getFixturePath('/test/1.css'));
139
+ const result = await locator.load(getFixturePath('/test/1.css'));
140
140
  expect(result.dependencies).toStrictEqual([]);
141
141
  });
142
142
 
@@ -165,7 +165,7 @@ test('returns false if postcssrc is not found', async () => {
165
165
  test('searches config from cwd if postcssConfig option is missing', async () => {
166
166
  const uuid = randomUUID();
167
167
  const cwd = `/${uuid}`;
168
- const loader = new Loader({
168
+ const locator = new Locator({
169
169
  transformer: createPostcssTransformer({
170
170
  cwd: getFixturePath(cwd),
171
171
  }),
@@ -183,6 +183,6 @@ test('searches config from cwd if postcssConfig option is missing', async () =>
183
183
  .$(prefix)_bar {}
184
184
  `,
185
185
  });
186
- const result = await loader.load(getFixturePath('/test/1.css'));
186
+ const result = await locator.load(getFixturePath('/test/1.css'));
187
187
  expect(result.tokens.map((token) => token.name)).toStrictEqual(['foo_bar']);
188
188
  });
@@ -1,11 +1,11 @@
1
1
  import { jest } from '@jest/globals';
2
2
  import dedent from 'dedent';
3
- import { Loader } from '../loader/index.js';
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
6
 
7
- const loader = new Loader({ transformer: createScssTransformer() });
8
- const loadSpy = jest.spyOn(loader, 'load');
7
+ const locator = new Locator({ transformer: createScssTransformer() });
8
+ const loadSpy = jest.spyOn(locator, 'load');
9
9
 
10
10
  afterEach(() => {
11
11
  loadSpy.mockClear();
@@ -37,7 +37,7 @@ test('handles sass features', async () => {
37
37
  .d { dummy: ''; }
38
38
  `,
39
39
  });
40
- const result = await loader.load(getFixturePath('/test/1.scss'));
40
+ const result = await locator.load(getFixturePath('/test/1.scss'));
41
41
 
42
42
  // NOTE: There should be only one originalLocations for 'a_2', but there are multiple.
43
43
  // This is probably due to an incorrect sourcemap output by the sass compiler.
@@ -110,10 +110,10 @@ test('tracks dependencies that have been pre-bundled by sass compiler', async ()
110
110
  '/test/4.scss': dedent`
111
111
  `,
112
112
  });
113
- const result = await loader.load(getFixturePath('/test/1.scss'));
113
+ const result = await locator.load(getFixturePath('/test/1.scss'));
114
114
 
115
115
  // The files imported using @import are pre-bundled by the compiler.
116
- // Therefore, `Loader#load` is not called to process other files.
116
+ // Therefore, `Locator#load` is not called to process other files.
117
117
  expect(loadSpy).toBeCalledTimes(1);
118
118
  expect(loadSpy).toHaveBeenNthCalledWith(1, getFixturePath('/test/1.scss'));
119
119
 
@@ -130,7 +130,7 @@ test('resolves specifier using resolver', async () => {
130
130
  '/node_modules/package-1/index.css': `.a {}`,
131
131
  '/node_modules/package-2/index.scss': `.a {}`,
132
132
  });
133
- const result = await loader.load(getFixturePath('/test/1.scss'));
133
+ const result = await locator.load(getFixturePath('/test/1.scss'));
134
134
  expect(result.dependencies).toStrictEqual(
135
135
  ['/node_modules/package-1/index.css', '/node_modules/package-2/index.scss'].map(getFixturePath),
136
136
  );
@@ -144,6 +144,6 @@ test('ignores http(s) protocol file', async () => {
144
144
  @import 'https://example.com/path/scss.scss';
145
145
  `,
146
146
  });
147
- const result = await loader.load(getFixturePath('/test/1.scss'));
147
+ const result = await locator.load(getFixturePath('/test/1.scss'));
148
148
  expect(result.dependencies).toStrictEqual([]);
149
149
  });
package/src/util.ts CHANGED
@@ -1,7 +1,10 @@
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';
7
+
5
8
  /**
6
9
  * The SystemError type of Node.js.
7
10
  * @see https://nodejs.org/api/errors.html#class-systemerror
@@ -65,3 +68,19 @@ export async function exists(path: string): Promise<boolean> {
65
68
  export function isMatchByGlob(filePath: string, pattern: string, options: { cwd: string }): boolean {
66
69
  return minimatch(filePath, join(options.cwd, pattern));
67
70
  }
71
+
72
+ export function getPackageJson() {
73
+ return JSON.parse(readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), '../package.json'), 'utf-8'));
74
+ }
75
+
76
+ export async function getInstalledPeerDependencies(): Promise<string[]> {
77
+ const pkgJson = getPackageJson();
78
+ const result = [];
79
+ for (const deps of Object.keys(pkgJson.peerDependencies)) {
80
+ const isInstalled = await importMetaResolve(deps, import.meta.url)
81
+ .then(() => true)
82
+ .catch(() => false);
83
+ if (isInstalled) result.push(deps);
84
+ }
85
+ return result;
86
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/loader/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AAC/C,6DAA6D;AAC7D,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,GAAG,EAAE;IACL,QAAQ,EAAE,WAAW;CACtB,CAAC,CAAC,CAAC;AAEJ,oGAAoG;AACpG,gEAAgE;AAChE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9C,2FAA2F;AAE3F,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAE5B,SAAS,CAAC,GAAG,EAAE;IACb,WAAW,CAAC,SAAS,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;IACvB,cAAc,CAAC;QACb,aAAa,EAAE,MAAM,CAAA;;;KAGpB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;GAkBpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;IAC9D,cAAc,CAAC;QACb,aAAa,EAAE,MAAM,CAAA;;;eAGV,cAAc,CAAC,aAAa,CAAC;;KAEvC;QACD,aAAa,EAAE,MAAM,CAAA;;KAEpB;QACD,aAAa,EAAE,MAAM,CAAA;;KAEpB;QACD,aAAa,EAAE,MAAM,CAAA;;KAEpB;QACD,aAAa,EAAE,MAAM,CAAA;;KAEpB;QACD,uBAAuB,EAAE,MAAM,CAAA;;KAE9B;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;IAC/D,cAAc,CAAC;QACb,aAAa,EAAE,MAAM,CAAA;;;;0BAIC,cAAc,CAAC,aAAa,CAAC;;KAElD;QACD,aAAa,EAAE,MAAM,CAAA;;KAEpB;QACD,aAAa,EAAE,MAAM,CAAA;;;KAGpB;QACD,aAAa,EAAE,MAAM,CAAA;;KAEpB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;IACnC,cAAc,CAAC;QACb,aAAa,EAAE,MAAM,CAAA;;;;;;;;;;;;;KAapB;QACD,aAAa,EAAE,MAAM,CAAA;;;KAGpB;QACD,aAAa,EAAE,MAAM,CAAA;;KAEpB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,OAAO,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;IAC/F,cAAc,CAAC;QACb,aAAa,EAAE,MAAM,CAAA;;;;;;;;KAQpB;QACD,aAAa,EAAE,MAAM,CAAA;;KAEpB;QACD,aAAa,EAAE,MAAM,CAAA;;;KAGpB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,CAAC,WAAW,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,CAAC,WAAW,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACvE,WAAW,CAAC,SAAS,EAAE,CAAC;IAExB,uBAAuB;IACvB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,+CAA+C;IAC7D,MAAM,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvG,qFAAqF;IACrF,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAE7C,+GAA+G;IAC/G,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,CAAC,WAAW,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAEvE,4IAA4I;IAC5I,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IAChE,6FAA6F;IAC7F,6CAA6C;IAC7C,gGAAgG;IAChG,6DAA6D;IAC7D,cAAc,CAAC;QACb,aAAa,EAAE,MAAM,CAAA;;;;KAIpB;QACD,aAAa,EAAE,MAAM,CAAA;;KAEpB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;IACnE,6EAA6E;IAC7E,6CAA6C;IAC7C,cAAc,CAAC;QACb,aAAa,EAAE,MAAM,CAAA;;;;KAIpB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3D,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;YAC9D,MAAM,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,wDAAwD,CAAC,CAAC;AACpF,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,WAAW,GAAG,wBAAwB,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3C,cAAc,CAAC;YACb,cAAc,EAAE,MAAM,CAAA;;;;;;;OAOrB;SACF,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;KAmBpC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,cAAc,CAAC;YACb,CAAC,IAAI,IAAI,oBAAoB,CAAC,EAAE,MAAM,CAAA;;;;OAIrC;YACD,aAAa,EAAE,MAAM,CAAA;;;;;OAKpB;SACF,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,wBAAwB,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,IAAI,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC9G,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;KAoBpC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;IAC/C,cAAc,CAAC;QACb,aAAa,EAAE,MAAM,CAAA;;;KAGpB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"postcss.js","sourceRoot":"","sources":["../../src/loader/postcss.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"postcss.test.js","sourceRoot":"","sources":["../../src/loader/postcss.test.ts"],"names":[],"mappings":"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"}