happy-css-modules 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -18
- package/dist/cli.js +15 -4
- package/dist/cli.js.map +1 -1
- package/dist/cli.test.js +10 -0
- package/dist/cli.test.js.map +1 -1
- package/dist/emitter/dts.js +3 -4
- package/dist/emitter/dts.js.map +1 -1
- package/dist/integration-test/go-to-definition.test.js +9 -8
- package/dist/integration-test/go-to-definition.test.js.map +1 -1
- package/dist/loader/index.js +6 -10
- package/dist/loader/index.js.map +1 -1
- package/dist/loader/index.test.js +22 -3
- package/dist/loader/index.test.js.map +1 -1
- package/dist/resolver/index.d.ts +3 -1
- package/dist/resolver/index.js +17 -14
- package/dist/resolver/index.js.map +1 -1
- package/dist/resolver/webpack-resolver.d.ts +13 -1
- package/dist/resolver/webpack-resolver.js +73 -59
- package/dist/resolver/webpack-resolver.js.map +1 -1
- package/dist/resolver/webpack-resolver.test.js +34 -7
- package/dist/resolver/webpack-resolver.test.js.map +1 -1
- package/dist/runner.d.ts +12 -0
- package/dist/runner.js +16 -14
- package/dist/runner.js.map +1 -1
- package/dist/runner.test.js +41 -11
- package/dist/runner.test.js.map +1 -1
- package/dist/test/tsserver.d.ts +10 -6
- package/dist/test/tsserver.js +94 -85
- package/dist/test/tsserver.js.map +1 -1
- package/dist/test/util.js +9 -12
- package/dist/test/util.js.map +1 -1
- package/dist/transformer/index.js +11 -9
- package/dist/transformer/index.js.map +1 -1
- package/dist/transformer/less-transformer.js +7 -5
- package/dist/transformer/less-transformer.js.map +1 -1
- package/dist/transformer/less-transformer.test.js +11 -6
- package/dist/transformer/less-transformer.test.js.map +1 -1
- package/dist/transformer/scss-transformer.js +1 -48
- package/dist/transformer/scss-transformer.js.map +1 -1
- package/dist/transformer/scss-transformer.test.js +11 -5
- package/dist/transformer/scss-transformer.test.js.map +1 -1
- package/package.json +3 -3
- package/src/cli.test.ts +14 -0
- package/src/cli.ts +15 -4
- package/src/integration-test/go-to-definition.test.ts +10 -8
- package/src/loader/index.test.ts +22 -3
- package/src/loader/index.ts +3 -4
- package/src/resolver/index.ts +21 -12
- package/src/resolver/webpack-resolver.test.ts +44 -8
- package/src/resolver/webpack-resolver.ts +90 -57
- package/src/runner.test.ts +45 -12
- package/src/runner.ts +29 -10
- package/src/test/tsserver.ts +106 -129
- package/src/transformer/index.ts +10 -8
- package/src/transformer/less-transformer.test.ts +12 -6
- package/src/transformer/less-transformer.ts +6 -4
- package/src/transformer/scss-transformer.test.ts +12 -5
- package/src/transformer/scss-transformer.ts +0 -51
|
@@ -1,69 +1,83 @@
|
|
|
1
|
-
import { dirname } from 'path';
|
|
1
|
+
import { basename, dirname, join } from 'path';
|
|
2
2
|
import enhancedResolve from 'enhanced-resolve';
|
|
3
3
|
import { exists } from '../util.js';
|
|
4
|
-
/**
|
|
5
|
-
* A resolver compatible with css-loader.
|
|
6
|
-
*
|
|
7
|
-
* @see https://github.com/webpack-contrib/css-loader/blob/897e7dd250ccdb0d31e6c66d4cd0d009f2022a85/src/plugins/postcss-import-parser.js#L228-L235
|
|
8
|
-
*/
|
|
9
|
-
const cssLoaderResolver = enhancedResolve.create.sync({
|
|
10
|
-
dependencyType: 'css',
|
|
11
|
-
conditionNames: ['style'],
|
|
12
|
-
// We are not sure how "..." affects behavior...
|
|
13
|
-
mainFields: ['css', 'style', 'main', '...'],
|
|
14
|
-
mainFiles: ['index', '...'],
|
|
15
|
-
extensions: ['.css', '...'],
|
|
16
|
-
preferRelative: true,
|
|
17
|
-
});
|
|
18
|
-
/**
|
|
19
|
-
* A resolver compatible with sass-loader.
|
|
20
|
-
*
|
|
21
|
-
* @see https://github.com/webpack-contrib/sass-loader/blob/49a578a218574ddc92a597c7e365b6c21960717e/src/utils.js#L531-L539
|
|
22
|
-
*/
|
|
23
|
-
const sassLoaderResolver = enhancedResolve.create.sync({
|
|
24
|
-
dependencyType: 'sass',
|
|
25
|
-
conditionNames: ['sass', 'style'],
|
|
26
|
-
mainFields: ['sass', 'style', 'main', '...'],
|
|
27
|
-
mainFiles: ['_index', 'index', '...'],
|
|
28
|
-
extensions: ['.sass', '.scss', '.css'],
|
|
29
|
-
restrictions: [/\.((sa|sc|c)ss)$/i],
|
|
30
|
-
preferRelative: true,
|
|
31
|
-
});
|
|
32
|
-
/**
|
|
33
|
-
* A resolver compatible with less-loader.
|
|
34
|
-
*
|
|
35
|
-
* @see https://github.com/webpack-contrib/less-loader/blob/d74f740c100c4006b00dfb3e02c6d5aaf8713519/src/utils.js#L35-L42
|
|
36
|
-
*/
|
|
37
|
-
const lessLoaderResolver = enhancedResolve.create.sync({
|
|
38
|
-
dependencyType: 'less',
|
|
39
|
-
conditionNames: ['less', 'style'],
|
|
40
|
-
mainFields: ['less', 'style', 'main', '...'],
|
|
41
|
-
mainFiles: ['index', '...'],
|
|
42
|
-
extensions: ['.less', '.css'],
|
|
43
|
-
preferRelative: true,
|
|
44
|
-
});
|
|
45
4
|
// TODO: Support `resolve.alias` for Node.js API
|
|
46
|
-
export const createWebpackResolver = () =>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
5
|
+
export const createWebpackResolver = (webpackResolverOptions) => {
|
|
6
|
+
/**
|
|
7
|
+
* A resolver compatible with css-loader.
|
|
8
|
+
*
|
|
9
|
+
* @see https://github.com/webpack-contrib/css-loader/blob/897e7dd250ccdb0d31e6c66d4cd0d009f2022a85/src/plugins/postcss-import-parser.js#L228-L235
|
|
10
|
+
*/
|
|
11
|
+
const cssLoaderResolver = enhancedResolve.create.sync({
|
|
12
|
+
dependencyType: 'css',
|
|
13
|
+
conditionNames: ['style'],
|
|
14
|
+
// We are not sure how "..." affects behavior...
|
|
15
|
+
mainFields: ['css', 'style', 'main', '...'],
|
|
16
|
+
mainFiles: ['index', '...'],
|
|
17
|
+
extensions: ['.css', '...'],
|
|
18
|
+
preferRelative: true,
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* A resolver compatible with sass-loader.
|
|
22
|
+
*
|
|
23
|
+
* @see https://github.com/webpack-contrib/sass-loader/blob/49a578a218574ddc92a597c7e365b6c21960717e/src/utils.js#L531-L539
|
|
24
|
+
*/
|
|
25
|
+
const sassLoaderResolver = enhancedResolve.create.sync({
|
|
26
|
+
dependencyType: 'sass',
|
|
27
|
+
conditionNames: ['sass', 'style'],
|
|
28
|
+
mainFields: ['sass', 'style', 'main', '...'],
|
|
29
|
+
mainFiles: ['_index', 'index', '...'],
|
|
30
|
+
extensions: ['.sass', '.scss', '.css'],
|
|
31
|
+
restrictions: [/\.((sa|sc|c)ss)$/i],
|
|
32
|
+
preferRelative: true,
|
|
33
|
+
modules: ['node_modules', ...(webpackResolverOptions?.sassLoadPaths ?? [])],
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* A resolver compatible with less-loader.
|
|
37
|
+
*
|
|
38
|
+
* @see https://github.com/webpack-contrib/less-loader/blob/d74f740c100c4006b00dfb3e02c6d5aaf8713519/src/utils.js#L35-L42
|
|
39
|
+
*/
|
|
40
|
+
const lessLoaderResolver = enhancedResolve.create.sync({
|
|
41
|
+
dependencyType: 'less',
|
|
42
|
+
conditionNames: ['less', 'style'],
|
|
43
|
+
mainFields: ['less', 'style', 'main', '...'],
|
|
44
|
+
mainFiles: ['index', '...'],
|
|
45
|
+
extensions: ['.less', '.css'],
|
|
46
|
+
preferRelative: true,
|
|
47
|
+
modules: ['node_modules', ...(webpackResolverOptions?.lessIncludePaths ?? [])],
|
|
48
|
+
});
|
|
51
49
|
// NOTE: In theory, `sassLoaderResolver` should only be used when the resolver is called from `sassTransformer`.
|
|
52
50
|
// However, we do not implement such behavior because it is cumbersome. If someone wants it, we will implement it.
|
|
53
51
|
const resolvers = [cssLoaderResolver, sassLoaderResolver, lessLoaderResolver];
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
return async (specifier, options) => {
|
|
53
|
+
// `~` prefix is optional.
|
|
54
|
+
// ref: https://github.com/webpack-contrib/css-loader/blob/5e6cf91fd3f0c8b5fb4b91197b98dc56abdef4bf/src/utils.js#L92-L95
|
|
55
|
+
// ref: https://github.com/webpack-contrib/sass-loader/blob/49a578a218574ddc92a597c7e365b6c21960717e/src/utils.js#L368-L370
|
|
56
|
+
// ref: https://github.com/webpack-contrib/less-loader/blob/d74f740c100c4006b00dfb3e02c6d5aaf8713519/src/utils.js#L72-L75
|
|
57
|
+
if (specifier.startsWith('~'))
|
|
58
|
+
specifier = specifier.slice(1);
|
|
59
|
+
for (const resolver of resolvers) {
|
|
60
|
+
const specifierVariants = resolver === sassLoaderResolver
|
|
61
|
+
? // Support partial import for sass
|
|
62
|
+
// https://sass-lang.com/documentation/at-rules/import#partials
|
|
63
|
+
// https://github.com/webpack-contrib/sass-loader/blob/0e9494074f69a6b6d47efea6c083a02a31a5ae84/test/sass/import-with-underscore.sass
|
|
64
|
+
[join(dirname(specifier), '_' + basename(specifier)), specifier]
|
|
65
|
+
: [specifier];
|
|
66
|
+
for (const specifierVariant of specifierVariants) {
|
|
67
|
+
try {
|
|
68
|
+
const resolved = resolver(dirname(options.request), specifierVariant);
|
|
69
|
+
if (resolved !== false) {
|
|
70
|
+
const isExists = await exists(resolved);
|
|
71
|
+
if (isExists)
|
|
72
|
+
return resolved;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
// noop
|
|
77
|
+
}
|
|
61
78
|
}
|
|
62
79
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return false;
|
|
80
|
+
return false;
|
|
81
|
+
};
|
|
68
82
|
};
|
|
69
83
|
//# sourceMappingURL=webpack-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-resolver.js","sourceRoot":"","sources":["../../src/resolver/webpack-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/
|
|
1
|
+
{"version":3,"file":"webpack-resolver.js","sourceRoot":"","sources":["../../src/resolver/webpack-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createFixtures, getFixturePath } from '../test/util.js';
|
|
2
2
|
import { createWebpackResolver } from './webpack-resolver.js';
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
|
|
3
|
+
test('resolves specifier with css-loader mechanism', async () => {
|
|
4
|
+
const webpackResolver = createWebpackResolver();
|
|
5
|
+
const request = getFixturePath('/test/1.css');
|
|
6
6
|
createFixtures({
|
|
7
7
|
'/node_modules/package-1/index.css': `.a {}`,
|
|
8
8
|
'/node_modules/package-2/index.css': `.a {}`,
|
|
@@ -11,8 +11,6 @@ test('resolves specifier with webpack mechanism', async () => {
|
|
|
11
11
|
'/node_modules/package-4/style.css': `.a {}`,
|
|
12
12
|
'/node_modules/@scoped/package-5/index.css': `.a {}`,
|
|
13
13
|
'/node_modules/package-6/index.css': `.a {}`,
|
|
14
|
-
'/node_modules/package-7/index.scss': `.a { dummy: ''; }`,
|
|
15
|
-
'/node_modules/package-8/index.less': `.a { dummy: ''; }`,
|
|
16
14
|
});
|
|
17
15
|
expect(await webpackResolver('~package-1/index.css', { request })).toBe(getFixturePath('/node_modules/package-1/index.css'));
|
|
18
16
|
expect(await webpackResolver('~package-2', { request })).toBe(getFixturePath('/node_modules/package-2/index.css'));
|
|
@@ -20,7 +18,36 @@ test('resolves specifier with webpack mechanism', async () => {
|
|
|
20
18
|
expect(await webpackResolver('~package-4', { request })).toBe(getFixturePath('/node_modules/package-4/style.css'));
|
|
21
19
|
expect(await webpackResolver('~@scoped/package-5/index.css', { request })).toBe(getFixturePath('/node_modules/@scoped/package-5/index.css'));
|
|
22
20
|
expect(await webpackResolver('package-6/index.css', { request })).toBe(getFixturePath('/node_modules/package-6/index.css'));
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
});
|
|
22
|
+
test('resolves specifier with sass-loader mechanism', async () => {
|
|
23
|
+
const webpackResolver = createWebpackResolver({ sassLoadPaths: [getFixturePath('/test/styles')] });
|
|
24
|
+
const request = getFixturePath('/test/1.scss');
|
|
25
|
+
createFixtures({
|
|
26
|
+
'/node_modules/package-1/index.scss': `.a {}`,
|
|
27
|
+
'/test/styles/load-paths.scss': `.a {}`,
|
|
28
|
+
'/test/_partial-import.scss': `.a {}`,
|
|
29
|
+
});
|
|
30
|
+
expect(await webpackResolver('~package-1/index.scss', { request })).toBe(getFixturePath('/node_modules/package-1/index.scss'));
|
|
31
|
+
expect(await webpackResolver('~package-1', { request })).toBe(getFixturePath('/node_modules/package-1/index.scss'));
|
|
32
|
+
// ref: https://github.com/webpack-contrib/sass-loader/blob/bed9fb5799a90020d43f705ea405f85b368621d7/test/scss/import-include-paths.scss#L1
|
|
33
|
+
expect(await webpackResolver('load-paths', { request })).toBe(getFixturePath('/test/styles/load-paths.scss'));
|
|
34
|
+
// https://sass-lang.com/documentation/at-rules/import#partials
|
|
35
|
+
// https://github.com/webpack-contrib/sass-loader/blob/0e9494074f69a6b6d47efea6c083a02a31a5ae84/test/sass/import-with-underscore.sass
|
|
36
|
+
expect(await webpackResolver('partial-import', { request: getFixturePath('/test/1.scss') })).toBe(getFixturePath('/test/_partial-import.scss'));
|
|
37
|
+
expect(await webpackResolver('test/partial-import', { request: getFixturePath('/test') })).toBe(getFixturePath('/test/_partial-import.scss'));
|
|
38
|
+
});
|
|
39
|
+
test('resolves specifier with less-loader mechanism', async () => {
|
|
40
|
+
const webpackResolver = createWebpackResolver({ lessIncludePaths: [getFixturePath('/test/styles')] });
|
|
41
|
+
const request = getFixturePath('/test/1.less');
|
|
42
|
+
createFixtures({
|
|
43
|
+
'/node_modules/package-1/index.less': `.a {}`,
|
|
44
|
+
'/test/styles/include-paths.less': `.a {}`,
|
|
45
|
+
});
|
|
46
|
+
expect(await webpackResolver('~package-1/index.less', { request })).toBe(getFixturePath('/node_modules/package-1/index.less'));
|
|
47
|
+
expect(await webpackResolver('~package-1', { request })).toBe(getFixturePath('/node_modules/package-1/index.less'));
|
|
48
|
+
// ref: https://github.com/webpack-contrib/less-loader/blob/81a0d27eb6d18e5dc550a60fc1007fdc77305b78/test/loader.test.js#L248-L253
|
|
49
|
+
// ref: https://github.com/webpack-contrib/less-loader/blob/393147064672ace986ec84aca21f69f0ab819a9c/test/fixtures/import-paths.less#L1
|
|
50
|
+
// ref: https://github.com/webpack-contrib/less-loader/blob/99d80bd290dae50375db6e17c5f56ec33754e258/test/helpers/getCodeFromLess.js#L47-L54
|
|
51
|
+
expect(await webpackResolver('include-paths', { request })).toBe(getFixturePath('/test/styles/include-paths.less'));
|
|
25
52
|
});
|
|
26
53
|
//# sourceMappingURL=webpack-resolver.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-resolver.test.js","sourceRoot":"","sources":["../../src/resolver/webpack-resolver.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAC;
|
|
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
CHANGED
|
@@ -12,6 +12,18 @@ export interface RunnerOptions {
|
|
|
12
12
|
declarationMap?: boolean | undefined;
|
|
13
13
|
transformer?: Transformer | undefined;
|
|
14
14
|
resolver?: Resolver | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* The option compatible with sass's `--load-path`. It is an array of relative or absolute paths.
|
|
17
|
+
* @example ['src/styles']
|
|
18
|
+
* @example ['/home/user/repository/src/styles']
|
|
19
|
+
*/
|
|
20
|
+
sassLoadPaths?: string[] | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* The option compatible with less's `--include-path`. It is an array of relative or absolute paths.
|
|
23
|
+
* @example ['src/styles']
|
|
24
|
+
* @example ['/home/user/repository/src/styles']
|
|
25
|
+
*/
|
|
26
|
+
lessIncludePaths?: string[] | undefined;
|
|
15
27
|
/**
|
|
16
28
|
* Silent output. Do not show "files written" messages.
|
|
17
29
|
* @default false
|
package/dist/runner.js
CHANGED
|
@@ -7,23 +7,26 @@ import AggregateError from 'es-aggregate-error';
|
|
|
7
7
|
import _glob from 'glob';
|
|
8
8
|
import { emitGeneratedFiles } from './emitter/index.js';
|
|
9
9
|
import { Loader } from './loader/index.js';
|
|
10
|
+
import { createDefaultResolver } from './resolver/index.js';
|
|
10
11
|
import { isMatchByGlob } from './util.js';
|
|
11
12
|
const glob = util.promisify(_glob);
|
|
12
13
|
export async function run(options) {
|
|
13
|
-
|
|
14
|
-
const
|
|
14
|
+
const cwd = options.cwd ?? process.cwd();
|
|
15
|
+
const silent = options.silent ?? false;
|
|
16
|
+
const sassLoadPaths = options.sassLoadPaths?.map((path) => resolve(cwd, path));
|
|
17
|
+
const lessIncludePaths = options.lessIncludePaths?.map((path) => resolve(cwd, path));
|
|
18
|
+
const resolver = options.resolver ?? createDefaultResolver({ sassLoadPaths, lessIncludePaths });
|
|
15
19
|
const distOptions = options.outDir
|
|
16
20
|
? {
|
|
17
|
-
rootDir:
|
|
21
|
+
rootDir: cwd,
|
|
18
22
|
outDir: options.outDir,
|
|
19
23
|
}
|
|
20
24
|
: undefined;
|
|
25
|
+
const loader = new Loader({ transformer: options.transformer, resolver });
|
|
21
26
|
const isExternalFile = (filePath) => {
|
|
22
|
-
|
|
23
|
-
return !isMatchByGlob(filePath, options.pattern, { cwd: (_a = options.cwd) !== null && _a !== void 0 ? _a : process.cwd() });
|
|
27
|
+
return !isMatchByGlob(filePath, options.pattern, { cwd });
|
|
24
28
|
};
|
|
25
29
|
async function processFile(filePath) {
|
|
26
|
-
var _a, _b;
|
|
27
30
|
try {
|
|
28
31
|
const result = await loader.load(filePath);
|
|
29
32
|
await emitGeneratedFiles({
|
|
@@ -34,8 +37,8 @@ export async function run(options) {
|
|
|
34
37
|
dtsFormatOptions: {
|
|
35
38
|
localsConvention: options.localsConvention,
|
|
36
39
|
},
|
|
37
|
-
silent
|
|
38
|
-
cwd
|
|
40
|
+
silent,
|
|
41
|
+
cwd,
|
|
39
42
|
isExternalFile,
|
|
40
43
|
});
|
|
41
44
|
}
|
|
@@ -46,13 +49,12 @@ export async function run(options) {
|
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
if (options.watch) {
|
|
49
|
-
if (!
|
|
52
|
+
if (!silent)
|
|
50
53
|
console.log('Watch ' + options.pattern + '...');
|
|
51
|
-
const watcher = chokidar.watch([options.pattern.replace(/\\/g, '/')],
|
|
54
|
+
const watcher = chokidar.watch([options.pattern.replace(/\\/g, '/')], { cwd });
|
|
52
55
|
watcher.on('all', (eventName, filePath) => {
|
|
53
|
-
var _a;
|
|
54
56
|
if (eventName === 'add' || eventName === 'change') {
|
|
55
|
-
processFile(resolve(
|
|
57
|
+
processFile(resolve(cwd, filePath)).catch(() => {
|
|
56
58
|
// TODO: Emit a error by `Watcher#onerror`
|
|
57
59
|
});
|
|
58
60
|
}
|
|
@@ -60,9 +62,9 @@ export async function run(options) {
|
|
|
60
62
|
return { close: async () => watcher.close() };
|
|
61
63
|
}
|
|
62
64
|
else {
|
|
63
|
-
const filePaths = (await glob(options.pattern, { dot: true, cwd
|
|
65
|
+
const filePaths = (await glob(options.pattern, { dot: true, cwd }))
|
|
64
66
|
// convert relative path to absolute path
|
|
65
|
-
.map((file) =>
|
|
67
|
+
.map((file) => resolve(cwd, file));
|
|
66
68
|
// TODO: Use `@file-cache/core` to process only files that have changed
|
|
67
69
|
const errors = [];
|
|
68
70
|
for (const filePath of filePaths) {
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.test.js
CHANGED
|
@@ -13,6 +13,13 @@ const defaultOptions = {
|
|
|
13
13
|
silent: true,
|
|
14
14
|
cwd: getFixturePath('/'),
|
|
15
15
|
};
|
|
16
|
+
// Exit the watcher even if the test fails
|
|
17
|
+
let watcher;
|
|
18
|
+
afterEach(async () => {
|
|
19
|
+
if (watcher) {
|
|
20
|
+
await watcher.close();
|
|
21
|
+
}
|
|
22
|
+
});
|
|
16
23
|
test('generates .d.ts and .d.ts.map', async () => {
|
|
17
24
|
createFixtures({
|
|
18
25
|
'/test/1.css': '.a {}',
|
|
@@ -45,14 +52,13 @@ test('watches for changes in files', async () => {
|
|
|
45
52
|
createFixtures({
|
|
46
53
|
'/test': {}, // empty directory
|
|
47
54
|
});
|
|
48
|
-
|
|
55
|
+
watcher = await run({ ...defaultOptions, watch: true });
|
|
49
56
|
await writeFile(getFixturePath('/test/1.css'), '.a-1 {}');
|
|
50
57
|
await waitForAsyncTask(500); // Wait until the file is written
|
|
51
58
|
expect(await readFile(getFixturePath('/test/1.css.d.ts'), 'utf8')).toMatch(/a-1/);
|
|
52
59
|
await writeFile(getFixturePath('/test/1.css'), '.a-2 {}');
|
|
53
60
|
await waitForAsyncTask(500); // Wait until the file is written
|
|
54
61
|
expect(await readFile(getFixturePath('/test/1.css.d.ts'), 'utf8')).toMatch(/a-2/);
|
|
55
|
-
await watcher.close();
|
|
56
62
|
});
|
|
57
63
|
test('returns an error if the file fails to process in non-watch mode', async () => {
|
|
58
64
|
createFixtures({
|
|
@@ -99,15 +105,39 @@ describe('handles external files', () => {
|
|
|
99
105
|
test('treats imported tokens from external files the same as local tokens', async () => {
|
|
100
106
|
await run({ ...defaultOptions });
|
|
101
107
|
expect(await readFile(getFixturePath('/test/1.css.d.ts'), 'utf8')).toMatchInlineSnapshot(`
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
"declare const styles:
|
|
109
|
+
& Readonly<Pick<(typeof import("./2.css"))["default"], "b">>
|
|
110
|
+
& Readonly<{ "c": string }>
|
|
111
|
+
& Readonly<{ "a": string }>
|
|
112
|
+
;
|
|
113
|
+
export default styles;
|
|
114
|
+
//# sourceMappingURL=./1.css.d.ts.map
|
|
115
|
+
"
|
|
116
|
+
`);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
test('sassLoadPaths', async () => {
|
|
120
|
+
const sassLoadPaths = ['test/relative', getFixturePath('/test/absolute')];
|
|
121
|
+
createFixtures({
|
|
122
|
+
'/test/1.scss': dedent `
|
|
123
|
+
@import '2.scss';
|
|
124
|
+
@import '3.scss';
|
|
125
|
+
`,
|
|
126
|
+
'/test/relative/2.scss': `.a { dummy: ''; }`,
|
|
127
|
+
'/test/absolute/3.scss': `.b { dummy: ''; }`,
|
|
128
|
+
});
|
|
129
|
+
await run({ ...defaultOptions, sassLoadPaths }); // not throw
|
|
130
|
+
});
|
|
131
|
+
test('lessIncludePaths', async () => {
|
|
132
|
+
const lessIncludePaths = ['test/relative', getFixturePath('/test/absolute')];
|
|
133
|
+
createFixtures({
|
|
134
|
+
'/test/1.less': dedent `
|
|
135
|
+
@import '2.less';
|
|
136
|
+
@import '3.less';
|
|
137
|
+
`,
|
|
138
|
+
'/test/relative/2.less': `.a { dummy: ''; }`,
|
|
139
|
+
'/test/absolute/3.less': `.b { dummy: ''; }`,
|
|
111
140
|
});
|
|
141
|
+
await run({ ...defaultOptions, lessIncludePaths }); // not throw
|
|
112
142
|
});
|
|
113
143
|
//# sourceMappingURL=runner.test.js.map
|
package/dist/runner.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../src/runner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,cAAc,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../src/runner.test.ts"],"names":[],"mappings":"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"}
|
package/dist/test/tsserver.d.ts
CHANGED
|
@@ -18,10 +18,14 @@ declare type Definition = {
|
|
|
18
18
|
offset: number;
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
-
export declare function
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
export declare function createTSServer(): Promise<{
|
|
22
|
+
getIdentifierDefinitions(filePath: string, identifier: string): Promise<Definition[]>;
|
|
23
|
+
getMultipleIdentifierDefinitions(filePath: string, identifiers: string[]): Promise<{
|
|
24
|
+
identifier: string;
|
|
25
|
+
definitions: Definition[];
|
|
26
|
+
}[]>;
|
|
27
|
+
getModuleDefinitions(filePath: string): Promise<Definition[]>;
|
|
28
|
+
refreshCache(): Promise<void>;
|
|
29
|
+
exit: () => Promise<void>;
|
|
30
|
+
}>;
|
|
27
31
|
export {};
|