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.
- package/README.md +112 -10
- 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 +52 -18
- package/dist/runner.js.map +1 -1
- package/dist/runner.test.js +60 -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 +6 -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 +71 -3
- package/src/runner.ts +61 -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/src/runner.test.ts
CHANGED
|
@@ -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 {
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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 '../
|
|
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 {
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
69
|
+
const result2 = await locator2.load(getFixturePath('/test/1.css'));
|
|
70
70
|
expect(result2.tokens.map((token) => token.name)).toStrictEqual(['foo_bar']);
|
|
71
71
|
});
|
package/src/transformer/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StrictlyResolver } from '../
|
|
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 {
|
|
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
|
|
8
|
-
const loadSpy = jest.spyOn(
|
|
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
|
|
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
|
|
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, `
|
|
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
|
|
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
|
|
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 {
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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, `
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 {
|
|
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
|
|
8
|
-
const loadSpy = jest.spyOn(
|
|
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
|
|
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
|
|
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, `
|
|
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
|
|
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
|
|
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
|
+
}
|
package/dist/loader/index.js.map
DELETED
|
@@ -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":"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"}
|
|
@@ -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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"}
|