happy-css-modules 2.0.0 → 2.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/README.md +1 -0
- package/dist/cli.js +7 -0
- package/dist/cli.js.map +1 -1
- package/dist/cli.test.js +5 -0
- package/dist/cli.test.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -0
- package/dist/emitter/dts.d.ts +2 -1
- package/dist/emitter/dts.js +10 -3
- package/dist/emitter/dts.js.map +1 -1
- package/dist/emitter/dts.test.js +4 -1
- package/dist/emitter/dts.test.js.map +1 -1
- package/dist/emitter/index.d.ts +12 -3
- package/dist/emitter/index.js +7 -5
- package/dist/emitter/index.js.map +1 -1
- package/dist/emitter/source-map.d.ts +2 -1
- package/dist/emitter/source-map.js +3 -2
- package/dist/emitter/source-map.js.map +1 -1
- package/dist/emitter/source-map.test.js +4 -1
- package/dist/emitter/source-map.test.js.map +1 -1
- package/dist/library/source-map/index.d.ts +1 -1
- package/dist/locator/index.d.ts +4 -4
- package/dist/locator/postcss.d.ts +3 -3
- package/dist/logger.d.ts +1 -1
- package/dist/resolver/index.d.ts +3 -3
- package/dist/resolver/webpack-resolver.d.ts +1 -1
- package/dist/runner.d.ts +12 -3
- package/dist/runner.js +3 -1
- package/dist/runner.js.map +1 -1
- package/dist/test-util/jest/resolver.d.cts +1 -15
- package/dist/test-util/tsserver.d.ts +1 -1
- package/dist/test-util/tsserver.js.map +1 -1
- package/dist/test-util/util.d.ts +3 -3
- package/dist/transformer/index.d.ts +4 -4
- package/dist/transformer/postcss-transformer.d.ts +1 -1
- package/dist/transformer/postcss-transformer.js +2 -2
- package/dist/transformer/postcss-transformer.js.map +1 -1
- package/package.json +2 -2
- package/src/cli.test.ts +5 -0
- package/src/cli.ts +7 -0
- package/src/config.ts +1 -0
- package/src/emitter/dts.test.ts +4 -1
- package/src/emitter/dts.ts +9 -3
- package/src/emitter/index.ts +16 -4
- package/src/emitter/source-map.test.ts +4 -1
- package/src/emitter/source-map.ts +3 -2
- package/src/runner.ts +16 -1
- package/src/test-util/tsserver.ts +14 -13
- package/src/transformer/postcss-transformer.ts +2 -2
package/README.md
CHANGED
|
@@ -56,6 +56,7 @@ Options:
|
|
|
56
56
|
--lessIncludePaths The option compatible with less's `--include-path`. [array]
|
|
57
57
|
--webpackResolveAlias The option compatible with webpack's `resolve.alias`. [string]
|
|
58
58
|
--postcssConfig The option compatible with postcss's `--config`. [string]
|
|
59
|
+
--arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`. [boolean] [default: true]
|
|
59
60
|
--cache Only generate .d.ts and .d.ts.map for changed files. [boolean] [default: true]
|
|
60
61
|
--cacheStrategy Strategy for the cache to use for detecting changed files.[choices: "content", "metadata"] [default: "content"]
|
|
61
62
|
--logLevel What level of logs to report. [choices: "debug", "info", "silent"] [default: "info"]
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import yargs from 'yargs';
|
|
2
2
|
import { hideBin } from 'yargs/helpers';
|
|
3
|
+
import { DEFAULT_ARBITRARY_EXTENSIONS } from './config.js';
|
|
3
4
|
import { getPackageJson } from './util.js';
|
|
4
5
|
/**
|
|
5
6
|
* Parse command line arguments.
|
|
@@ -53,6 +54,11 @@ export function parseArgv(argv) {
|
|
|
53
54
|
.option('postcssConfig', {
|
|
54
55
|
string: true,
|
|
55
56
|
describe: "The option compatible with postcss's `--config`.",
|
|
57
|
+
})
|
|
58
|
+
.option('arbitraryExtensions', {
|
|
59
|
+
type: 'boolean',
|
|
60
|
+
default: DEFAULT_ARBITRARY_EXTENSIONS,
|
|
61
|
+
describe: 'Generate `.d.css.ts` instead of `.css.d.ts`.',
|
|
56
62
|
})
|
|
57
63
|
.option('cache', {
|
|
58
64
|
type: 'boolean',
|
|
@@ -106,6 +112,7 @@ export function parseArgv(argv) {
|
|
|
106
112
|
lessIncludePaths: parsedArgv.lessIncludePaths?.map((item) => item.toString()),
|
|
107
113
|
webpackResolveAlias: parsedArgv.webpackResolveAlias ? JSON.parse(parsedArgv.webpackResolveAlias) : undefined,
|
|
108
114
|
postcssConfig: parsedArgv.postcssConfig,
|
|
115
|
+
arbitraryExtensions: parsedArgv.arbitraryExtensions,
|
|
109
116
|
cache: parsedArgv.cache,
|
|
110
117
|
cacheStrategy: parsedArgv.cacheStrategy,
|
|
111
118
|
logLevel: parsedArgv.logLevel,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.test.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { parseArgv } from './cli.js';
|
|
2
|
+
import { DEFAULT_ARBITRARY_EXTENSIONS } from './config.js';
|
|
2
3
|
const baseArgs = ['node', 'hcm'];
|
|
3
4
|
describe('parseArgv', () => {
|
|
4
5
|
test('pattern', () => {
|
|
@@ -43,6 +44,10 @@ describe('parseArgv', () => {
|
|
|
43
44
|
expect(parseArgv([...baseArgs, '1.css', '--postcssConfig', '.']).postcssConfig).toBe('.');
|
|
44
45
|
expect(parseArgv([...baseArgs, '1.css', '--postcssConfig', 'postcss.config.js']).postcssConfig).toBe('postcss.config.js');
|
|
45
46
|
});
|
|
47
|
+
test('--arbitraryExtensions', () => {
|
|
48
|
+
expect(parseArgv([...baseArgs, '1.css']).arbitraryExtensions).toBe(DEFAULT_ARBITRARY_EXTENSIONS);
|
|
49
|
+
expect(parseArgv([...baseArgs, '1.css', '--arbitraryExtensions']).arbitraryExtensions).toBe(true);
|
|
50
|
+
});
|
|
46
51
|
test('--cache', () => {
|
|
47
52
|
expect(parseArgv([...baseArgs, '1.css']).cache).toBe(true);
|
|
48
53
|
expect(parseArgv([...baseArgs, '1.css', '--cache']).cache).toBe(true);
|
package/dist/cli.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const DEFAULT_ARBITRARY_EXTENSIONS = false;
|
package/dist/config.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC"}
|
package/dist/emitter/dts.d.ts
CHANGED
|
@@ -4,9 +4,10 @@ import { type DtsFormatOptions } from './index.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Get .d.ts file path.
|
|
6
6
|
* @param filePath The path to the source file (i.e. `/dir/foo.css`). It is absolute.
|
|
7
|
+
* @param arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
7
8
|
* @returns The path to the .d.ts file. It is absolute.
|
|
8
9
|
*/
|
|
9
|
-
export declare function getDtsFilePath(filePath: string): string;
|
|
10
|
+
export declare function getDtsFilePath(filePath: string, arbitraryExtensions: boolean): string;
|
|
10
11
|
export declare function generateDtsContentWithSourceMap(filePath: string, dtsFilePath: string, sourceMapFilePath: string, tokens: Token[], dtsFormatOptions: DtsFormatOptions | undefined, isExternalFile: (filePath: string) => boolean): {
|
|
11
12
|
dtsContent: CodeWithSourceMap['code'];
|
|
12
13
|
sourceMap: CodeWithSourceMap['map'];
|
package/dist/emitter/dts.js
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import { EOL } from 'os';
|
|
2
|
-
import { basename } from 'path';
|
|
2
|
+
import { basename, parse, join } from 'path';
|
|
3
3
|
import camelcase from 'camelcase';
|
|
4
4
|
import { SourceNode } from '../library/source-map/index.js';
|
|
5
5
|
import { getRelativePath } from './index.js';
|
|
6
6
|
/**
|
|
7
7
|
* Get .d.ts file path.
|
|
8
8
|
* @param filePath The path to the source file (i.e. `/dir/foo.css`). It is absolute.
|
|
9
|
+
* @param arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
9
10
|
* @returns The path to the .d.ts file. It is absolute.
|
|
10
11
|
*/
|
|
11
|
-
export function getDtsFilePath(filePath) {
|
|
12
|
-
|
|
12
|
+
export function getDtsFilePath(filePath, arbitraryExtensions) {
|
|
13
|
+
if (arbitraryExtensions) {
|
|
14
|
+
const { dir, name, ext } = parse(filePath);
|
|
15
|
+
return join(dir, name + '.d' + ext + '.ts');
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return filePath + '.d.ts';
|
|
19
|
+
}
|
|
13
20
|
}
|
|
14
21
|
function dashesCamelCase(str) {
|
|
15
22
|
return str.replace(/-+(\w)/g, function (match, firstLetter) {
|
package/dist/emitter/dts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts.js","sourceRoot":"","sources":["../../src/emitter/dts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"dts.js","sourceRoot":"","sources":["../../src/emitter/dts.ts"],"names":[],"mappings":"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"}
|
package/dist/emitter/dts.test.js
CHANGED
|
@@ -6,7 +6,10 @@ import { generateDtsContentWithSourceMap, getDtsFilePath } from './dts.js';
|
|
|
6
6
|
const locator = new Locator();
|
|
7
7
|
const isExternalFile = () => false;
|
|
8
8
|
test('getDtsFilePath', () => {
|
|
9
|
-
expect(getDtsFilePath('/app/src/dir/1.css')).toBe('/app/src/dir/1.css.d.ts');
|
|
9
|
+
expect(getDtsFilePath('/app/src/dir/1.css', false)).toBe('/app/src/dir/1.css.d.ts');
|
|
10
|
+
expect(getDtsFilePath('/app/src/dir/1.scss', false)).toBe('/app/src/dir/1.scss.d.ts');
|
|
11
|
+
expect(getDtsFilePath('/app/src/dir/1.css', true)).toBe('/app/src/dir/1.d.css.ts');
|
|
12
|
+
expect(getDtsFilePath('/app/src/dir/1.scss', true)).toBe('/app/src/dir/1.d.scss.ts');
|
|
10
13
|
});
|
|
11
14
|
describe('generateDtsContentWithSourceMap', () => {
|
|
12
15
|
const filePath = getFixturePath('/test/1.css');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts.test.js","sourceRoot":"","sources":["../../src/emitter/dts.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG3E,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;AAEnC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC1B,MAAM,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dts.test.js","sourceRoot":"","sources":["../../src/emitter/dts.test.ts"],"names":[],"mappings":"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"}
|
package/dist/emitter/index.d.ts
CHANGED
|
@@ -2,11 +2,20 @@ import { type Token } from '../locator/index.js';
|
|
|
2
2
|
import { type LocalsConvention } from '../runner.js';
|
|
3
3
|
export declare function getRelativePath(fromFilePath: string, toFilePath: string): string;
|
|
4
4
|
export declare function isSubDirectoryFile(fromDirectory: string, toFilePath: string): boolean;
|
|
5
|
-
export
|
|
5
|
+
export type DtsFormatOptions = {
|
|
6
|
+
/**
|
|
7
|
+
* Style of exported class names.
|
|
8
|
+
* @default undefined
|
|
9
|
+
*/
|
|
6
10
|
localsConvention?: LocalsConvention;
|
|
11
|
+
/**
|
|
12
|
+
* Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
arbitraryExtensions?: boolean | undefined;
|
|
7
16
|
};
|
|
8
17
|
/** The options for emitter. */
|
|
9
|
-
export
|
|
18
|
+
export type EmitterOptions = {
|
|
10
19
|
/** The path to the source file (i.e. `/dir/foo.css`). It is absolute. */
|
|
11
20
|
filePath: string;
|
|
12
21
|
/** The tokens exported by the source file. */
|
|
@@ -22,4 +31,4 @@ export declare function emitGeneratedFiles({ filePath, tokens, emitDeclarationMa
|
|
|
22
31
|
/**
|
|
23
32
|
* Returns true if .d.ts (and .d.ts.map) files are generated for the given file.
|
|
24
33
|
*/
|
|
25
|
-
export declare function isGeneratedFilesExist(filePath: string, emitDeclarationMap: boolean | undefined): Promise<boolean>;
|
|
34
|
+
export declare function isGeneratedFilesExist(filePath: string, emitDeclarationMap: boolean | undefined, arbitraryExtensions: boolean): Promise<boolean>;
|
package/dist/emitter/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { dirname, isAbsolute, relative } from 'path';
|
|
2
|
+
import { DEFAULT_ARBITRARY_EXTENSIONS } from '../config.js';
|
|
2
3
|
import { exists } from '../util.js';
|
|
3
4
|
import { generateDtsContentWithSourceMap, getDtsFilePath } from './dts.js';
|
|
4
5
|
import { writeFileIfChanged } from './file-system.js';
|
|
@@ -16,8 +17,9 @@ export function isSubDirectoryFile(fromDirectory, toFilePath) {
|
|
|
16
17
|
return isAbsolute(toFilePath) && toFilePath.startsWith(fromDirectory);
|
|
17
18
|
}
|
|
18
19
|
export async function emitGeneratedFiles({ filePath, tokens, emitDeclarationMap, dtsFormatOptions, isExternalFile, }) {
|
|
19
|
-
const
|
|
20
|
-
const
|
|
20
|
+
const arbitraryExtensions = dtsFormatOptions?.arbitraryExtensions ?? DEFAULT_ARBITRARY_EXTENSIONS;
|
|
21
|
+
const dtsFilePath = getDtsFilePath(filePath, arbitraryExtensions);
|
|
22
|
+
const sourceMapFilePath = getSourceMapFilePath(filePath, arbitraryExtensions);
|
|
21
23
|
const { dtsContent, sourceMap } = generateDtsContentWithSourceMap(filePath, dtsFilePath, sourceMapFilePath, tokens, dtsFormatOptions, isExternalFile);
|
|
22
24
|
if (emitDeclarationMap) {
|
|
23
25
|
const sourceMappingURLComment = generateSourceMappingURLComment(dtsFilePath, sourceMapFilePath);
|
|
@@ -33,9 +35,9 @@ export async function emitGeneratedFiles({ filePath, tokens, emitDeclarationMap,
|
|
|
33
35
|
/**
|
|
34
36
|
* Returns true if .d.ts (and .d.ts.map) files are generated for the given file.
|
|
35
37
|
*/
|
|
36
|
-
export async function isGeneratedFilesExist(filePath, emitDeclarationMap) {
|
|
37
|
-
const dtsFilePath = getDtsFilePath(filePath);
|
|
38
|
-
const sourceMapFilePath = getSourceMapFilePath(filePath);
|
|
38
|
+
export async function isGeneratedFilesExist(filePath, emitDeclarationMap, arbitraryExtensions) {
|
|
39
|
+
const dtsFilePath = getDtsFilePath(filePath, arbitraryExtensions);
|
|
40
|
+
const sourceMapFilePath = getSourceMapFilePath(filePath, arbitraryExtensions);
|
|
39
41
|
if (emitDeclarationMap && !(await exists(sourceMapFilePath))) {
|
|
40
42
|
return false;
|
|
41
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/emitter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/emitter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAExF,MAAM,UAAU,eAAe,CAAC,YAAoB,EAAE,UAAkB;IACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7D,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,QAAQ,CAAC;KACjB;SAAM;QACL,OAAO,IAAI,GAAG,QAAQ,CAAC;KACxB;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAqB,EAAE,UAAkB;IAC1E,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACxE,CAAC;AA6BD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,GACC;IACf,MAAM,mBAAmB,GAAG,gBAAgB,EAAE,mBAAmB,IAAI,4BAA4B,CAAC;IAClG,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAClE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC9E,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,+BAA+B,CAC/D,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,gBAAgB,EAChB,cAAc,CACf,CAAC;IAEF,IAAI,kBAAkB,EAAE;QACtB,MAAM,uBAAuB,GAAG,+BAA+B,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAChG,MAAM,kBAAkB,CAAC,WAAW,EAAE,UAAU,GAAG,uBAAuB,CAAC,CAAC;QAC5E,sGAAsG;QACtG,mEAAmE;QACnE,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnE;SAAM;QACL,MAAM,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;KACnD;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgB,EAChB,kBAAuC,EACvC,mBAA4B;IAE5B,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAClE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC9E,IAAI,kBAAkB,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE;QAC5D,OAAO,KAAK,CAAC;KACd;IACD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE;QAChC,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Get .d.ts.map file path.
|
|
3
3
|
* @param filePath The path to the source file (i.e. `foo.css`). It is absolute.
|
|
4
|
+
* @param arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
4
5
|
* @returns The path to the .d.ts.map file. It is absolute.
|
|
5
6
|
*/
|
|
6
|
-
export declare function getSourceMapFilePath(filePath: string): string;
|
|
7
|
+
export declare function getSourceMapFilePath(filePath: string, arbitraryExtensions: boolean): string;
|
|
7
8
|
export declare function generateSourceMappingURLComment(dtsFilePath: string, sourceMapFilePath: string): string;
|
|
@@ -4,10 +4,11 @@ import { getRelativePath } from './index.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Get .d.ts.map file path.
|
|
6
6
|
* @param filePath The path to the source file (i.e. `foo.css`). It is absolute.
|
|
7
|
+
* @param arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
7
8
|
* @returns The path to the .d.ts.map file. It is absolute.
|
|
8
9
|
*/
|
|
9
|
-
export function getSourceMapFilePath(filePath) {
|
|
10
|
-
return getDtsFilePath(filePath) + '.map';
|
|
10
|
+
export function getSourceMapFilePath(filePath, arbitraryExtensions) {
|
|
11
|
+
return getDtsFilePath(filePath, arbitraryExtensions) + '.map';
|
|
11
12
|
}
|
|
12
13
|
export function generateSourceMappingURLComment(dtsFilePath, sourceMapFilePath) {
|
|
13
14
|
return `//# sourceMappingURL=${getRelativePath(dtsFilePath, sourceMapFilePath)}` + EOL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-map.js","sourceRoot":"","sources":["../../src/emitter/source-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C
|
|
1
|
+
{"version":3,"file":"source-map.js","sourceRoot":"","sources":["../../src/emitter/source-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,mBAA4B;IACjF,OAAO,cAAc,CAAC,QAAQ,EAAE,mBAAmB,CAAC,GAAG,MAAM,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,WAAmB,EAAE,iBAAyB;IAC5F,OAAO,wBAAwB,eAAe,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,GAAG,GAAG,CAAC;AACzF,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { EOL } from 'os';
|
|
2
2
|
import { getSourceMapFilePath, generateSourceMappingURLComment } from './source-map.js';
|
|
3
3
|
test('getSourceMapFilePath', () => {
|
|
4
|
-
expect(getSourceMapFilePath('/app/src/dir/1.css')).toBe('/app/src/dir/1.css.d.ts.map');
|
|
4
|
+
expect(getSourceMapFilePath('/app/src/dir/1.css', false)).toBe('/app/src/dir/1.css.d.ts.map');
|
|
5
|
+
expect(getSourceMapFilePath('/app/src/dir/1.scss', false)).toBe('/app/src/dir/1.scss.d.ts.map');
|
|
6
|
+
expect(getSourceMapFilePath('/app/src/dir/1.css', true)).toBe('/app/src/dir/1.d.css.ts.map');
|
|
7
|
+
expect(getSourceMapFilePath('/app/src/dir/1.scss', true)).toBe('/app/src/dir/1.d.scss.ts.map');
|
|
5
8
|
});
|
|
6
9
|
test('generateSourceMappingURLComment', () => {
|
|
7
10
|
expect(generateSourceMappingURLComment('/app/src/dir/1.css.d.ts', '/app/src/dir/1.css.d.ts.map')).toBe('//# sourceMappingURL=./1.css.d.ts.map' + EOL);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-map.test.js","sourceRoot":"","sources":["../../src/emitter/source-map.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAExF,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAChC,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"source-map.test.js","sourceRoot":"","sources":["../../src/emitter/source-map.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAExF,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAChC,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC9F,MAAM,CAAC,oBAAoB,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAChG,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC7F,MAAM,CAAC,oBAAoB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;AACjG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC3C,MAAM,CAAC,+BAA+B,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC,CAAC,IAAI,CACpG,uCAAuC,GAAG,GAAG,CAC9C,CAAC;IACF,MAAM,CAAC,+BAA+B,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC,CAAC,IAAI,CACtG,6CAA6C,GAAG,GAAG,CACpD,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SourceNode as OriginalSourceNode, type CodeWithSourceMap } from 'source-map';
|
|
2
|
-
|
|
2
|
+
type Chunk = string | StrictlyTypedSourceNode | Chunk[];
|
|
3
3
|
interface StrictlyTypedSourceNode extends OriginalSourceNode {
|
|
4
4
|
new (line: number | null, column: number | null, source: string | null): StrictlyTypedSourceNode;
|
|
5
5
|
new (line: number | null, column: number | null, source: string | null, chunk?: Chunk, name?: string): StrictlyTypedSourceNode;
|
package/dist/locator/index.d.ts
CHANGED
|
@@ -3,27 +3,27 @@ import { type Transformer } from '../transformer/index.js';
|
|
|
3
3
|
import { type Location } from './postcss.js';
|
|
4
4
|
export { collectNodes, type Location } from './postcss.js';
|
|
5
5
|
/** The exported token. */
|
|
6
|
-
export
|
|
6
|
+
export type Token = {
|
|
7
7
|
/** The token name. */
|
|
8
8
|
name: string;
|
|
9
9
|
/** The original locations of the token in the source file. */
|
|
10
10
|
originalLocations: Location[];
|
|
11
11
|
};
|
|
12
12
|
/** The result of `Locator#load`. */
|
|
13
|
-
export
|
|
13
|
+
export type LoadResult = {
|
|
14
14
|
/** The path of the file imported from the source file with `@import` or `composes`. */
|
|
15
15
|
dependencies: string[];
|
|
16
16
|
/** The tokens exported by the source file. */
|
|
17
17
|
tokens: Token[];
|
|
18
18
|
};
|
|
19
|
-
export
|
|
19
|
+
export type LocatorOptions = {
|
|
20
20
|
/** The function to transform source code. */
|
|
21
21
|
transformer?: Transformer | undefined;
|
|
22
22
|
/** The function to resolve the path of the imported file. */
|
|
23
23
|
resolver?: Resolver | undefined;
|
|
24
24
|
};
|
|
25
25
|
/** The resolver that throws an exception if resolving fails. */
|
|
26
|
-
export
|
|
26
|
+
export type StrictlyResolver = (...args: Parameters<Resolver>) => Promise<string>;
|
|
27
27
|
/** This class collects information on tokens exported from CSS Modules files. */
|
|
28
28
|
export declare class Locator {
|
|
29
29
|
private readonly cache;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { type Rule, type AtRule, type Root, type Declaration } from 'postcss';
|
|
2
2
|
import { type ClassName } from 'postcss-selector-parser';
|
|
3
3
|
/** The pair of line number and column number. */
|
|
4
|
-
export
|
|
4
|
+
export type Position = {
|
|
5
5
|
/** The line number in the source file. It is 1-based (compatible with postcss). */
|
|
6
6
|
line: number;
|
|
7
7
|
/** The column number in the source file. It is 1-based (compatible with postcss). */
|
|
8
8
|
column: number;
|
|
9
9
|
};
|
|
10
10
|
/** The original location of class selector. If the original location is not found, all fields are `undefined`. */
|
|
11
|
-
export
|
|
11
|
+
export type Location = {
|
|
12
12
|
filePath: string;
|
|
13
13
|
/** The inclusive starting position of the node's source (compatible with postcss). */
|
|
14
14
|
start: Position;
|
|
@@ -32,7 +32,7 @@ export declare function generateLocalTokenNames(ast: Root): Promise<string[]>;
|
|
|
32
32
|
* @returns The token's location on the source file.
|
|
33
33
|
*/
|
|
34
34
|
export declare function getOriginalLocation(rule: Rule, classSelector: ClassName): Location;
|
|
35
|
-
|
|
35
|
+
type CollectNodesResult = {
|
|
36
36
|
atImports: AtRule[];
|
|
37
37
|
classSelectors: {
|
|
38
38
|
rule: Rule;
|
package/dist/logger.d.ts
CHANGED
package/dist/resolver/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { WebpackResolverOptions } from './webpack-resolver.js';
|
|
2
|
-
export
|
|
2
|
+
export type ResolverOptions = {
|
|
3
3
|
request: string;
|
|
4
4
|
};
|
|
5
5
|
/**
|
|
6
6
|
* The function to resolve the path of the imported file.
|
|
7
7
|
* @returns The resolved path of the imported file. `false` means to skip resolving.
|
|
8
8
|
* */
|
|
9
|
-
export
|
|
10
|
-
export
|
|
9
|
+
export type Resolver = (specifier: string, options: ResolverOptions) => string | false | Promise<string | false>;
|
|
10
|
+
export type DefaultResolverOptions = WebpackResolverOptions;
|
|
11
11
|
/**
|
|
12
12
|
* The Default resolver.
|
|
13
13
|
*
|
package/dist/runner.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import type { Resolver } from './resolver/index.js';
|
|
2
2
|
import { type Transformer } from './transformer/index.js';
|
|
3
|
-
export
|
|
3
|
+
export type Watcher = {
|
|
4
4
|
close: () => Promise<void>;
|
|
5
5
|
};
|
|
6
|
-
export
|
|
6
|
+
export type LocalsConvention = 'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashesOnly' | undefined;
|
|
7
7
|
export interface RunnerOptions {
|
|
8
8
|
pattern: string;
|
|
9
9
|
watch?: boolean | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Style of exported class names.
|
|
12
|
+
* @default undefined
|
|
13
|
+
*/
|
|
10
14
|
localsConvention?: LocalsConvention | undefined;
|
|
11
15
|
declarationMap?: boolean | undefined;
|
|
12
16
|
transformer?: Transformer | undefined;
|
|
@@ -36,6 +40,11 @@ export interface RunnerOptions {
|
|
|
36
40
|
* @example '/home/user/repository/src'
|
|
37
41
|
*/
|
|
38
42
|
postcssConfig?: string | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
47
|
+
arbitraryExtensions?: boolean | undefined;
|
|
39
48
|
/**
|
|
40
49
|
* Only generate .d.ts and .d.ts.map for changed files.
|
|
41
50
|
* @default true
|
|
@@ -54,7 +63,7 @@ export interface RunnerOptions {
|
|
|
54
63
|
/** Working directory path. */
|
|
55
64
|
cwd?: string | undefined;
|
|
56
65
|
}
|
|
57
|
-
|
|
66
|
+
type OverrideProp<T, K extends keyof T, V extends T[K]> = Omit<T, K> & {
|
|
58
67
|
[P in K]: V;
|
|
59
68
|
};
|
|
60
69
|
/**
|
package/dist/runner.js
CHANGED
|
@@ -7,6 +7,7 @@ import AwaitLock from 'await-lock';
|
|
|
7
7
|
import chalk from 'chalk';
|
|
8
8
|
import * as chokidar from 'chokidar';
|
|
9
9
|
import _glob from 'glob';
|
|
10
|
+
import { DEFAULT_ARBITRARY_EXTENSIONS } from './config.js';
|
|
10
11
|
import { isGeneratedFilesExist, emitGeneratedFiles } from './emitter/index.js';
|
|
11
12
|
import { Locator } from './locator/index.js';
|
|
12
13
|
import { Logger } from './logger.js';
|
|
@@ -51,7 +52,7 @@ export async function run(options) {
|
|
|
51
52
|
// Locator#load cannot be called concurrently. Therefore, it takes a lock and waits.
|
|
52
53
|
await lock.acquireAsync();
|
|
53
54
|
try {
|
|
54
|
-
const _isGeneratedFilesExist = await isGeneratedFilesExist(filePath, options.declarationMap);
|
|
55
|
+
const _isGeneratedFilesExist = await isGeneratedFilesExist(filePath, options.declarationMap, options.arbitraryExtensions ?? DEFAULT_ARBITRARY_EXTENSIONS);
|
|
55
56
|
const _isChangedFile = await isChangedFile(filePath);
|
|
56
57
|
// Generate .d.ts and .d.ts.map only when the file has been updated.
|
|
57
58
|
// However, if .d.ts or .d.ts.map has not yet been generated, always generate.
|
|
@@ -66,6 +67,7 @@ export async function run(options) {
|
|
|
66
67
|
emitDeclarationMap: options.declarationMap,
|
|
67
68
|
dtsFormatOptions: {
|
|
68
69
|
localsConvention: options.localsConvention,
|
|
70
|
+
arbitraryExtensions: options.arbitraryExtensions,
|
|
69
71
|
},
|
|
70
72
|
isExternalFile,
|
|
71
73
|
});
|
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,QAAQ,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAoB,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAExE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,5 @@
|
|
|
1
1
|
export = resolver;
|
|
2
|
-
|
|
3
|
-
* @typedef {{
|
|
4
|
-
* basedir: string;
|
|
5
|
-
* conditions?: Array<string>;
|
|
6
|
-
* defaultResolver: (path: string, options: ResolverOptions) => string;
|
|
7
|
-
* extensions?: Array<string>;
|
|
8
|
-
* moduleDirectory?: Array<string>;
|
|
9
|
-
* paths?: Array<string>;
|
|
10
|
-
* packageFilter?: (pkg: any, file: string, dir: string) => any;
|
|
11
|
-
* pathFilter?: (pkg: any, path: string, relativePath: string) => string;
|
|
12
|
-
* rootDir?: string;
|
|
13
|
-
* }} ResolverOptions
|
|
14
|
-
* */
|
|
15
|
-
/** @type {(path: string, options: ResolverOptions) => string} */
|
|
16
|
-
declare function resolver(module: string, options: ResolverOptions): string;
|
|
2
|
+
declare function resolver(path: string, options: ResolverOptions): string;
|
|
17
3
|
declare namespace resolver {
|
|
18
4
|
export { ResolverOptions };
|
|
19
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsserver.js","sourceRoot":"","sources":["../../src/test-util/tsserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,MAAM,MAAM,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tsserver.js","sourceRoot":"","sources":["../../src/test-util/tsserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,MAAM,MAAM,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,OAAe;IACpD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,OAAO,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAuBD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CACvC,aAAa,CAAC,MAAM,OAAO,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC3E;QACE,qFAAqF;QACrF,qCAAqC;KACtC,CACF,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,wBAAwB,CAAC,QAAgB,EAAE,UAAkB;YACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YACpF,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,gCAAgC,CACpC,QAAgB,EAChB,WAAqB;YAErB,MAAM,WAAW,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;YAC7D,MAAM,cAAc,GAAG;gBACrB,uBAAuB,QAAQ,IAAI;gBACnC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,UAAU,GAAG,CAAC;aAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAE7C,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE1B,MAAM,OAAO,GAAwD,EAAE,CAAC;YAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,MAAM,QAAQ,GAAuC,MAAM,MAAM,CAAC,OAAO,CAAC;oBACxE,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,YAAY;oBACrB,SAAS,EAAE;wBACT,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,CAAC,GAAG,CAAC;wBACX,MAAM,EAAE,CAAC,EAAE,kBAAkB;qBAC9B;iBACmC,CAAC,CAAC;gBACxC,MAAM,WAAW,GAAiB,QAAQ,CAAC,IAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;oBAClE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;oBACxC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAChD,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC7E,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;oBACvE,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACrD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;gBACpC,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAE,EAAE,WAAW,EAAE,CAAC,CAAC;aAC5D;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,KAAK,CAAC,oBAAoB,CAAC,QAAgB;YACzC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE1B,MAAM,WAAW,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;YAC7D,MAAM,cAAc,GAAG,uBAAuB,QAAQ,IAAI,CAAC;YAE3D,MAAM,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAE7C,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE1B,MAAM,QAAQ,GAAuC,MAAM,MAAM,CAAC,OAAO,CAAC;gBACxE,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,SAAS,EAAE;oBACT,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,EAAE,EAAE,kBAAkB;iBAC/B;aACmC,CAAC,CAAC;YACxC,MAAM,WAAW,GAAiB,QAAQ,CAAC,IAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;gBAClE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;gBACxC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC7E,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACvE,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACrD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,YAAY;YAChB,gDAAgD;YAChD,kEAAkE;YAClE,oEAAoE;YAEpE,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/E,kBAAkB;YAClB,MAAM,SAAS,GAAgE,gBAAgB,CAAC,GAAG,CACjG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAC5C,eAAe,EAAE,cAAc,CAAC,iBAAiB,CAAC;gBAClD,cAAc,EAAE,IAAI,EAAE,gDAAgD;aACvE,CAAC,CACH,CAAC;YAEF,qBAAqB;YACrB,MAAM,MAAM,CAAC,OAAO,CAAC;gBACnB,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,SAAS,EAAE;oBACT,YAAY,EAAE,EAAE;oBAChB,WAAW,EAAE,EAAE;oBACf,SAAS;iBACV;aACmC,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/test-util/util.d.ts
CHANGED
|
@@ -18,9 +18,9 @@ export declare function fakeToken(args: {
|
|
|
18
18
|
}): Token;
|
|
19
19
|
export declare function waitForAsyncTask(ms?: number): Promise<void>;
|
|
20
20
|
export declare function exists(path: string): Promise<boolean>;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
type File = string;
|
|
22
|
+
type DirectoryItem = File | DirectoryItems;
|
|
23
|
+
type DirectoryItems = {
|
|
24
24
|
[name: string]: DirectoryItem;
|
|
25
25
|
};
|
|
26
26
|
export declare function createFixtures(items: DirectoryItems): void;
|
|
@@ -5,14 +5,14 @@ import type { PostcssTransformerOptions } from './postcss-transformer.js';
|
|
|
5
5
|
* The value returned from the transformer.
|
|
6
6
|
* `false` means to skip transpiling on that file.
|
|
7
7
|
* */
|
|
8
|
-
export
|
|
8
|
+
export type TransformResult = {
|
|
9
9
|
/** The transformed code. */
|
|
10
10
|
css: string;
|
|
11
11
|
/** The source map from the transformed code to the original code. */
|
|
12
12
|
map: string | object;
|
|
13
13
|
dependencies: (string | URL)[];
|
|
14
14
|
} | false;
|
|
15
|
-
export
|
|
15
|
+
export type TransformerOptions = {
|
|
16
16
|
/** The path of the file to transform. */
|
|
17
17
|
from: string;
|
|
18
18
|
/** The function to resolve the path of the imported file. */
|
|
@@ -24,7 +24,7 @@ export declare type TransformerOptions = {
|
|
|
24
24
|
isIgnoredSpecifier: (specifier: string) => boolean;
|
|
25
25
|
};
|
|
26
26
|
/** The function to transform source code. */
|
|
27
|
-
export
|
|
27
|
+
export type Transformer = (source: string, options: TransformerOptions) => TransformResult | Promise<TransformResult>;
|
|
28
28
|
export declare const handleImportError: (packageName: string) => (e: unknown) => never;
|
|
29
|
-
export
|
|
29
|
+
export type DefaultTransformerOptions = PostcssTransformerOptions;
|
|
30
30
|
export declare const createDefaultTransformer: (defaultTransformerOptions?: DefaultTransformerOptions) => Transformer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
-
import
|
|
3
|
+
import postcss from 'postcss';
|
|
4
4
|
const require = createRequire(import.meta.url);
|
|
5
5
|
const postcssrc = require('postcss-load-config');
|
|
6
6
|
function isDependencyMessage(message) {
|
|
@@ -20,7 +20,7 @@ export const createPostcssTransformer = (postcssTransformerOptions) => {
|
|
|
20
20
|
});
|
|
21
21
|
if (postcssConfig === undefined)
|
|
22
22
|
return false;
|
|
23
|
-
const result = await postcss(postcssConfig.plugins).process(source, {
|
|
23
|
+
const result = await postcss.default(postcssConfig.plugins).process(source, {
|
|
24
24
|
...postcssConfig.options,
|
|
25
25
|
from: options.from,
|
|
26
26
|
map: { inline: false, absolute: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postcss-transformer.js","sourceRoot":"","sources":["../../src/transformer/postcss-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"postcss-transformer.js","sourceRoot":"","sources":["../../src/transformer/postcss-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAyB,MAAM,SAAS,CAAC;AAIhD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,SAAS,GAAyC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAQvF,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,OAAO,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC;AACvC,CAAC;AAaD,MAAM,CAAC,MAAM,wBAAwB,GAA2E,CAC9G,yBAAyB,EACzB,EAAE;IACF,MAAM,GAAG,GAAG,yBAAyB,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5D,MAAM,gBAAgB,GAAG,yBAAyB,EAAE,aAAa;QAC/D,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,yBAAyB,EAAE,aAAa,CAAC;QACxD,CAAC,CAAC,GAAG,CAAC;IACR,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAC/B,gFAAgF;QAChF,MAAM,aAAa,GAAuB,MAAM,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/F,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC1F,MAAM,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QACH,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE;YAC1E,GAAG,aAAa,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;SACvC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEhG,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "happy-css-modules",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Creates .d.ts files from CSS Modules .css files",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"prettier": "~2.7.1",
|
|
77
77
|
"sass": "^1.54.3",
|
|
78
78
|
"tsc-watch": "^5.0.3",
|
|
79
|
-
"typescript": "^
|
|
79
|
+
"typescript": "^5.0.2"
|
|
80
80
|
},
|
|
81
81
|
"peerDependencies": {
|
|
82
82
|
"less": "^3.0.0 || ^4.0.0",
|
package/src/cli.test.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { parseArgv } from './cli.js';
|
|
2
|
+
import { DEFAULT_ARBITRARY_EXTENSIONS } from './config.js';
|
|
2
3
|
|
|
3
4
|
const baseArgs = ['node', 'hcm'];
|
|
4
5
|
|
|
@@ -56,6 +57,10 @@ describe('parseArgv', () => {
|
|
|
56
57
|
'postcss.config.js',
|
|
57
58
|
);
|
|
58
59
|
});
|
|
60
|
+
test('--arbitraryExtensions', () => {
|
|
61
|
+
expect(parseArgv([...baseArgs, '1.css']).arbitraryExtensions).toBe(DEFAULT_ARBITRARY_EXTENSIONS);
|
|
62
|
+
expect(parseArgv([...baseArgs, '1.css', '--arbitraryExtensions']).arbitraryExtensions).toBe(true);
|
|
63
|
+
});
|
|
59
64
|
test('--cache', () => {
|
|
60
65
|
expect(parseArgv([...baseArgs, '1.css']).cache).toBe(true);
|
|
61
66
|
expect(parseArgv([...baseArgs, '1.css', '--cache']).cache).toBe(true);
|
package/src/cli.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import yargs from 'yargs';
|
|
2
2
|
import { hideBin } from 'yargs/helpers';
|
|
3
|
+
import { DEFAULT_ARBITRARY_EXTENSIONS } from './config.js';
|
|
3
4
|
import { type RunnerOptions } from './runner.js';
|
|
4
5
|
import { getPackageJson } from './util.js';
|
|
5
6
|
|
|
@@ -56,6 +57,11 @@ export function parseArgv(argv: string[]): RunnerOptions {
|
|
|
56
57
|
string: true,
|
|
57
58
|
describe: "The option compatible with postcss's `--config`.",
|
|
58
59
|
})
|
|
60
|
+
.option('arbitraryExtensions', {
|
|
61
|
+
type: 'boolean',
|
|
62
|
+
default: DEFAULT_ARBITRARY_EXTENSIONS,
|
|
63
|
+
describe: 'Generate `.d.css.ts` instead of `.css.d.ts`.',
|
|
64
|
+
})
|
|
59
65
|
.option('cache', {
|
|
60
66
|
type: 'boolean',
|
|
61
67
|
default: true,
|
|
@@ -106,6 +112,7 @@ export function parseArgv(argv: string[]): RunnerOptions {
|
|
|
106
112
|
lessIncludePaths: parsedArgv.lessIncludePaths?.map((item) => item.toString()),
|
|
107
113
|
webpackResolveAlias: parsedArgv.webpackResolveAlias ? JSON.parse(parsedArgv.webpackResolveAlias) : undefined,
|
|
108
114
|
postcssConfig: parsedArgv.postcssConfig,
|
|
115
|
+
arbitraryExtensions: parsedArgv.arbitraryExtensions,
|
|
109
116
|
cache: parsedArgv.cache,
|
|
110
117
|
cacheStrategy: parsedArgv.cacheStrategy,
|
|
111
118
|
logLevel: parsedArgv.logLevel,
|
package/src/config.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const DEFAULT_ARBITRARY_EXTENSIONS = false;
|
package/src/emitter/dts.test.ts
CHANGED
|
@@ -9,7 +9,10 @@ const locator = new Locator();
|
|
|
9
9
|
const isExternalFile = () => false;
|
|
10
10
|
|
|
11
11
|
test('getDtsFilePath', () => {
|
|
12
|
-
expect(getDtsFilePath('/app/src/dir/1.css')).toBe('/app/src/dir/1.css.d.ts');
|
|
12
|
+
expect(getDtsFilePath('/app/src/dir/1.css', false)).toBe('/app/src/dir/1.css.d.ts');
|
|
13
|
+
expect(getDtsFilePath('/app/src/dir/1.scss', false)).toBe('/app/src/dir/1.scss.d.ts');
|
|
14
|
+
expect(getDtsFilePath('/app/src/dir/1.css', true)).toBe('/app/src/dir/1.d.css.ts');
|
|
15
|
+
expect(getDtsFilePath('/app/src/dir/1.scss', true)).toBe('/app/src/dir/1.d.scss.ts');
|
|
13
16
|
});
|
|
14
17
|
|
|
15
18
|
describe('generateDtsContentWithSourceMap', () => {
|
package/src/emitter/dts.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EOL } from 'os';
|
|
2
|
-
import { basename } from 'path';
|
|
2
|
+
import { basename, parse, join } from 'path';
|
|
3
3
|
import camelcase from 'camelcase';
|
|
4
4
|
import { SourceNode, type CodeWithSourceMap } from '../library/source-map/index.js';
|
|
5
5
|
import { type Token } from '../locator/index.js';
|
|
@@ -9,10 +9,16 @@ import { getRelativePath, type DtsFormatOptions } from './index.js';
|
|
|
9
9
|
/**
|
|
10
10
|
* Get .d.ts file path.
|
|
11
11
|
* @param filePath The path to the source file (i.e. `/dir/foo.css`). It is absolute.
|
|
12
|
+
* @param arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
12
13
|
* @returns The path to the .d.ts file. It is absolute.
|
|
13
14
|
*/
|
|
14
|
-
export function getDtsFilePath(filePath: string): string {
|
|
15
|
-
|
|
15
|
+
export function getDtsFilePath(filePath: string, arbitraryExtensions: boolean): string {
|
|
16
|
+
if (arbitraryExtensions) {
|
|
17
|
+
const { dir, name, ext } = parse(filePath);
|
|
18
|
+
return join(dir, name + '.d' + ext + '.ts');
|
|
19
|
+
} else {
|
|
20
|
+
return filePath + '.d.ts';
|
|
21
|
+
}
|
|
16
22
|
}
|
|
17
23
|
|
|
18
24
|
function dashesCamelCase(str: string): string {
|
package/src/emitter/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { dirname, isAbsolute, relative } from 'path';
|
|
2
|
+
import { DEFAULT_ARBITRARY_EXTENSIONS } from '../config.js';
|
|
2
3
|
import { type Token } from '../locator/index.js';
|
|
3
4
|
import { type LocalsConvention } from '../runner.js';
|
|
4
5
|
import { exists } from '../util.js';
|
|
@@ -20,7 +21,16 @@ export function isSubDirectoryFile(fromDirectory: string, toFilePath: string): b
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
export type DtsFormatOptions = {
|
|
24
|
+
/**
|
|
25
|
+
* Style of exported class names.
|
|
26
|
+
* @default undefined
|
|
27
|
+
*/
|
|
23
28
|
localsConvention?: LocalsConvention;
|
|
29
|
+
/**
|
|
30
|
+
* Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
arbitraryExtensions?: boolean | undefined;
|
|
24
34
|
};
|
|
25
35
|
|
|
26
36
|
/** The options for emitter. */
|
|
@@ -44,8 +54,9 @@ export async function emitGeneratedFiles({
|
|
|
44
54
|
dtsFormatOptions,
|
|
45
55
|
isExternalFile,
|
|
46
56
|
}: EmitterOptions): Promise<void> {
|
|
47
|
-
const
|
|
48
|
-
const
|
|
57
|
+
const arbitraryExtensions = dtsFormatOptions?.arbitraryExtensions ?? DEFAULT_ARBITRARY_EXTENSIONS;
|
|
58
|
+
const dtsFilePath = getDtsFilePath(filePath, arbitraryExtensions);
|
|
59
|
+
const sourceMapFilePath = getSourceMapFilePath(filePath, arbitraryExtensions);
|
|
49
60
|
const { dtsContent, sourceMap } = generateDtsContentWithSourceMap(
|
|
50
61
|
filePath,
|
|
51
62
|
dtsFilePath,
|
|
@@ -72,9 +83,10 @@ export async function emitGeneratedFiles({
|
|
|
72
83
|
export async function isGeneratedFilesExist(
|
|
73
84
|
filePath: string,
|
|
74
85
|
emitDeclarationMap: boolean | undefined,
|
|
86
|
+
arbitraryExtensions: boolean,
|
|
75
87
|
): Promise<boolean> {
|
|
76
|
-
const dtsFilePath = getDtsFilePath(filePath);
|
|
77
|
-
const sourceMapFilePath = getSourceMapFilePath(filePath);
|
|
88
|
+
const dtsFilePath = getDtsFilePath(filePath, arbitraryExtensions);
|
|
89
|
+
const sourceMapFilePath = getSourceMapFilePath(filePath, arbitraryExtensions);
|
|
78
90
|
if (emitDeclarationMap && !(await exists(sourceMapFilePath))) {
|
|
79
91
|
return false;
|
|
80
92
|
}
|
|
@@ -2,7 +2,10 @@ import { EOL } from 'os';
|
|
|
2
2
|
import { getSourceMapFilePath, generateSourceMappingURLComment } from './source-map.js';
|
|
3
3
|
|
|
4
4
|
test('getSourceMapFilePath', () => {
|
|
5
|
-
expect(getSourceMapFilePath('/app/src/dir/1.css')).toBe('/app/src/dir/1.css.d.ts.map');
|
|
5
|
+
expect(getSourceMapFilePath('/app/src/dir/1.css', false)).toBe('/app/src/dir/1.css.d.ts.map');
|
|
6
|
+
expect(getSourceMapFilePath('/app/src/dir/1.scss', false)).toBe('/app/src/dir/1.scss.d.ts.map');
|
|
7
|
+
expect(getSourceMapFilePath('/app/src/dir/1.css', true)).toBe('/app/src/dir/1.d.css.ts.map');
|
|
8
|
+
expect(getSourceMapFilePath('/app/src/dir/1.scss', true)).toBe('/app/src/dir/1.d.scss.ts.map');
|
|
6
9
|
});
|
|
7
10
|
|
|
8
11
|
test('generateSourceMappingURLComment', () => {
|
|
@@ -5,10 +5,11 @@ import { getRelativePath } from './index.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Get .d.ts.map file path.
|
|
7
7
|
* @param filePath The path to the source file (i.e. `foo.css`). It is absolute.
|
|
8
|
+
* @param arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
8
9
|
* @returns The path to the .d.ts.map file. It is absolute.
|
|
9
10
|
*/
|
|
10
|
-
export function getSourceMapFilePath(filePath: string): string {
|
|
11
|
-
return getDtsFilePath(filePath) + '.map';
|
|
11
|
+
export function getSourceMapFilePath(filePath: string, arbitraryExtensions: boolean): string {
|
|
12
|
+
return getDtsFilePath(filePath, arbitraryExtensions) + '.map';
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
export function generateSourceMappingURLComment(dtsFilePath: string, sourceMapFilePath: string): string {
|
package/src/runner.ts
CHANGED
|
@@ -7,6 +7,7 @@ import AwaitLock from 'await-lock';
|
|
|
7
7
|
import chalk from 'chalk';
|
|
8
8
|
import * as chokidar from 'chokidar';
|
|
9
9
|
import _glob from 'glob';
|
|
10
|
+
import { DEFAULT_ARBITRARY_EXTENSIONS } from './config.js';
|
|
10
11
|
import { isGeneratedFilesExist, emitGeneratedFiles } from './emitter/index.js';
|
|
11
12
|
import { Locator } from './locator/index.js';
|
|
12
13
|
import { Logger } from './logger.js';
|
|
@@ -26,6 +27,10 @@ export type LocalsConvention = 'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashe
|
|
|
26
27
|
export interface RunnerOptions {
|
|
27
28
|
pattern: string;
|
|
28
29
|
watch?: boolean | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Style of exported class names.
|
|
32
|
+
* @default undefined
|
|
33
|
+
*/
|
|
29
34
|
localsConvention?: LocalsConvention | undefined;
|
|
30
35
|
declarationMap?: boolean | undefined;
|
|
31
36
|
transformer?: Transformer | undefined;
|
|
@@ -55,6 +60,11 @@ export interface RunnerOptions {
|
|
|
55
60
|
* @example '/home/user/repository/src'
|
|
56
61
|
*/
|
|
57
62
|
postcssConfig?: string | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
65
|
+
* @default false
|
|
66
|
+
*/
|
|
67
|
+
arbitraryExtensions?: boolean | undefined;
|
|
58
68
|
/**
|
|
59
69
|
* Only generate .d.ts and .d.ts.map for changed files.
|
|
60
70
|
* @default true
|
|
@@ -126,7 +136,11 @@ export async function run(options: RunnerOptions): Promise<Watcher | void> {
|
|
|
126
136
|
await lock.acquireAsync();
|
|
127
137
|
|
|
128
138
|
try {
|
|
129
|
-
const _isGeneratedFilesExist = await isGeneratedFilesExist(
|
|
139
|
+
const _isGeneratedFilesExist = await isGeneratedFilesExist(
|
|
140
|
+
filePath,
|
|
141
|
+
options.declarationMap,
|
|
142
|
+
options.arbitraryExtensions ?? DEFAULT_ARBITRARY_EXTENSIONS,
|
|
143
|
+
);
|
|
130
144
|
const _isChangedFile = await isChangedFile(filePath);
|
|
131
145
|
// Generate .d.ts and .d.ts.map only when the file has been updated.
|
|
132
146
|
// However, if .d.ts or .d.ts.map has not yet been generated, always generate.
|
|
@@ -142,6 +156,7 @@ export async function run(options: RunnerOptions): Promise<Watcher | void> {
|
|
|
142
156
|
emitDeclarationMap: options.declarationMap,
|
|
143
157
|
dtsFormatOptions: {
|
|
144
158
|
localsConvention: options.localsConvention,
|
|
159
|
+
arbitraryExtensions: options.arbitraryExtensions,
|
|
145
160
|
},
|
|
146
161
|
isExternalFile,
|
|
147
162
|
});
|
|
@@ -7,9 +7,8 @@ import serverHarness from '@typescript/server-harness';
|
|
|
7
7
|
import _glob from 'glob';
|
|
8
8
|
import { resolve } from 'import-meta-resolve';
|
|
9
9
|
import lineColumn from 'line-column';
|
|
10
|
-
import type {
|
|
10
|
+
import type { server } from 'typescript/lib/tsserverlibrary.js';
|
|
11
11
|
import { getFixturePath } from './util.js';
|
|
12
|
-
|
|
13
12
|
const glob = promisify(_glob);
|
|
14
13
|
|
|
15
14
|
async function writeFile(path: string, content: string): Promise<void> {
|
|
@@ -68,7 +67,7 @@ export async function createTSServer() {
|
|
|
68
67
|
const results: { identifier: string; definitions: Definition[] }[] = [];
|
|
69
68
|
|
|
70
69
|
for (let i = 0; i < identifiers.length; i++) {
|
|
71
|
-
const response: DefinitionResponse = await server.message({
|
|
70
|
+
const response: server.protocol.DefinitionResponse = await server.message({
|
|
72
71
|
seq: 0,
|
|
73
72
|
type: 'request',
|
|
74
73
|
command: 'definition',
|
|
@@ -77,7 +76,7 @@ export async function createTSServer() {
|
|
|
77
76
|
line: i + 2, // line, 1-based
|
|
78
77
|
offset: 8, // column, 1-based
|
|
79
78
|
},
|
|
80
|
-
} as DefinitionRequest);
|
|
79
|
+
} as server.protocol.DefinitionRequest);
|
|
81
80
|
const definitions: Definition[] = response.body!.map((definition) => {
|
|
82
81
|
const { file, start, end } = definition;
|
|
83
82
|
const fileContent = readFileSync(file, 'utf-8');
|
|
@@ -100,7 +99,7 @@ export async function createTSServer() {
|
|
|
100
99
|
|
|
101
100
|
await this.refreshCache();
|
|
102
101
|
|
|
103
|
-
const response: DefinitionResponse = await server.message({
|
|
102
|
+
const response: server.protocol.DefinitionResponse = await server.message({
|
|
104
103
|
seq: 0,
|
|
105
104
|
type: 'request',
|
|
106
105
|
command: 'definition',
|
|
@@ -109,7 +108,7 @@ export async function createTSServer() {
|
|
|
109
108
|
line: 1, // line, 1-based
|
|
110
109
|
offset: 20, // column, 1-based
|
|
111
110
|
},
|
|
112
|
-
} as DefinitionRequest);
|
|
111
|
+
} as server.protocol.DefinitionRequest);
|
|
113
112
|
const definitions: Definition[] = response.body!.map((definition) => {
|
|
114
113
|
const { file, start, end } = definition;
|
|
115
114
|
const fileContent = readFileSync(file, 'utf-8');
|
|
@@ -127,12 +126,14 @@ export async function createTSServer() {
|
|
|
127
126
|
|
|
128
127
|
const fixtureFilePaths = await glob(getFixturePath('/**/*.ts'), { dot: true });
|
|
129
128
|
// latest contents
|
|
130
|
-
const openFiles: UpdateOpenRequest['arguments']['openFiles'] = fixtureFilePaths.map(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
129
|
+
const openFiles: server.protocol.UpdateOpenRequest['arguments']['openFiles'] = fixtureFilePaths.map(
|
|
130
|
+
(filePath) => ({
|
|
131
|
+
file: filePath,
|
|
132
|
+
fileContent: readFileSync(filePath, 'utf-8'),
|
|
133
|
+
projectRootPath: getFixturePath('/server-harness'),
|
|
134
|
+
scriptKindName: 'TS', // It's easy to get this wrong when copy-pasting
|
|
135
|
+
}),
|
|
136
|
+
);
|
|
136
137
|
|
|
137
138
|
// override the cache
|
|
138
139
|
await server.message({
|
|
@@ -144,7 +145,7 @@ export async function createTSServer() {
|
|
|
144
145
|
closedFiles: [],
|
|
145
146
|
openFiles,
|
|
146
147
|
},
|
|
147
|
-
} as UpdateOpenRequest);
|
|
148
|
+
} as server.protocol.UpdateOpenRequest);
|
|
148
149
|
},
|
|
149
150
|
exit: async () => {
|
|
150
151
|
await server.message({ command: 'exit' });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
-
import
|
|
3
|
+
import postcss, { type Message } from 'postcss';
|
|
4
4
|
import type { Result } from 'postcss-load-config';
|
|
5
5
|
import type { Transformer } from '../index.js';
|
|
6
6
|
|
|
@@ -44,7 +44,7 @@ export const createPostcssTransformer: (postcssTransformerOptions?: PostcssTrans
|
|
|
44
44
|
});
|
|
45
45
|
if (postcssConfig === undefined) return false;
|
|
46
46
|
|
|
47
|
-
const result = await postcss(postcssConfig.plugins).process(source, {
|
|
47
|
+
const result = await postcss.default(postcssConfig.plugins).process(source, {
|
|
48
48
|
...postcssConfig.options,
|
|
49
49
|
from: options.from,
|
|
50
50
|
map: { inline: false, absolute: true },
|