happy-css-modules 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/emitter/dts.test.ts +3 -3
- package/src/emitter/dts.ts +59 -37
- package/src/emitter/index.test.ts +3 -3
- package/src/integration-test/go-to-definition.test.ts +0 -35
- package/src/locator/index.test.ts +152 -158
- package/src/locator/index.ts +44 -37
- package/src/locator/postcss.test.ts +118 -76
- package/src/locator/postcss.ts +116 -73
- package/src/test-util/util.ts +24 -23
- package/src/transformer/less-transformer.test.ts +26 -24
- package/src/transformer/postcss-transformer.test.ts +5 -3
- package/src/transformer/scss-transformer.test.ts +39 -28
- package/src/util.ts +1 -1
- package/dist/cli.d.ts +0 -6
- package/dist/cli.js +0 -121
- package/dist/cli.js.map +0 -1
- package/dist/cli.test.d.ts +0 -1
- package/dist/cli.test.js +0 -66
- package/dist/cli.test.js.map +0 -1
- package/dist/config.d.ts +0 -1
- package/dist/config.js +0 -2
- package/dist/config.js.map +0 -1
- package/dist/emitter/dts.d.ts +0 -14
- package/dist/emitter/dts.js +0 -111
- package/dist/emitter/dts.js.map +0 -1
- package/dist/emitter/dts.test.d.ts +0 -1
- package/dist/emitter/dts.test.js +0 -205
- package/dist/emitter/dts.test.js.map +0 -1
- package/dist/emitter/file-system.d.ts +0 -6
- package/dist/emitter/file-system.js +0 -26
- package/dist/emitter/file-system.js.map +0 -1
- package/dist/emitter/file-system.test.d.ts +0 -1
- package/dist/emitter/file-system.test.js +0 -34
- package/dist/emitter/file-system.test.js.map +0 -1
- package/dist/emitter/index.d.ts +0 -34
- package/dist/emitter/index.js +0 -49
- package/dist/emitter/index.js.map +0 -1
- package/dist/emitter/index.test.d.ts +0 -1
- package/dist/emitter/index.test.js +0 -68
- package/dist/emitter/index.test.js.map +0 -1
- package/dist/emitter/source-map.d.ts +0 -8
- package/dist/emitter/source-map.js +0 -16
- package/dist/emitter/source-map.js.map +0 -1
- package/dist/emitter/source-map.test.d.ts +0 -1
- package/dist/emitter/source-map.test.js +0 -13
- package/dist/emitter/source-map.test.js.map +0 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/integration-test/go-to-definition.test.d.ts +0 -1
- package/dist/integration-test/go-to-definition.test.js +0 -369
- package/dist/integration-test/go-to-definition.test.js.map +0 -1
- package/dist/library/source-map/index.d.ts +0 -8
- package/dist/library/source-map/index.js +0 -5
- package/dist/library/source-map/index.js.map +0 -1
- package/dist/locator/index.d.ts +0 -44
- package/dist/locator/index.js +0 -162
- package/dist/locator/index.js.map +0 -1
- package/dist/locator/index.test.d.ts +0 -1
- package/dist/locator/index.test.js +0 -395
- package/dist/locator/index.test.js.map +0 -1
- package/dist/locator/postcss.d.ts +0 -64
- package/dist/locator/postcss.js +0 -208
- package/dist/locator/postcss.js.map +0 -1
- package/dist/locator/postcss.test.d.ts +0 -1
- package/dist/locator/postcss.test.js +0 -242
- package/dist/locator/postcss.test.js.map +0 -1
- package/dist/logger.d.ts +0 -9
- package/dist/logger.js +0 -28
- package/dist/logger.js.map +0 -1
- package/dist/regression-test/issue-168.test.d.ts +0 -1
- package/dist/regression-test/issue-168.test.js +0 -30
- package/dist/regression-test/issue-168.test.js.map +0 -1
- package/dist/resolver/index.d.ts +0 -22
- package/dist/resolver/index.js +0 -44
- package/dist/resolver/index.js.map +0 -1
- package/dist/resolver/index.test.d.ts +0 -1
- package/dist/resolver/index.test.js +0 -16
- package/dist/resolver/index.test.js.map +0 -1
- package/dist/resolver/node-resolver.d.ts +0 -2
- package/dist/resolver/node-resolver.js +0 -6
- package/dist/resolver/node-resolver.js.map +0 -1
- package/dist/resolver/node-resolver.test.d.ts +0 -1
- package/dist/resolver/node-resolver.test.js +0 -25
- package/dist/resolver/node-resolver.test.js.map +0 -1
- package/dist/resolver/relative-resolver.d.ts +0 -2
- package/dist/resolver/relative-resolver.js +0 -5
- package/dist/resolver/relative-resolver.js.map +0 -1
- package/dist/resolver/relative-resolver.test.d.ts +0 -1
- package/dist/resolver/relative-resolver.test.js +0 -12
- package/dist/resolver/relative-resolver.test.js.map +0 -1
- package/dist/resolver/webpack-resolver.d.ts +0 -24
- package/dist/resolver/webpack-resolver.js +0 -91
- package/dist/resolver/webpack-resolver.js.map +0 -1
- package/dist/resolver/webpack-resolver.test.d.ts +0 -1
- package/dist/resolver/webpack-resolver.test.js +0 -89
- package/dist/resolver/webpack-resolver.test.js.map +0 -1
- package/dist/runner.d.ts +0 -76
- package/dist/runner.js +0 -120
- package/dist/runner.js.map +0 -1
- package/dist/runner.test.d.ts +0 -1
- package/dist/runner.test.js +0 -287
- package/dist/runner.test.js.map +0 -1
- package/dist/test-util/jest/resolver.cjs +0 -31
- package/dist/test-util/jest/resolver.cjs.map +0 -1
- package/dist/test-util/jest/resolver.d.cts +0 -16
- package/dist/test-util/tsserver.d.ts +0 -31
- package/dist/test-util/tsserver.js +0 -112
- package/dist/test-util/tsserver.js.map +0 -1
- package/dist/test-util/util.d.ts +0 -29
- package/dist/test-util/util.js +0 -84
- package/dist/test-util/util.js.map +0 -1
- package/dist/transformer/index.d.ts +0 -30
- package/dist/transformer/index.js +0 -25
- package/dist/transformer/index.js.map +0 -1
- package/dist/transformer/index.test.d.ts +0 -1
- package/dist/transformer/index.test.js +0 -66
- package/dist/transformer/index.test.js.map +0 -1
- package/dist/transformer/less-transformer.d.ts +0 -2
- package/dist/transformer/less-transformer.js +0 -45
- package/dist/transformer/less-transformer.js.map +0 -1
- package/dist/transformer/less-transformer.test.d.ts +0 -1
- package/dist/transformer/less-transformer.test.js +0 -132
- package/dist/transformer/less-transformer.test.js.map +0 -1
- package/dist/transformer/postcss-transformer.d.ts +0 -12
- package/dist/transformer/postcss-transformer.js +0 -32
- package/dist/transformer/postcss-transformer.js.map +0 -1
- package/dist/transformer/postcss-transformer.test.d.ts +0 -1
- package/dist/transformer/postcss-transformer.test.js +0 -176
- package/dist/transformer/postcss-transformer.test.js.map +0 -1
- package/dist/transformer/scss-transformer.d.ts +0 -2
- package/dist/transformer/scss-transformer.js +0 -40
- package/dist/transformer/scss-transformer.js.map +0 -1
- package/dist/transformer/scss-transformer.test.d.ts +0 -1
- package/dist/transformer/scss-transformer.test.js +0 -138
- package/dist/transformer/scss-transformer.test.js.map +0 -1
- package/dist/util.d.ts +0 -21
- package/dist/util.js +0 -72
- package/dist/util.js.map +0 -1
- package/dist/util.test.d.ts +0 -1
- package/dist/util.test.js +0 -74
- package/dist/util.test.js.map +0 -1
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { basename, dirname, join, resolve } from 'path';
|
|
2
|
-
import enhancedResolve from 'enhanced-resolve';
|
|
3
|
-
import { exists } from '../util.js';
|
|
4
|
-
// TODO: Support `resolve.alias` for Node.js API
|
|
5
|
-
export const createWebpackResolver = (webpackResolverOptions) => {
|
|
6
|
-
const cwd = webpackResolverOptions?.cwd ?? process.cwd();
|
|
7
|
-
const sassLoadPaths = webpackResolverOptions?.sassLoadPaths?.map((path) => resolve(cwd, path));
|
|
8
|
-
const lessIncludePaths = webpackResolverOptions?.lessIncludePaths?.map((path) => resolve(cwd, path));
|
|
9
|
-
const webpackResolveAlias = webpackResolverOptions?.webpackResolveAlias
|
|
10
|
-
? Object.fromEntries(Object.entries(webpackResolverOptions?.webpackResolveAlias).map(([key, value]) => [key, resolve(cwd, value)]))
|
|
11
|
-
: undefined;
|
|
12
|
-
/**
|
|
13
|
-
* A resolver compatible with css-loader.
|
|
14
|
-
*
|
|
15
|
-
* @see https://github.com/webpack-contrib/css-loader/blob/897e7dd250ccdb0d31e6c66d4cd0d009f2022a85/src/plugins/postcss-import-parser.js#L228-L235
|
|
16
|
-
*/
|
|
17
|
-
const cssLoaderResolver = enhancedResolve.create.sync({
|
|
18
|
-
conditionNames: ['style'],
|
|
19
|
-
// We are not sure how "..." affects behavior...
|
|
20
|
-
mainFields: ['css', 'style', 'main', '...'],
|
|
21
|
-
mainFiles: ['index', '...'],
|
|
22
|
-
extensions: ['.css', '...'],
|
|
23
|
-
preferRelative: true,
|
|
24
|
-
alias: webpackResolveAlias ?? {},
|
|
25
|
-
});
|
|
26
|
-
/**
|
|
27
|
-
* A resolver compatible with sass-loader.
|
|
28
|
-
*
|
|
29
|
-
* @see https://github.com/webpack-contrib/sass-loader/blob/49a578a218574ddc92a597c7e365b6c21960717e/src/utils.js#L531-L539
|
|
30
|
-
*/
|
|
31
|
-
const sassLoaderResolver = enhancedResolve.create.sync({
|
|
32
|
-
conditionNames: ['sass', 'style'],
|
|
33
|
-
mainFields: ['sass', 'style', 'main', '...'],
|
|
34
|
-
mainFiles: ['_index', 'index', '...'],
|
|
35
|
-
extensions: ['.sass', '.scss', '.css'],
|
|
36
|
-
restrictions: [/\.((sa|sc|c)ss)$/iu],
|
|
37
|
-
preferRelative: true,
|
|
38
|
-
alias: webpackResolveAlias ?? {},
|
|
39
|
-
modules: ['node_modules', ...(sassLoadPaths ?? [])],
|
|
40
|
-
});
|
|
41
|
-
/**
|
|
42
|
-
* A resolver compatible with less-loader.
|
|
43
|
-
*
|
|
44
|
-
* @see https://github.com/webpack-contrib/less-loader/blob/d74f740c100c4006b00dfb3e02c6d5aaf8713519/src/utils.js#L35-L42
|
|
45
|
-
*/
|
|
46
|
-
const lessLoaderResolver = enhancedResolve.create.sync({
|
|
47
|
-
conditionNames: ['less', 'style'],
|
|
48
|
-
mainFields: ['less', 'style', 'main', '...'],
|
|
49
|
-
mainFiles: ['index', '...'],
|
|
50
|
-
extensions: ['.less', '.css'],
|
|
51
|
-
preferRelative: true,
|
|
52
|
-
alias: webpackResolveAlias ?? {},
|
|
53
|
-
modules: ['node_modules', ...(lessIncludePaths ?? [])],
|
|
54
|
-
});
|
|
55
|
-
// NOTE: In theory, `sassLoaderResolver` should only be used when the resolver is called from `sassTransformer`.
|
|
56
|
-
// However, we do not implement such behavior because it is cumbersome. If someone wants it, we will implement it.
|
|
57
|
-
const resolvers = [cssLoaderResolver, sassLoaderResolver, lessLoaderResolver];
|
|
58
|
-
return async (specifier, options) => {
|
|
59
|
-
// `~` prefix is optional.
|
|
60
|
-
// ref: https://github.com/webpack-contrib/css-loader/blob/5e6cf91fd3f0c8b5fb4b91197b98dc56abdef4bf/src/utils.js#L92-L95
|
|
61
|
-
// ref: https://github.com/webpack-contrib/sass-loader/blob/49a578a218574ddc92a597c7e365b6c21960717e/src/utils.js#L368-L370
|
|
62
|
-
// ref: https://github.com/webpack-contrib/less-loader/blob/d74f740c100c4006b00dfb3e02c6d5aaf8713519/src/utils.js#L72-L75
|
|
63
|
-
// eslint-disable-next-line no-param-reassign
|
|
64
|
-
if (specifier.startsWith('~'))
|
|
65
|
-
specifier = specifier.slice(1);
|
|
66
|
-
for (const resolver of resolvers) {
|
|
67
|
-
const specifierVariants = resolver === sassLoaderResolver
|
|
68
|
-
? // Support partial import for sass
|
|
69
|
-
// https://sass-lang.com/documentation/at-rules/import#partials
|
|
70
|
-
// https://github.com/webpack-contrib/sass-loader/blob/0e9494074f69a6b6d47efea6c083a02a31a5ae84/test/sass/import-with-underscore.sass
|
|
71
|
-
[join(dirname(specifier), `_${basename(specifier)}`), specifier]
|
|
72
|
-
: [specifier];
|
|
73
|
-
for (const specifierVariant of specifierVariants) {
|
|
74
|
-
try {
|
|
75
|
-
const resolved = resolver(dirname(options.request), specifierVariant);
|
|
76
|
-
if (resolved !== false) {
|
|
77
|
-
// eslint-disable-next-line no-await-in-loop
|
|
78
|
-
const isExists = await exists(resolved);
|
|
79
|
-
if (isExists)
|
|
80
|
-
return resolved;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
catch (e) {
|
|
84
|
-
// noop
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return false;
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
//# sourceMappingURL=webpack-resolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-resolver.js","sourceRoot":"","sources":["../../src/resolver/webpack-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { createFixtures, getFixturePath } from '../test-util/util.js';
|
|
2
|
-
import { createWebpackResolver } from './webpack-resolver.js';
|
|
3
|
-
test('resolves specifier with css-loader mechanism', async () => {
|
|
4
|
-
const webpackResolver = createWebpackResolver({
|
|
5
|
-
cwd: getFixturePath('/'),
|
|
6
|
-
webpackResolveAlias: {
|
|
7
|
-
'@relative': 'test/alias-relative',
|
|
8
|
-
'@absolute': getFixturePath('/test/alias-absolute'),
|
|
9
|
-
},
|
|
10
|
-
});
|
|
11
|
-
const request = getFixturePath('/test/1.css');
|
|
12
|
-
createFixtures({
|
|
13
|
-
'/node_modules/package-1/index.css': `.a {}`,
|
|
14
|
-
'/node_modules/package-2/index.css': `.a {}`,
|
|
15
|
-
'/node_modules/package-3/index.css': `.a {}`,
|
|
16
|
-
'/node_modules/package-4/package.json': `{ "style": "./style.css" }`,
|
|
17
|
-
'/node_modules/package-4/style.css': `.a {}`,
|
|
18
|
-
'/node_modules/@scoped/package-5/index.css': `.a {}`,
|
|
19
|
-
'/node_modules/package-6/index.css': `.a {}`,
|
|
20
|
-
'/test/alias-relative/alias.css': `.a {}`,
|
|
21
|
-
'/test/alias-absolute/alias.css': `.a {}`,
|
|
22
|
-
});
|
|
23
|
-
expect(await webpackResolver('~package-1/index.css', { request })).toBe(getFixturePath('/node_modules/package-1/index.css'));
|
|
24
|
-
expect(await webpackResolver('~package-2', { request })).toBe(getFixturePath('/node_modules/package-2/index.css'));
|
|
25
|
-
expect(await webpackResolver('~package-3/', { request })).toBe(getFixturePath('/node_modules/package-3/index.css'));
|
|
26
|
-
expect(await webpackResolver('~package-4', { request })).toBe(getFixturePath('/node_modules/package-4/style.css'));
|
|
27
|
-
expect(await webpackResolver('~@scoped/package-5/index.css', { request })).toBe(getFixturePath('/node_modules/@scoped/package-5/index.css'));
|
|
28
|
-
expect(await webpackResolver('package-6/index.css', { request })).toBe(getFixturePath('/node_modules/package-6/index.css'));
|
|
29
|
-
expect(await webpackResolver('@relative/alias.css', { request })).toBe(getFixturePath('/test/alias-relative/alias.css'));
|
|
30
|
-
expect(await webpackResolver('@absolute/alias.css', { request })).toBe(getFixturePath('/test/alias-absolute/alias.css'));
|
|
31
|
-
});
|
|
32
|
-
test('resolves specifier with sass-loader mechanism', async () => {
|
|
33
|
-
const webpackResolver = createWebpackResolver({
|
|
34
|
-
cwd: getFixturePath('/'),
|
|
35
|
-
sassLoadPaths: ['test/load-paths-relative', getFixturePath('/test/load-paths-absolute')],
|
|
36
|
-
webpackResolveAlias: {
|
|
37
|
-
'@relative': 'test/alias-relative',
|
|
38
|
-
'@absolute': getFixturePath('/test/alias-absolute'),
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
const request = getFixturePath('/test/1.scss');
|
|
42
|
-
createFixtures({
|
|
43
|
-
'/node_modules/package-1/index.scss': `.a {}`,
|
|
44
|
-
'/test/load-paths-relative/load-paths-relative.scss': `.a {}`,
|
|
45
|
-
'/test/load-paths-absolute/load-paths-absolute.scss': `.a {}`,
|
|
46
|
-
'/test/_partial-import.scss': `.a {}`,
|
|
47
|
-
'/test/alias-relative/alias.scss': `.a {}`,
|
|
48
|
-
'/test/alias-absolute/alias.scss': `.a {}`,
|
|
49
|
-
});
|
|
50
|
-
expect(await webpackResolver('~package-1/index.scss', { request })).toBe(getFixturePath('/node_modules/package-1/index.scss'));
|
|
51
|
-
expect(await webpackResolver('~package-1', { request })).toBe(getFixturePath('/node_modules/package-1/index.scss'));
|
|
52
|
-
// ref: https://github.com/webpack-contrib/sass-loader/blob/bed9fb5799a90020d43f705ea405f85b368621d7/test/scss/import-include-paths.scss#L1
|
|
53
|
-
expect(await webpackResolver('load-paths-relative', { request })).toBe(getFixturePath('/test/load-paths-relative/load-paths-relative.scss'));
|
|
54
|
-
expect(await webpackResolver('load-paths-absolute', { request })).toBe(getFixturePath('/test/load-paths-absolute/load-paths-absolute.scss'));
|
|
55
|
-
// https://sass-lang.com/documentation/at-rules/import#partials
|
|
56
|
-
// https://github.com/webpack-contrib/sass-loader/blob/0e9494074f69a6b6d47efea6c083a02a31a5ae84/test/sass/import-with-underscore.sass
|
|
57
|
-
expect(await webpackResolver('partial-import', { request: getFixturePath('/test/1.scss') })).toBe(getFixturePath('/test/_partial-import.scss'));
|
|
58
|
-
expect(await webpackResolver('test/partial-import', { request: getFixturePath('/test') })).toBe(getFixturePath('/test/_partial-import.scss'));
|
|
59
|
-
expect(await webpackResolver('@relative/alias.scss', { request })).toBe(getFixturePath('/test/alias-relative/alias.scss'));
|
|
60
|
-
expect(await webpackResolver('@absolute/alias.scss', { request })).toBe(getFixturePath('/test/alias-absolute/alias.scss'));
|
|
61
|
-
});
|
|
62
|
-
test('resolves specifier with less-loader mechanism', async () => {
|
|
63
|
-
const webpackResolver = createWebpackResolver({
|
|
64
|
-
cwd: getFixturePath('/'),
|
|
65
|
-
lessIncludePaths: ['test/include-paths-relative', getFixturePath('/test/include-paths-absolute')],
|
|
66
|
-
webpackResolveAlias: {
|
|
67
|
-
'@relative': 'test/alias-relative',
|
|
68
|
-
'@absolute': getFixturePath('/test/alias-absolute'),
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
const request = getFixturePath('/test/1.less');
|
|
72
|
-
createFixtures({
|
|
73
|
-
'/node_modules/package-1/index.less': `.a {}`,
|
|
74
|
-
'/test/include-paths-relative/include-paths-relative.less': `.a {}`,
|
|
75
|
-
'/test/include-paths-absolute/include-paths-absolute.less': `.a {}`,
|
|
76
|
-
'/test/alias-relative/alias.less': `.a {}`,
|
|
77
|
-
'/test/alias-absolute/alias.less': `.a {}`,
|
|
78
|
-
});
|
|
79
|
-
expect(await webpackResolver('~package-1/index.less', { request })).toBe(getFixturePath('/node_modules/package-1/index.less'));
|
|
80
|
-
expect(await webpackResolver('~package-1', { request })).toBe(getFixturePath('/node_modules/package-1/index.less'));
|
|
81
|
-
// ref: https://github.com/webpack-contrib/less-loader/blob/81a0d27eb6d18e5dc550a60fc1007fdc77305b78/test/loader.test.js#L248-L253
|
|
82
|
-
// ref: https://github.com/webpack-contrib/less-loader/blob/393147064672ace986ec84aca21f69f0ab819a9c/test/fixtures/import-paths.less#L1
|
|
83
|
-
// ref: https://github.com/webpack-contrib/less-loader/blob/99d80bd290dae50375db6e17c5f56ec33754e258/test/helpers/getCodeFromLess.js#L47-L54
|
|
84
|
-
expect(await webpackResolver('include-paths-relative', { request })).toBe(getFixturePath('/test/include-paths-relative/include-paths-relative.less'));
|
|
85
|
-
expect(await webpackResolver('include-paths-absolute', { request })).toBe(getFixturePath('/test/include-paths-absolute/include-paths-absolute.less'));
|
|
86
|
-
expect(await webpackResolver('@relative/alias.less', { request })).toBe(getFixturePath('/test/alias-relative/alias.less'));
|
|
87
|
-
expect(await webpackResolver('@absolute/alias.less', { request })).toBe(getFixturePath('/test/alias-absolute/alias.less'));
|
|
88
|
-
});
|
|
89
|
-
//# sourceMappingURL=webpack-resolver.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-resolver.test.js","sourceRoot":"","sources":["../../src/resolver/webpack-resolver.test.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import type { Resolver } from './resolver/index.js';
|
|
2
|
-
import { type Transformer } from './transformer/index.js';
|
|
3
|
-
export type Watcher = {
|
|
4
|
-
close: () => Promise<void>;
|
|
5
|
-
};
|
|
6
|
-
export type LocalsConvention = 'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashesOnly' | undefined;
|
|
7
|
-
export interface RunnerOptions {
|
|
8
|
-
pattern: string;
|
|
9
|
-
watch?: boolean | undefined;
|
|
10
|
-
/**
|
|
11
|
-
* Style of exported class names.
|
|
12
|
-
* @default undefined
|
|
13
|
-
*/
|
|
14
|
-
localsConvention?: LocalsConvention | undefined;
|
|
15
|
-
declarationMap?: boolean | undefined;
|
|
16
|
-
transformer?: Transformer | undefined;
|
|
17
|
-
resolver?: Resolver | undefined;
|
|
18
|
-
/**
|
|
19
|
-
* The option compatible with sass's `--load-path`. It is an array of relative or absolute paths.
|
|
20
|
-
* @example ['src/styles']
|
|
21
|
-
* @example ['/home/user/repository/src/styles']
|
|
22
|
-
*/
|
|
23
|
-
sassLoadPaths?: string[] | undefined;
|
|
24
|
-
/**
|
|
25
|
-
* The option compatible with less's `--include-path`. It is an array of relative or absolute paths.
|
|
26
|
-
* @example ['src/styles']
|
|
27
|
-
* @example ['/home/user/repository/src/styles']
|
|
28
|
-
*/
|
|
29
|
-
lessIncludePaths?: string[] | undefined;
|
|
30
|
-
/**
|
|
31
|
-
* The option compatible with webpack's `resolve.alias`. It is an object consisting of a pair of alias names and relative or absolute paths.
|
|
32
|
-
* @example { style: 'src/styles', '@': 'src' }
|
|
33
|
-
* @example { style: '/home/user/repository/src/styles', '@': '/home/user/repository/src' }
|
|
34
|
-
*/
|
|
35
|
-
webpackResolveAlias?: Record<string, string> | undefined;
|
|
36
|
-
/**
|
|
37
|
-
* The option compatible with postcss's `--config`. It is a relative or absolute path.
|
|
38
|
-
* @example '.'
|
|
39
|
-
* @example 'postcss.config.js'
|
|
40
|
-
* @example '/home/user/repository/src'
|
|
41
|
-
*/
|
|
42
|
-
postcssConfig?: string | undefined;
|
|
43
|
-
/**
|
|
44
|
-
* Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
45
|
-
* @default false
|
|
46
|
-
*/
|
|
47
|
-
arbitraryExtensions?: boolean | undefined;
|
|
48
|
-
/**
|
|
49
|
-
* Only generate .d.ts and .d.ts.map for changed files.
|
|
50
|
-
* @default true
|
|
51
|
-
*/
|
|
52
|
-
cache?: boolean | undefined;
|
|
53
|
-
/**
|
|
54
|
-
* Strategy for the cache to use for detecting changed files.
|
|
55
|
-
* @default 'content'
|
|
56
|
-
*/
|
|
57
|
-
cacheStrategy?: 'content' | 'metadata' | undefined;
|
|
58
|
-
/**
|
|
59
|
-
* What level of logs to report.
|
|
60
|
-
* @default 'info'
|
|
61
|
-
*/
|
|
62
|
-
logLevel?: 'debug' | 'info' | 'silent' | undefined;
|
|
63
|
-
/** Working directory path. */
|
|
64
|
-
cwd?: string | undefined;
|
|
65
|
-
}
|
|
66
|
-
type OverrideProp<T, K extends keyof T, V extends T[K]> = Omit<T, K> & {
|
|
67
|
-
[P in K]: V;
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Run typed-css-module.
|
|
71
|
-
* @param options Runner options.
|
|
72
|
-
* @returns Returns `Promise<Watcher>` if `options.watch` is `true`, `Promise<void>` if `false`.
|
|
73
|
-
*/
|
|
74
|
-
export declare function run(options: OverrideProp<RunnerOptions, 'watch', true>): Promise<Watcher>;
|
|
75
|
-
export declare function run(options: RunnerOptions): Promise<void>;
|
|
76
|
-
export {};
|
package/dist/runner.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { resolve, relative } from 'path';
|
|
2
|
-
import * as process from 'process';
|
|
3
|
-
import { createCache } from '@file-cache/core';
|
|
4
|
-
import { createNpmPackageKey } from '@file-cache/npm';
|
|
5
|
-
import AwaitLock from 'await-lock';
|
|
6
|
-
import chalk from 'chalk';
|
|
7
|
-
import * as chokidar from 'chokidar';
|
|
8
|
-
import { glob } from 'glob';
|
|
9
|
-
import { DEFAULT_ARBITRARY_EXTENSIONS } from './config.js';
|
|
10
|
-
import { isGeneratedFilesExist, emitGeneratedFiles } from './emitter/index.js';
|
|
11
|
-
import { Locator } from './locator/index.js';
|
|
12
|
-
import { Logger } from './logger.js';
|
|
13
|
-
import { createDefaultResolver } from './resolver/index.js';
|
|
14
|
-
import { createDefaultTransformer } from './transformer/index.js';
|
|
15
|
-
import { getInstalledPeerDependencies, isMatchByGlob } from './util.js';
|
|
16
|
-
export async function run(options) {
|
|
17
|
-
// eslint-disable-next-line new-cap
|
|
18
|
-
const lock = new AwaitLock.default();
|
|
19
|
-
const logger = new Logger(options.logLevel ?? 'info');
|
|
20
|
-
const cwd = options.cwd ?? process.cwd();
|
|
21
|
-
const resolver = options.resolver ??
|
|
22
|
-
createDefaultResolver({
|
|
23
|
-
cwd,
|
|
24
|
-
sassLoadPaths: options.sassLoadPaths,
|
|
25
|
-
lessIncludePaths: options.lessIncludePaths,
|
|
26
|
-
webpackResolveAlias: options.webpackResolveAlias,
|
|
27
|
-
});
|
|
28
|
-
const transformer = options.transformer ?? createDefaultTransformer({ cwd, postcssConfig: options.postcssConfig });
|
|
29
|
-
const installedPeerDependencies = getInstalledPeerDependencies();
|
|
30
|
-
const cache = await createCache({
|
|
31
|
-
name: 'happy-css-modules',
|
|
32
|
-
mode: options.cacheStrategy ?? 'content',
|
|
33
|
-
keys: [
|
|
34
|
-
() => createNpmPackageKey(['happy-css-modules', ...installedPeerDependencies]),
|
|
35
|
-
() => {
|
|
36
|
-
return JSON.stringify(options);
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
noCache: !(options.cache ?? true),
|
|
40
|
-
});
|
|
41
|
-
const locator = new Locator({ transformer, resolver });
|
|
42
|
-
const isExternalFile = (filePath) => {
|
|
43
|
-
return !isMatchByGlob(filePath, options.pattern, { cwd });
|
|
44
|
-
};
|
|
45
|
-
async function processFile(filePath) {
|
|
46
|
-
async function isChangedFile(filePath) {
|
|
47
|
-
const result = await cache.getAndUpdateCache(filePath);
|
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-throw-literal
|
|
49
|
-
if (result.error)
|
|
50
|
-
throw result.error;
|
|
51
|
-
return result.changed;
|
|
52
|
-
}
|
|
53
|
-
// Locator#load cannot be called concurrently. Therefore, it takes a lock and waits.
|
|
54
|
-
await lock.acquireAsync();
|
|
55
|
-
try {
|
|
56
|
-
const _isGeneratedFilesExist = await isGeneratedFilesExist(filePath, options.declarationMap, options.arbitraryExtensions ?? DEFAULT_ARBITRARY_EXTENSIONS);
|
|
57
|
-
const _isChangedFile = await isChangedFile(filePath);
|
|
58
|
-
// Generate .d.ts and .d.ts.map only when the file has been updated.
|
|
59
|
-
// However, if .d.ts or .d.ts.map has not yet been generated, always generate.
|
|
60
|
-
if (_isGeneratedFilesExist && !_isChangedFile) {
|
|
61
|
-
logger.debug(chalk.gray(`${relative(cwd, filePath)} (skipped)`));
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
const result = await locator.load(filePath);
|
|
65
|
-
await emitGeneratedFiles({
|
|
66
|
-
filePath,
|
|
67
|
-
tokens: result.tokens,
|
|
68
|
-
emitDeclarationMap: options.declarationMap,
|
|
69
|
-
dtsFormatOptions: {
|
|
70
|
-
localsConvention: options.localsConvention,
|
|
71
|
-
arbitraryExtensions: options.arbitraryExtensions,
|
|
72
|
-
},
|
|
73
|
-
isExternalFile,
|
|
74
|
-
});
|
|
75
|
-
logger.info(chalk.green(`${relative(cwd, filePath)} (generated)`));
|
|
76
|
-
await cache.reconcile(); // Update cache for the file
|
|
77
|
-
}
|
|
78
|
-
finally {
|
|
79
|
-
lock.release();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
async function processAllFiles() {
|
|
83
|
-
const filePaths = (await glob(options.pattern, { dot: true, cwd }))
|
|
84
|
-
// convert relative path to absolute path
|
|
85
|
-
.map((file) => resolve(cwd, file));
|
|
86
|
-
const errors = [];
|
|
87
|
-
for (const filePath of filePaths) {
|
|
88
|
-
// eslint-disable-next-line no-await-in-loop
|
|
89
|
-
await processFile(filePath).catch((e) => errors.push(e));
|
|
90
|
-
}
|
|
91
|
-
if (errors.length > 0) {
|
|
92
|
-
throw new AggregateError(errors, 'Failed to process files');
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
if (!options.watch) {
|
|
96
|
-
logger.info(`Generate .d.ts for ${options.pattern}...`);
|
|
97
|
-
await processAllFiles();
|
|
98
|
-
// Write cache state to file for persistence
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
// First, watch files.
|
|
102
|
-
logger.info(`Watch ${options.pattern}...`);
|
|
103
|
-
const watcher = chokidar.watch([options.pattern.replace(/\\/gu, '/')], { cwd });
|
|
104
|
-
watcher.on('all', (eventName, relativeFilePath) => {
|
|
105
|
-
const filePath = resolve(cwd, relativeFilePath);
|
|
106
|
-
// There is a bug in chokidar that matches symlinks that do not match the pattern.
|
|
107
|
-
// ref: https://github.com/paulmillr/chokidar/issues/967
|
|
108
|
-
if (isExternalFile(filePath))
|
|
109
|
-
return;
|
|
110
|
-
if (eventName !== 'add' && eventName !== 'change')
|
|
111
|
-
return;
|
|
112
|
-
processFile(filePath).catch((e) => {
|
|
113
|
-
logger.error(e);
|
|
114
|
-
// TODO: Emit a error by `Watcher#onerror`
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
return { close: async () => watcher.close() };
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=runner.js.map
|
package/dist/runner.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|