@css-modules-kit/core 0.2.0 → 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/dist/config.d.ts +8 -12
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +35 -22
- package/dist/config.js.map +1 -1
- package/dist/dts-creator.d.ts +13 -26
- package/dist/dts-creator.d.ts.map +1 -1
- package/dist/dts-creator.js +110 -7
- package/dist/dts-creator.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/parser/at-value-parser.d.ts +5 -0
- package/dist/parser/at-value-parser.d.ts.map +1 -1
- package/dist/parser/at-value-parser.js +9 -1
- package/dist/parser/at-value-parser.js.map +1 -1
- package/dist/parser/css-module-parser.d.ts.map +1 -1
- package/dist/parser/css-module-parser.js +4 -5
- package/dist/parser/css-module-parser.js.map +1 -1
- package/dist/parser/rule-parser.d.ts +9 -1
- package/dist/parser/rule-parser.d.ts.map +1 -1
- package/dist/parser/rule-parser.js +1 -0
- package/dist/parser/rule-parser.js.map +1 -1
- package/dist/path.d.ts +0 -1
- package/dist/path.d.ts.map +1 -1
- package/dist/path.js +1 -3
- package/dist/path.js.map +1 -1
- package/dist/type.d.ts +2 -0
- package/dist/type.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/config.ts +40 -33
- package/src/dts-creator.ts +132 -12
- package/src/index.ts +1 -1
- package/src/parser/at-value-parser.ts +14 -1
- package/src/parser/css-module-parser.ts +4 -5
- package/src/parser/rule-parser.ts +11 -2
- package/src/path.ts +0 -3
- package/src/type.ts +2 -0
package/dist/config.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import ts from 'typescript';
|
|
2
2
|
import type { Diagnostic } from './type.js';
|
|
3
|
-
type RemoveUndefined<T> = {
|
|
4
|
-
[K in keyof T]: Exclude<T[K], undefined>;
|
|
5
|
-
};
|
|
6
3
|
/**
|
|
7
4
|
* The config used by css-modules-kit.
|
|
8
5
|
* This is normalized. Paths are resolved from relative to absolute, and default values are set for missing options.
|
|
@@ -12,6 +9,8 @@ export interface CMKConfig {
|
|
|
12
9
|
excludes: string[];
|
|
13
10
|
dtsOutDir: string;
|
|
14
11
|
arbitraryExtensions: boolean;
|
|
12
|
+
namedExports: boolean;
|
|
13
|
+
prioritizeNamedImports: boolean;
|
|
15
14
|
/**
|
|
16
15
|
* A root directory to resolve relative path entries in the config file to.
|
|
17
16
|
* This is an absolute path.
|
|
@@ -60,10 +59,12 @@ export interface CMKConfig {
|
|
|
60
59
|
* This is unnormalized. Paths are relative, and some options may be omitted.
|
|
61
60
|
*/
|
|
62
61
|
interface UnnormalizedRawConfig {
|
|
63
|
-
includes
|
|
64
|
-
excludes
|
|
65
|
-
dtsOutDir
|
|
66
|
-
arbitraryExtensions
|
|
62
|
+
includes?: string[];
|
|
63
|
+
excludes?: string[];
|
|
64
|
+
dtsOutDir?: string;
|
|
65
|
+
arbitraryExtensions?: boolean;
|
|
66
|
+
namedExports?: boolean;
|
|
67
|
+
prioritizeNamedImports?: boolean;
|
|
67
68
|
}
|
|
68
69
|
/**
|
|
69
70
|
* The validated data of `ts.ParsedCommandLine['raw']`.
|
|
@@ -84,11 +85,6 @@ export declare function readTsConfigFile(project: string): {
|
|
|
84
85
|
compilerOptions: ts.CompilerOptions;
|
|
85
86
|
diagnostics: Diagnostic[];
|
|
86
87
|
};
|
|
87
|
-
/**
|
|
88
|
-
* Normalize `UnnormalizedRawConfig`. Resolve relative paths to absolute paths, and set default values for missing options.
|
|
89
|
-
* @param basePath A root directory to resolve relative path entries in the config file to.
|
|
90
|
-
*/
|
|
91
|
-
export declare function normalizeConfig(config: UnnormalizedRawConfig, basePath: string): RemoveUndefined<UnnormalizedRawConfig>;
|
|
92
88
|
/**
|
|
93
89
|
* Reads the `tsconfig.json` file and returns the normalized config.
|
|
94
90
|
* Even if the `tsconfig.json` file contains syntax or semantic errors,
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,mEAAmE;IACnE,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOpE;AAED,iBAAS,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,GAAG,aAAa,CAuE5F;AACD,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,CAAC;AAc/C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAgDA;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAiBzD"}
|
package/dist/config.js
CHANGED
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.findTsConfigFile = findTsConfigFile;
|
|
7
7
|
exports.parseRawDataForTest = parseRawData;
|
|
8
8
|
exports.readTsConfigFile = readTsConfigFile;
|
|
9
|
-
exports.normalizeConfig = normalizeConfig;
|
|
10
9
|
exports.readConfigFile = readConfigFile;
|
|
11
10
|
const typescript_1 = __importDefault(require("typescript"));
|
|
12
11
|
const error_js_1 = require("./error.js");
|
|
@@ -23,12 +22,7 @@ function findTsConfigFile(project) {
|
|
|
23
22
|
}
|
|
24
23
|
function parseRawData(raw, tsConfigSourceFile) {
|
|
25
24
|
const result = {
|
|
26
|
-
config: {
|
|
27
|
-
includes: undefined,
|
|
28
|
-
excludes: undefined,
|
|
29
|
-
dtsOutDir: undefined,
|
|
30
|
-
arbitraryExtensions: undefined,
|
|
31
|
-
},
|
|
25
|
+
config: {},
|
|
32
26
|
diagnostics: [],
|
|
33
27
|
};
|
|
34
28
|
if (typeof raw !== 'object' || raw === null)
|
|
@@ -74,6 +68,30 @@ function parseRawData(raw, tsConfigSourceFile) {
|
|
|
74
68
|
});
|
|
75
69
|
}
|
|
76
70
|
}
|
|
71
|
+
if ('namedExports' in raw.cmkOptions) {
|
|
72
|
+
if (typeof raw.cmkOptions.namedExports === 'boolean') {
|
|
73
|
+
result.config.namedExports = raw.cmkOptions.namedExports;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
result.diagnostics.push({
|
|
77
|
+
category: 'error',
|
|
78
|
+
text: `\`namedExports\` in ${tsConfigSourceFile.fileName} must be a boolean.`,
|
|
79
|
+
// MEMO: Location information can be obtained from `tsConfigSourceFile.statements`, but this is complicated and will be omitted.
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if ('prioritizeNamedImports' in raw.cmkOptions) {
|
|
84
|
+
if (typeof raw.cmkOptions.prioritizeNamedImports === 'boolean') {
|
|
85
|
+
result.config.prioritizeNamedImports = raw.cmkOptions.prioritizeNamedImports;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
result.diagnostics.push({
|
|
89
|
+
category: 'error',
|
|
90
|
+
text: `\`prioritizeNamedImports\` in ${tsConfigSourceFile.fileName} must be a boolean.`,
|
|
91
|
+
// MEMO: Location information can be obtained from `tsConfigSourceFile.statements`, but this is complicated and will be omitted.
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
77
95
|
}
|
|
78
96
|
return result;
|
|
79
97
|
}
|
|
@@ -87,6 +105,8 @@ function mergeParsedRawData(base, overrides) {
|
|
|
87
105
|
result.config.dtsOutDir = overrides.config.dtsOutDir;
|
|
88
106
|
if (overrides.config.arbitraryExtensions !== undefined)
|
|
89
107
|
result.config.arbitraryExtensions = overrides.config.arbitraryExtensions;
|
|
108
|
+
if (overrides.config.namedExports !== undefined)
|
|
109
|
+
result.config.namedExports = overrides.config.namedExports;
|
|
90
110
|
result.diagnostics.push(...overrides.diagnostics);
|
|
91
111
|
return result;
|
|
92
112
|
}
|
|
@@ -133,20 +153,6 @@ function readTsConfigFile(project) {
|
|
|
133
153
|
...parsedRawData,
|
|
134
154
|
};
|
|
135
155
|
}
|
|
136
|
-
/**
|
|
137
|
-
* Normalize `UnnormalizedRawConfig`. Resolve relative paths to absolute paths, and set default values for missing options.
|
|
138
|
-
* @param basePath A root directory to resolve relative path entries in the config file to.
|
|
139
|
-
*/
|
|
140
|
-
function normalizeConfig(config, basePath) {
|
|
141
|
-
return {
|
|
142
|
-
// If `include` is not specified, fallback to the default include spec.
|
|
143
|
-
// ref: https://github.com/microsoft/TypeScript/blob/caf1aee269d1660b4d2a8b555c2d602c97cb28d7/src/compiler/commandLineParser.ts#L3102
|
|
144
|
-
includes: (config.includes ?? [DEFAULT_INCLUDE_SPEC]).map((i) => (0, path_js_1.join)(basePath, i)),
|
|
145
|
-
excludes: (config.excludes ?? []).map((e) => (0, path_js_1.join)(basePath, e)),
|
|
146
|
-
dtsOutDir: (0, path_js_1.join)(basePath, config.dtsOutDir ?? 'generated'),
|
|
147
|
-
arbitraryExtensions: config.arbitraryExtensions ?? false,
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
156
|
/**
|
|
151
157
|
* Reads the `tsconfig.json` file and returns the normalized config.
|
|
152
158
|
* Even if the `tsconfig.json` file contains syntax or semantic errors,
|
|
@@ -159,7 +165,14 @@ function readConfigFile(project) {
|
|
|
159
165
|
const { configFileName, config, compilerOptions, diagnostics } = readTsConfigFile(project);
|
|
160
166
|
const basePath = (0, path_js_1.dirname)(configFileName);
|
|
161
167
|
return {
|
|
162
|
-
|
|
168
|
+
// If `include` is not specified, fallback to the default include spec.
|
|
169
|
+
// ref: https://github.com/microsoft/TypeScript/blob/caf1aee269d1660b4d2a8b555c2d602c97cb28d7/src/compiler/commandLineParser.ts#L3102
|
|
170
|
+
includes: (config.includes ?? [DEFAULT_INCLUDE_SPEC]).map((i) => (0, path_js_1.join)(basePath, i)),
|
|
171
|
+
excludes: (config.excludes ?? []).map((e) => (0, path_js_1.join)(basePath, e)),
|
|
172
|
+
dtsOutDir: (0, path_js_1.join)(basePath, config.dtsOutDir ?? 'generated'),
|
|
173
|
+
arbitraryExtensions: config.arbitraryExtensions ?? false,
|
|
174
|
+
namedExports: config.namedExports ?? false,
|
|
175
|
+
prioritizeNamedImports: config.prioritizeNamedImports ?? false,
|
|
163
176
|
basePath,
|
|
164
177
|
configFileName,
|
|
165
178
|
compilerOptions,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAoFA,4CAOC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/dts-creator.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { CSSModule, MatchesPattern, Resolver } from './type.js';
|
|
2
2
|
export declare const STYLES_EXPORT_NAME = "styles";
|
|
3
|
-
export interface
|
|
3
|
+
export interface CreateDtsHost {
|
|
4
4
|
resolver: Resolver;
|
|
5
5
|
matchesPattern: MatchesPattern;
|
|
6
6
|
}
|
|
7
|
+
export interface CreateDtsOptions {
|
|
8
|
+
namedExports: boolean;
|
|
9
|
+
prioritizeNamedImports: boolean;
|
|
10
|
+
/** Generate .d.ts for ts-plugin */
|
|
11
|
+
forTsPlugin: boolean;
|
|
12
|
+
}
|
|
7
13
|
interface CodeMapping {
|
|
8
14
|
/** The source offsets of the tokens in the *.module.css file. */
|
|
9
15
|
sourceOffsets: number[];
|
|
@@ -23,33 +29,14 @@ interface LinkedCodeMapping extends CodeMapping {
|
|
|
23
29
|
/** The length of the second code to be linked. */
|
|
24
30
|
generatedLengths: number[];
|
|
25
31
|
}
|
|
26
|
-
|
|
27
|
-
* Create a d.ts file from a CSS module file.
|
|
28
|
-
* @example
|
|
29
|
-
* If the CSS module file is:
|
|
30
|
-
* ```css
|
|
31
|
-
* @import './a.module.css';
|
|
32
|
-
* @value local1: string;
|
|
33
|
-
* @value imported1, imported2 as aliasedImported2 from './b.module.css';
|
|
34
|
-
* .local2 { color: red }
|
|
35
|
-
* ```
|
|
36
|
-
* The d.ts file would be:
|
|
37
|
-
* ```ts
|
|
38
|
-
* // @ts-nocheck
|
|
39
|
-
* const styles = {
|
|
40
|
-
* local1: '' as readonly string,
|
|
41
|
-
* local2: '' as readonly string,
|
|
42
|
-
* ...(await import('./a.module.css')).default,
|
|
43
|
-
* imported1: (await import('./b.module.css')).default.imported1,
|
|
44
|
-
* aliasedImported2: (await import('./b.module.css')).default.imported2,
|
|
45
|
-
* };
|
|
46
|
-
* export default styles;
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
export declare function createDts({ fileName, localTokens, tokenImporters: _tokenImporters }: CSSModule, options: CreateDtsOptions): {
|
|
32
|
+
interface CreateDtsResult {
|
|
50
33
|
text: string;
|
|
51
34
|
mapping: CodeMapping;
|
|
52
35
|
linkedCodeMapping: LinkedCodeMapping;
|
|
53
|
-
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Create a d.ts file.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createDts(cssModules: CSSModule, host: CreateDtsHost, options: CreateDtsOptions): CreateDtsResult;
|
|
54
41
|
export {};
|
|
55
42
|
//# sourceMappingURL=dts-creator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts-creator.d.ts","sourceRoot":"","sources":["../src/dts-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"dts-creator.d.ts","sourceRoot":"","sources":["../src/dts-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAwB,MAAM,WAAW,CAAC;AAE3F,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;IAChC,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,iEAAiE;IACjE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,8CAA8C;AAE9C,UAAU,iBAAkB,SAAQ,WAAW;IAC7C,iDAAiD;IACjD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iDAAiD;IACjD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAWhH"}
|
package/dist/dts-creator.js
CHANGED
|
@@ -4,7 +4,115 @@ exports.STYLES_EXPORT_NAME = void 0;
|
|
|
4
4
|
exports.createDts = createDts;
|
|
5
5
|
exports.STYLES_EXPORT_NAME = 'styles';
|
|
6
6
|
/**
|
|
7
|
-
* Create a d.ts file
|
|
7
|
+
* Create a d.ts file.
|
|
8
|
+
*/
|
|
9
|
+
function createDts(cssModules, host, options) {
|
|
10
|
+
// Filter external files
|
|
11
|
+
const tokenImporters = cssModules.tokenImporters.filter((tokenImporter) => {
|
|
12
|
+
const resolved = host.resolver(tokenImporter.from, { request: cssModules.fileName });
|
|
13
|
+
return resolved !== undefined && host.matchesPattern(resolved);
|
|
14
|
+
});
|
|
15
|
+
if (options.namedExports) {
|
|
16
|
+
return createNamedExportsDts(cssModules.localTokens, tokenImporters, options);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return createDefaultExportDts(cssModules.localTokens, tokenImporters);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create a d.ts file with named exports.
|
|
24
|
+
* @example
|
|
25
|
+
* If the CSS module file is:
|
|
26
|
+
* ```css
|
|
27
|
+
* @import './a.module.css';
|
|
28
|
+
* @value local1: string;
|
|
29
|
+
* @value imported1, imported2 as aliasedImported2 from './b.module.css';
|
|
30
|
+
* .local2 { color: red }
|
|
31
|
+
* ```
|
|
32
|
+
* The d.ts file would be:
|
|
33
|
+
* ```ts
|
|
34
|
+
* // @ts-nocheck
|
|
35
|
+
* export var local1: string;
|
|
36
|
+
* export var local2: string;
|
|
37
|
+
* export * from './a.module.css';
|
|
38
|
+
* export {
|
|
39
|
+
* imported1,
|
|
40
|
+
* imported2 as aliasedImported2,
|
|
41
|
+
* } from './b.module.css';
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
function createNamedExportsDts(localTokens, tokenImporters, options) {
|
|
45
|
+
const mapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
|
|
46
|
+
const linkedCodeMapping = {
|
|
47
|
+
sourceOffsets: [],
|
|
48
|
+
lengths: [],
|
|
49
|
+
generatedOffsets: [],
|
|
50
|
+
generatedLengths: [],
|
|
51
|
+
};
|
|
52
|
+
// MEMO: Depending on the TypeScript compilation options, the generated type definition file contains compile errors.
|
|
53
|
+
// For example, it contains `Top-level 'await' expressions are only allowed when the 'module' option is set to ...` error.
|
|
54
|
+
//
|
|
55
|
+
// If `--skipLibCheck` is false, those errors will be reported by `tsc`. However, these are negligible errors.
|
|
56
|
+
// Therefore, `@ts-nocheck` is added to the generated type definition file.
|
|
57
|
+
let text = `// @ts-nocheck\n`;
|
|
58
|
+
for (const token of localTokens) {
|
|
59
|
+
text += `export var `;
|
|
60
|
+
mapping.sourceOffsets.push(token.loc.start.offset);
|
|
61
|
+
mapping.generatedOffsets.push(text.length);
|
|
62
|
+
mapping.lengths.push(token.name.length);
|
|
63
|
+
text += `${token.name}: string;\n`;
|
|
64
|
+
}
|
|
65
|
+
for (const tokenImporter of tokenImporters) {
|
|
66
|
+
if (tokenImporter.type === 'import') {
|
|
67
|
+
text += `export * from `;
|
|
68
|
+
mapping.sourceOffsets.push(tokenImporter.fromLoc.start.offset - 1);
|
|
69
|
+
mapping.lengths.push(tokenImporter.from.length + 2);
|
|
70
|
+
mapping.generatedOffsets.push(text.length);
|
|
71
|
+
text += `'${tokenImporter.from}';\n`;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
text += `export {\n`;
|
|
75
|
+
// eslint-disable-next-line no-loop-func
|
|
76
|
+
tokenImporter.values.forEach((value) => {
|
|
77
|
+
const localName = value.localName ?? value.name;
|
|
78
|
+
const localLoc = value.localLoc ?? value.loc;
|
|
79
|
+
text += ` `;
|
|
80
|
+
if ('localName' in value) {
|
|
81
|
+
mapping.sourceOffsets.push(value.loc.start.offset);
|
|
82
|
+
mapping.lengths.push(value.name.length);
|
|
83
|
+
mapping.generatedOffsets.push(text.length);
|
|
84
|
+
linkedCodeMapping.generatedOffsets.push(text.length);
|
|
85
|
+
linkedCodeMapping.generatedLengths.push(value.name.length);
|
|
86
|
+
text += `${value.name} as `;
|
|
87
|
+
mapping.sourceOffsets.push(localLoc.start.offset);
|
|
88
|
+
mapping.lengths.push(localName.length);
|
|
89
|
+
mapping.generatedOffsets.push(text.length);
|
|
90
|
+
linkedCodeMapping.sourceOffsets.push(text.length);
|
|
91
|
+
linkedCodeMapping.lengths.push(localName.length);
|
|
92
|
+
text += `${localName},\n`;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
mapping.sourceOffsets.push(value.loc.start.offset);
|
|
96
|
+
mapping.lengths.push(value.name.length);
|
|
97
|
+
mapping.generatedOffsets.push(text.length);
|
|
98
|
+
text += `${value.name},\n`;
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
text += `} from `;
|
|
102
|
+
mapping.sourceOffsets.push(tokenImporter.fromLoc.start.offset - 1);
|
|
103
|
+
mapping.lengths.push(tokenImporter.from.length + 2);
|
|
104
|
+
mapping.generatedOffsets.push(text.length);
|
|
105
|
+
text += `'${tokenImporter.from}';\n`;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (options.forTsPlugin && !options.prioritizeNamedImports) {
|
|
109
|
+
// Export `styles` to appear in code completion suggestions
|
|
110
|
+
text += 'declare const styles: {};\nexport default styles;\n';
|
|
111
|
+
}
|
|
112
|
+
return { text, mapping, linkedCodeMapping };
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Create a d.ts file with a default export.
|
|
8
116
|
* @example
|
|
9
117
|
* If the CSS module file is:
|
|
10
118
|
* ```css
|
|
@@ -26,7 +134,7 @@ exports.STYLES_EXPORT_NAME = 'styles';
|
|
|
26
134
|
* export default styles;
|
|
27
135
|
* ```
|
|
28
136
|
*/
|
|
29
|
-
function
|
|
137
|
+
function createDefaultExportDts(localTokens, tokenImporters) {
|
|
30
138
|
const mapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
|
|
31
139
|
const linkedCodeMapping = {
|
|
32
140
|
sourceOffsets: [],
|
|
@@ -34,11 +142,6 @@ function createDts({ fileName, localTokens, tokenImporters: _tokenImporters }, o
|
|
|
34
142
|
generatedOffsets: [],
|
|
35
143
|
generatedLengths: [],
|
|
36
144
|
};
|
|
37
|
-
// Filter external files
|
|
38
|
-
const tokenImporters = _tokenImporters.filter((tokenImporter) => {
|
|
39
|
-
const resolved = options.resolver(tokenImporter.from, { request: fileName });
|
|
40
|
-
return resolved !== undefined && options.matchesPattern(resolved);
|
|
41
|
-
});
|
|
42
145
|
// MEMO: Depending on the TypeScript compilation options, the generated type definition file contains compile errors.
|
|
43
146
|
// For example, it contains `Top-level 'await' expressions are only allowed when the 'module' option is set to ...` error.
|
|
44
147
|
//
|
package/dist/dts-creator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts-creator.js","sourceRoot":"","sources":["../src/dts-creator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"dts-creator.js","sourceRoot":"","sources":["../src/dts-creator.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export { createResolver } from './resolver.js';
|
|
|
9
9
|
export { CSS_MODULE_EXTENSION, getCssModuleFileName, isComponentFileName, isCSSModuleFile, findComponentFile, findComponentFileSync, createMatchesPattern, getFileNamesByPattern, } from './file.js';
|
|
10
10
|
export { checkCSSModule } from './checker.js';
|
|
11
11
|
export { createExportBuilder } from './export-builder.js';
|
|
12
|
-
export { join, resolve, relative, dirname, basename, parse,
|
|
12
|
+
export { join, resolve, relative, dirname, basename, parse, isAbsolute } from './path.js';
|
|
13
13
|
export { findUsedTokenNames } from './util.js';
|
|
14
14
|
export { convertDiagnostic, convertDiagnosticWithLocation, convertSystemError } from './diagnostic.js';
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACtH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACtH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.convertSystemError = exports.convertDiagnosticWithLocation = exports.convertDiagnostic = exports.findUsedTokenNames = exports.isAbsolute = exports.
|
|
3
|
+
exports.convertSystemError = exports.convertDiagnosticWithLocation = exports.convertDiagnostic = exports.findUsedTokenNames = exports.isAbsolute = exports.parse = exports.basename = exports.dirname = exports.relative = exports.resolve = exports.join = exports.createExportBuilder = exports.checkCSSModule = exports.getFileNamesByPattern = exports.createMatchesPattern = exports.findComponentFileSync = exports.findComponentFile = exports.isCSSModuleFile = exports.isComponentFileName = exports.getCssModuleFileName = exports.CSS_MODULE_EXTENSION = exports.createResolver = exports.STYLES_EXPORT_NAME = exports.createDts = exports.parseRule = exports.parseCSSModule = exports.SystemError = exports.TsConfigFileNotFoundError = exports.readConfigFile = void 0;
|
|
4
4
|
var config_js_1 = require("./config.js");
|
|
5
5
|
Object.defineProperty(exports, "readConfigFile", { enumerable: true, get: function () { return config_js_1.readConfigFile; } });
|
|
6
6
|
var error_js_1 = require("./error.js");
|
|
@@ -35,7 +35,6 @@ Object.defineProperty(exports, "relative", { enumerable: true, get: function ()
|
|
|
35
35
|
Object.defineProperty(exports, "dirname", { enumerable: true, get: function () { return path_js_1.dirname; } });
|
|
36
36
|
Object.defineProperty(exports, "basename", { enumerable: true, get: function () { return path_js_1.basename; } });
|
|
37
37
|
Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return path_js_1.parse; } });
|
|
38
|
-
Object.defineProperty(exports, "matchesGlob", { enumerable: true, get: function () { return path_js_1.matchesGlob; } });
|
|
39
38
|
Object.defineProperty(exports, "isAbsolute", { enumerable: true, get: function () { return path_js_1.isAbsolute; } });
|
|
40
39
|
var util_js_1 = require("./util.js");
|
|
41
40
|
Object.defineProperty(exports, "findUsedTokenNames", { enumerable: true, get: function () { return util_js_1.findUsedTokenNames; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,uCAAoE;AAA3D,qHAAA,yBAAyB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC/C,sEAAsH;AAA7G,sHAAA,cAAc,OAAA;AACvB,0DAAoD;AAA3C,2GAAA,SAAS,OAAA;AAmBlB,mDAAwF;AAAxD,2GAAA,SAAS,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAC7D,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AACvB,qCASmB;AARjB,+GAAA,oBAAoB,OAAA;AACpB,+GAAA,oBAAoB,OAAA;AACpB,8GAAA,mBAAmB,OAAA;AACnB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,gHAAA,qBAAqB,OAAA;AACrB,+GAAA,oBAAoB,OAAA;AACpB,gHAAA,qBAAqB,OAAA;AAEvB,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AACvB,yDAA0D;AAAjD,wHAAA,mBAAmB,OAAA;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,uCAAoE;AAA3D,qHAAA,yBAAyB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC/C,sEAAsH;AAA7G,sHAAA,cAAc,OAAA;AACvB,0DAAoD;AAA3C,2GAAA,SAAS,OAAA;AAmBlB,mDAAwF;AAAxD,2GAAA,SAAS,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAC7D,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AACvB,qCASmB;AARjB,+GAAA,oBAAoB,OAAA;AACpB,+GAAA,oBAAoB,OAAA;AACpB,8GAAA,mBAAmB,OAAA;AACnB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,gHAAA,qBAAqB,OAAA;AACrB,+GAAA,oBAAoB,OAAA;AACpB,gHAAA,qBAAqB,OAAA;AAEvB,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AACvB,yDAA0D;AAAjD,wHAAA,mBAAmB,OAAA;AAC5B,qCAA0F;AAAjF,+FAAA,IAAI,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,qGAAA,UAAU,OAAA;AACtE,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAC3B,iDAAuG;AAA9F,kHAAA,iBAAiB,OAAA;AAAE,8HAAA,6BAA6B,OAAA;AAAE,mHAAA,kBAAkB,OAAA"}
|
|
@@ -4,6 +4,11 @@ interface ValueDeclaration {
|
|
|
4
4
|
type: 'valueDeclaration';
|
|
5
5
|
name: string;
|
|
6
6
|
loc: Location;
|
|
7
|
+
/**
|
|
8
|
+
* NOTE: The `declarationLoc` for value declaration does not include the trailing semicolon.
|
|
9
|
+
* @example `@value white: #fff` has `declarationLoc` as `{ start: { line: 1, column: 1, offset: 0 }, end: { line: 1, column: 19, offset: 18 } }`.
|
|
10
|
+
*/
|
|
11
|
+
declarationLoc: Location;
|
|
7
12
|
}
|
|
8
13
|
interface ValueImportDeclaration {
|
|
9
14
|
type: 'valueImportDeclaration';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"at-value-parser.d.ts","sourceRoot":"","sources":["../../src/parser/at-value-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAsB,8BAA8B,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/F,UAAU,gBAAgB;IACxB,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,GAAG,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"at-value-parser.d.ts","sourceRoot":"","sources":["../../src/parser/at-value-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAsB,8BAA8B,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/F,UAAU,gBAAgB;IACxB,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,GAAG,EAAE,QAAQ,CAAC;IACd;;;OAGG;IACH,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,wBAAwB,CAAC;IAC/B,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,QAAQ,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACrB,EAAE,CAAC;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,KAAK,aAAa,GAAG,gBAAgB,GAAG,sBAAsB,CAAC;AAE/D,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,8BAA8B,EAAE,CAAC;CAC/C;AAMD;;;;;;;;;;;;;;;;GAgBG;AAGH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAwHhE"}
|
|
@@ -119,7 +119,15 @@ function parseAtValue(atValue) {
|
|
|
119
119
|
column: start.column + name.length,
|
|
120
120
|
offset: start.offset + name.length,
|
|
121
121
|
};
|
|
122
|
-
const parsedAtValue = {
|
|
122
|
+
const parsedAtValue = {
|
|
123
|
+
type: 'valueDeclaration',
|
|
124
|
+
name,
|
|
125
|
+
loc: { start, end },
|
|
126
|
+
declarationLoc: {
|
|
127
|
+
start: atValue.source.start,
|
|
128
|
+
end: atValue.positionBy({ index: atValue.toString().length }),
|
|
129
|
+
},
|
|
130
|
+
};
|
|
123
131
|
return { atValue: parsedAtValue, diagnostics };
|
|
124
132
|
}
|
|
125
133
|
diagnostics.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"at-value-parser.js","sourceRoot":"","sources":["../../src/parser/at-value-parser.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"at-value-parser.js","sourceRoot":"","sources":["../../src/parser/at-value-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-module-parser.d.ts","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EAET,sBAAsB,EAGvB,MAAM,YAAY,CAAC;AAyDpB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,sBAAsB,EAAE,CAAC;CACvC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,qBAAqB,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"css-module-parser.d.ts","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EAET,sBAAsB,EAGvB,MAAM,YAAY,CAAC;AAyDpB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,sBAAsB,EAAE,CAAC;CACvC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,qBAAqB,GAAG,oBAAoB,CAgC5G"}
|
|
@@ -41,7 +41,7 @@ function collectTokens(ast) {
|
|
|
41
41
|
if (atValue === undefined)
|
|
42
42
|
return;
|
|
43
43
|
if (atValue.type === 'valueDeclaration') {
|
|
44
|
-
localTokens.push({ name: atValue.name, loc: atValue.loc });
|
|
44
|
+
localTokens.push({ name: atValue.name, loc: atValue.loc, declarationLoc: atValue.declarationLoc });
|
|
45
45
|
}
|
|
46
46
|
else if (atValue.type === 'valueImportDeclaration') {
|
|
47
47
|
tokenImporters.push({ ...atValue, type: 'value' });
|
|
@@ -66,15 +66,14 @@ function parseCSSModule(text, { fileName, safe }) {
|
|
|
66
66
|
}
|
|
67
67
|
catch (e) {
|
|
68
68
|
if (e instanceof postcss_1.CssSyntaxError) {
|
|
69
|
-
const
|
|
69
|
+
const { line, column, endColumn } = e.input;
|
|
70
70
|
return {
|
|
71
71
|
cssModule: { fileName, text, localTokens: [], tokenImporters: [] },
|
|
72
72
|
diagnostics: [
|
|
73
73
|
{
|
|
74
74
|
file: diagnosticSourceFile,
|
|
75
|
-
start,
|
|
76
|
-
|
|
77
|
-
length: 1,
|
|
75
|
+
start: { line, column },
|
|
76
|
+
length: endColumn !== undefined ? endColumn - column : 1,
|
|
78
77
|
text: e.reason,
|
|
79
78
|
category: 'error',
|
|
80
79
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-module-parser.js","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":";;;;;AA4EA,
|
|
1
|
+
{"version":3,"file":"css-module-parser.js","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,16 @@ export { calcDiagnosticsLocationForSelectorParserNode as calcDiagnosticsLocation
|
|
|
9
9
|
interface ClassSelector {
|
|
10
10
|
/** The class name. It does not include the leading dot. */
|
|
11
11
|
name: string;
|
|
12
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* The location of the class selector.
|
|
14
|
+
* @example `.a {}` has `loc` as `{ start: { line: 1, column: 2, offset: 1 }, end: { line: 1, column: 3, offset: 2 } }`.
|
|
15
|
+
*/
|
|
13
16
|
loc: Location;
|
|
17
|
+
/**
|
|
18
|
+
* The location of the declaration of the token in the source file.
|
|
19
|
+
* @example `.a {}` has `declarationLoc` as `{ start: { line: 1, column: 1, offset: 0 }, end: { line: 1, column: 6, offset: 5 } }`.
|
|
20
|
+
*/
|
|
21
|
+
declarationLoc: Location;
|
|
14
22
|
}
|
|
15
23
|
interface ParseRuleResult {
|
|
16
24
|
classSelectors: ClassSelector[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-parser.d.ts","sourceRoot":"","sources":["../../src/parser/rule-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/F,iBAAS,4CAA4C,CACnD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,cAAc,CAAC,IAAI,GACxB;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAI/C;AACD,OAAO,EAAE,4CAA4C,IAAI,mDAAmD,EAAE,CAAC;AA2F/G,UAAU,aAAa;IACrB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb
|
|
1
|
+
{"version":3,"file":"rule-parser.d.ts","sourceRoot":"","sources":["../../src/parser/rule-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/F,iBAAS,4CAA4C,CACnD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,cAAc,CAAC,IAAI,GACxB;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAI/C;AACD,OAAO,EAAE,4CAA4C,IAAI,mDAAmD,EAAE,CAAC;AA2F/G,UAAU,aAAa;IACrB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,GAAG,EAAE,QAAQ,CAAC;IACd;;;OAGG;IACH,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAED,UAAU,eAAe;IACvB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,EAAE,8BAA8B,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,CAyBrD"}
|
|
@@ -114,6 +114,7 @@ function parseRule(rule) {
|
|
|
114
114
|
return {
|
|
115
115
|
name: className.value,
|
|
116
116
|
loc: { start, end },
|
|
117
|
+
declarationLoc: { start: rule.source.start, end: rule.positionBy({ index: rule.toString().length }) },
|
|
117
118
|
};
|
|
118
119
|
});
|
|
119
120
|
return { classSelectors, diagnostics: result.diagnostics };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-parser.js","sourceRoot":"","sources":["../../src/parser/rule-parser.ts"],"names":[],"mappings":";;;;;AAYyD,2GAAmD;
|
|
1
|
+
{"version":3,"file":"rule-parser.js","sourceRoot":"","sources":["../../src/parser/rule-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/path.d.ts
CHANGED
|
@@ -6,6 +6,5 @@ export declare function relative(from: string, to: string): string;
|
|
|
6
6
|
export declare function dirname(path: string): string;
|
|
7
7
|
export declare function basename(path: string): string;
|
|
8
8
|
export declare function parse(path: string): ParsedPath;
|
|
9
|
-
export declare const matchesGlob: (path: string, pattern: string) => boolean;
|
|
10
9
|
export declare const isAbsolute: (path: string) => boolean;
|
|
11
10
|
//# sourceMappingURL=path.d.ts.map
|
package/dist/path.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAE/C;AAED,wBAAgB,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAElD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAG9C;AAGD,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAE/C;AAED,wBAAgB,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAElD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAG9C;AAGD,eAAO,MAAM,UAAU,2BAAsB,CAAC"}
|
package/dist/path.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isAbsolute =
|
|
6
|
+
exports.isAbsolute = void 0;
|
|
7
7
|
exports.slash = slash;
|
|
8
8
|
exports.join = join;
|
|
9
9
|
exports.resolve = resolve;
|
|
@@ -36,8 +36,6 @@ function parse(path) {
|
|
|
36
36
|
const { root, dir, base, name, ext } = node_path_1.default.parse(path);
|
|
37
37
|
return { root: slash(root), dir: slash(dir), base, name, ext };
|
|
38
38
|
}
|
|
39
|
-
// eslint-disable-next-line n/no-unsupported-features/node-builtins, @typescript-eslint/unbound-method
|
|
40
|
-
exports.matchesGlob = node_path_1.default.matchesGlob;
|
|
41
39
|
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
42
40
|
exports.isAbsolute = node_path_1.default.isAbsolute;
|
|
43
41
|
//# sourceMappingURL=path.js.map
|
package/dist/path.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.js","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":";;;;;;AAMA,sBAEC;AAED,oBAEC;AAED,0BAEC;AAED,4BAEC;AAED,0BAEC;AAED,4BAEC;AAED,sBAGC;AA/BD,iDAAiD;AACjD,0DAAiC;AACjC,4DAA4B;AAE5B,SAAgB,KAAK,CAAC,IAAY;IAChC,OAAO,oBAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,IAAI,CAAC,GAAG,KAAe;IACrC,OAAO,KAAK,CAAC,mBAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,OAAO,CAAC,GAAG,KAAe;IACxC,OAAO,KAAK,CAAC,mBAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY,EAAE,EAAU;IAC/C,OAAO,KAAK,CAAC,mBAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,KAAK,CAAC,mBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY;IACnC,OAAO,KAAK,CAAC,mBAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,KAAK,CAAC,IAAY;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,mBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACjE,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":";;;;;;AAMA,sBAEC;AAED,oBAEC;AAED,0BAEC;AAED,4BAEC;AAED,0BAEC;AAED,4BAEC;AAED,sBAGC;AA/BD,iDAAiD;AACjD,0DAAiC;AACjC,4DAA4B;AAE5B,SAAgB,KAAK,CAAC,IAAY;IAChC,OAAO,oBAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,IAAI,CAAC,GAAG,KAAe;IACrC,OAAO,KAAK,CAAC,mBAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,OAAO,CAAC,GAAG,KAAe;IACxC,OAAO,KAAK,CAAC,mBAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY,EAAE,EAAU;IAC/C,OAAO,KAAK,CAAC,mBAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,KAAK,CAAC,mBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY;IACnC,OAAO,KAAK,CAAC,mBAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,KAAK,CAAC,IAAY;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,mBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACjE,CAAC;AAED,6DAA6D;AAChD,QAAA,UAAU,GAAG,mBAAQ,CAAC,UAAU,CAAC"}
|
package/dist/type.d.ts
CHANGED
|
@@ -32,6 +32,8 @@ export interface Token {
|
|
|
32
32
|
name: string;
|
|
33
33
|
/** The location of the token in the source file. */
|
|
34
34
|
loc: Location;
|
|
35
|
+
/** The location of the declaration of the token in the source file. */
|
|
36
|
+
declarationLoc?: Location;
|
|
35
37
|
}
|
|
36
38
|
/**
|
|
37
39
|
* A token importer using `@import '...'`.
|
package/dist/type.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mDAAmD;AACnD,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,KAAK,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,qEAAqE;AACrE,MAAM,WAAW,KAAK;IACpB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,GAAG,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@css-modules-kit/core",
|
|
3
3
|
"description": "The core of css-modules-kit",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.4.0",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"repository": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"build": "tsc -b tsconfig.build.json"
|
|
25
25
|
},
|
|
26
26
|
"engines": {
|
|
27
|
-
"node": ">=
|
|
27
|
+
"node": ">=20.19.0"
|
|
28
28
|
},
|
|
29
29
|
"publishConfig": {
|
|
30
30
|
"access": "public",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"dist"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"postcss": "^8.
|
|
46
|
+
"postcss": "^8.5.5",
|
|
47
47
|
"postcss-safe-parser": "^7.0.1",
|
|
48
48
|
"postcss-selector-parser": "^7.1.0",
|
|
49
49
|
"postcss-value-parser": "^4.2.0"
|
package/src/config.ts
CHANGED
|
@@ -6,10 +6,6 @@ import type { Diagnostic } from './type.js';
|
|
|
6
6
|
// https://github.com/microsoft/TypeScript/blob/caf1aee269d1660b4d2a8b555c2d602c97cb28d7/src/compiler/commandLineParser.ts#L3006
|
|
7
7
|
const DEFAULT_INCLUDE_SPEC = '**/*';
|
|
8
8
|
|
|
9
|
-
type RemoveUndefined<T> = {
|
|
10
|
-
[K in keyof T]: Exclude<T[K], undefined>;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
9
|
/**
|
|
14
10
|
* The config used by css-modules-kit.
|
|
15
11
|
* This is normalized. Paths are resolved from relative to absolute, and default values are set for missing options.
|
|
@@ -19,6 +15,8 @@ export interface CMKConfig {
|
|
|
19
15
|
excludes: string[];
|
|
20
16
|
dtsOutDir: string;
|
|
21
17
|
arbitraryExtensions: boolean;
|
|
18
|
+
namedExports: boolean;
|
|
19
|
+
prioritizeNamedImports: boolean;
|
|
22
20
|
/**
|
|
23
21
|
* A root directory to resolve relative path entries in the config file to.
|
|
24
22
|
* This is an absolute path.
|
|
@@ -68,10 +66,12 @@ export interface CMKConfig {
|
|
|
68
66
|
* This is unnormalized. Paths are relative, and some options may be omitted.
|
|
69
67
|
*/
|
|
70
68
|
interface UnnormalizedRawConfig {
|
|
71
|
-
includes
|
|
72
|
-
excludes
|
|
73
|
-
dtsOutDir
|
|
74
|
-
arbitraryExtensions
|
|
69
|
+
includes?: string[];
|
|
70
|
+
excludes?: string[];
|
|
71
|
+
dtsOutDir?: string;
|
|
72
|
+
arbitraryExtensions?: boolean;
|
|
73
|
+
namedExports?: boolean;
|
|
74
|
+
prioritizeNamedImports?: boolean;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
/**
|
|
@@ -93,12 +93,7 @@ export function findTsConfigFile(project: string): string | undefined {
|
|
|
93
93
|
|
|
94
94
|
function parseRawData(raw: unknown, tsConfigSourceFile: ts.TsConfigSourceFile): ParsedRawData {
|
|
95
95
|
const result: ParsedRawData = {
|
|
96
|
-
config: {
|
|
97
|
-
includes: undefined,
|
|
98
|
-
excludes: undefined,
|
|
99
|
-
dtsOutDir: undefined,
|
|
100
|
-
arbitraryExtensions: undefined,
|
|
101
|
-
},
|
|
96
|
+
config: {},
|
|
102
97
|
diagnostics: [],
|
|
103
98
|
};
|
|
104
99
|
if (typeof raw !== 'object' || raw === null) return result;
|
|
@@ -143,6 +138,28 @@ function parseRawData(raw: unknown, tsConfigSourceFile: ts.TsConfigSourceFile):
|
|
|
143
138
|
});
|
|
144
139
|
}
|
|
145
140
|
}
|
|
141
|
+
if ('namedExports' in raw.cmkOptions) {
|
|
142
|
+
if (typeof raw.cmkOptions.namedExports === 'boolean') {
|
|
143
|
+
result.config.namedExports = raw.cmkOptions.namedExports;
|
|
144
|
+
} else {
|
|
145
|
+
result.diagnostics.push({
|
|
146
|
+
category: 'error',
|
|
147
|
+
text: `\`namedExports\` in ${tsConfigSourceFile.fileName} must be a boolean.`,
|
|
148
|
+
// MEMO: Location information can be obtained from `tsConfigSourceFile.statements`, but this is complicated and will be omitted.
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if ('prioritizeNamedImports' in raw.cmkOptions) {
|
|
153
|
+
if (typeof raw.cmkOptions.prioritizeNamedImports === 'boolean') {
|
|
154
|
+
result.config.prioritizeNamedImports = raw.cmkOptions.prioritizeNamedImports;
|
|
155
|
+
} else {
|
|
156
|
+
result.diagnostics.push({
|
|
157
|
+
category: 'error',
|
|
158
|
+
text: `\`prioritizeNamedImports\` in ${tsConfigSourceFile.fileName} must be a boolean.`,
|
|
159
|
+
// MEMO: Location information can be obtained from `tsConfigSourceFile.statements`, but this is complicated and will be omitted.
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
146
163
|
}
|
|
147
164
|
return result;
|
|
148
165
|
}
|
|
@@ -155,6 +172,7 @@ function mergeParsedRawData(base: ParsedRawData, overrides: ParsedRawData): Pars
|
|
|
155
172
|
if (overrides.config.dtsOutDir !== undefined) result.config.dtsOutDir = overrides.config.dtsOutDir;
|
|
156
173
|
if (overrides.config.arbitraryExtensions !== undefined)
|
|
157
174
|
result.config.arbitraryExtensions = overrides.config.arbitraryExtensions;
|
|
175
|
+
if (overrides.config.namedExports !== undefined) result.config.namedExports = overrides.config.namedExports;
|
|
158
176
|
result.diagnostics.push(...overrides.diagnostics);
|
|
159
177
|
return result;
|
|
160
178
|
}
|
|
@@ -217,24 +235,6 @@ export function readTsConfigFile(project: string): {
|
|
|
217
235
|
};
|
|
218
236
|
}
|
|
219
237
|
|
|
220
|
-
/**
|
|
221
|
-
* Normalize `UnnormalizedRawConfig`. Resolve relative paths to absolute paths, and set default values for missing options.
|
|
222
|
-
* @param basePath A root directory to resolve relative path entries in the config file to.
|
|
223
|
-
*/
|
|
224
|
-
export function normalizeConfig(
|
|
225
|
-
config: UnnormalizedRawConfig,
|
|
226
|
-
basePath: string,
|
|
227
|
-
): RemoveUndefined<UnnormalizedRawConfig> {
|
|
228
|
-
return {
|
|
229
|
-
// If `include` is not specified, fallback to the default include spec.
|
|
230
|
-
// ref: https://github.com/microsoft/TypeScript/blob/caf1aee269d1660b4d2a8b555c2d602c97cb28d7/src/compiler/commandLineParser.ts#L3102
|
|
231
|
-
includes: (config.includes ?? [DEFAULT_INCLUDE_SPEC]).map((i) => join(basePath, i)),
|
|
232
|
-
excludes: (config.excludes ?? []).map((e) => join(basePath, e)),
|
|
233
|
-
dtsOutDir: join(basePath, config.dtsOutDir ?? 'generated'),
|
|
234
|
-
arbitraryExtensions: config.arbitraryExtensions ?? false,
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
|
|
238
238
|
/**
|
|
239
239
|
* Reads the `tsconfig.json` file and returns the normalized config.
|
|
240
240
|
* Even if the `tsconfig.json` file contains syntax or semantic errors,
|
|
@@ -247,7 +247,14 @@ export function readConfigFile(project: string): CMKConfig {
|
|
|
247
247
|
const { configFileName, config, compilerOptions, diagnostics } = readTsConfigFile(project);
|
|
248
248
|
const basePath = dirname(configFileName);
|
|
249
249
|
return {
|
|
250
|
-
|
|
250
|
+
// If `include` is not specified, fallback to the default include spec.
|
|
251
|
+
// ref: https://github.com/microsoft/TypeScript/blob/caf1aee269d1660b4d2a8b555c2d602c97cb28d7/src/compiler/commandLineParser.ts#L3102
|
|
252
|
+
includes: (config.includes ?? [DEFAULT_INCLUDE_SPEC]).map((i) => join(basePath, i)),
|
|
253
|
+
excludes: (config.excludes ?? []).map((e) => join(basePath, e)),
|
|
254
|
+
dtsOutDir: join(basePath, config.dtsOutDir ?? 'generated'),
|
|
255
|
+
arbitraryExtensions: config.arbitraryExtensions ?? false,
|
|
256
|
+
namedExports: config.namedExports ?? false,
|
|
257
|
+
prioritizeNamedImports: config.prioritizeNamedImports ?? false,
|
|
251
258
|
basePath,
|
|
252
259
|
configFileName,
|
|
253
260
|
compilerOptions,
|
package/src/dts-creator.ts
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
import type { CSSModule, MatchesPattern, Resolver } from './type.js';
|
|
1
|
+
import type { CSSModule, MatchesPattern, Resolver, Token, TokenImporter } from './type.js';
|
|
2
2
|
|
|
3
3
|
export const STYLES_EXPORT_NAME = 'styles';
|
|
4
4
|
|
|
5
|
-
export interface
|
|
5
|
+
export interface CreateDtsHost {
|
|
6
6
|
resolver: Resolver;
|
|
7
7
|
matchesPattern: MatchesPattern;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
export interface CreateDtsOptions {
|
|
11
|
+
namedExports: boolean;
|
|
12
|
+
prioritizeNamedImports: boolean;
|
|
13
|
+
/** Generate .d.ts for ts-plugin */
|
|
14
|
+
forTsPlugin: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
10
17
|
interface CodeMapping {
|
|
11
18
|
/** The source offsets of the tokens in the *.module.css file. */
|
|
12
19
|
sourceOffsets: number[];
|
|
@@ -29,8 +36,127 @@ interface LinkedCodeMapping extends CodeMapping {
|
|
|
29
36
|
generatedLengths: number[];
|
|
30
37
|
}
|
|
31
38
|
|
|
39
|
+
interface CreateDtsResult {
|
|
40
|
+
text: string;
|
|
41
|
+
mapping: CodeMapping;
|
|
42
|
+
linkedCodeMapping: LinkedCodeMapping;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Create a d.ts file.
|
|
47
|
+
*/
|
|
48
|
+
export function createDts(cssModules: CSSModule, host: CreateDtsHost, options: CreateDtsOptions): CreateDtsResult {
|
|
49
|
+
// Filter external files
|
|
50
|
+
const tokenImporters = cssModules.tokenImporters.filter((tokenImporter) => {
|
|
51
|
+
const resolved = host.resolver(tokenImporter.from, { request: cssModules.fileName });
|
|
52
|
+
return resolved !== undefined && host.matchesPattern(resolved);
|
|
53
|
+
});
|
|
54
|
+
if (options.namedExports) {
|
|
55
|
+
return createNamedExportsDts(cssModules.localTokens, tokenImporters, options);
|
|
56
|
+
} else {
|
|
57
|
+
return createDefaultExportDts(cssModules.localTokens, tokenImporters);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Create a d.ts file with named exports.
|
|
63
|
+
* @example
|
|
64
|
+
* If the CSS module file is:
|
|
65
|
+
* ```css
|
|
66
|
+
* @import './a.module.css';
|
|
67
|
+
* @value local1: string;
|
|
68
|
+
* @value imported1, imported2 as aliasedImported2 from './b.module.css';
|
|
69
|
+
* .local2 { color: red }
|
|
70
|
+
* ```
|
|
71
|
+
* The d.ts file would be:
|
|
72
|
+
* ```ts
|
|
73
|
+
* // @ts-nocheck
|
|
74
|
+
* export var local1: string;
|
|
75
|
+
* export var local2: string;
|
|
76
|
+
* export * from './a.module.css';
|
|
77
|
+
* export {
|
|
78
|
+
* imported1,
|
|
79
|
+
* imported2 as aliasedImported2,
|
|
80
|
+
* } from './b.module.css';
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
function createNamedExportsDts(
|
|
84
|
+
localTokens: Token[],
|
|
85
|
+
tokenImporters: TokenImporter[],
|
|
86
|
+
options: CreateDtsOptions,
|
|
87
|
+
): { text: string; mapping: CodeMapping; linkedCodeMapping: LinkedCodeMapping } {
|
|
88
|
+
const mapping: CodeMapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
|
|
89
|
+
const linkedCodeMapping: LinkedCodeMapping = {
|
|
90
|
+
sourceOffsets: [],
|
|
91
|
+
lengths: [],
|
|
92
|
+
generatedOffsets: [],
|
|
93
|
+
generatedLengths: [],
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
// MEMO: Depending on the TypeScript compilation options, the generated type definition file contains compile errors.
|
|
97
|
+
// For example, it contains `Top-level 'await' expressions are only allowed when the 'module' option is set to ...` error.
|
|
98
|
+
//
|
|
99
|
+
// If `--skipLibCheck` is false, those errors will be reported by `tsc`. However, these are negligible errors.
|
|
100
|
+
// Therefore, `@ts-nocheck` is added to the generated type definition file.
|
|
101
|
+
let text = `// @ts-nocheck\n`;
|
|
102
|
+
|
|
103
|
+
for (const token of localTokens) {
|
|
104
|
+
text += `export var `;
|
|
105
|
+
mapping.sourceOffsets.push(token.loc.start.offset);
|
|
106
|
+
mapping.generatedOffsets.push(text.length);
|
|
107
|
+
mapping.lengths.push(token.name.length);
|
|
108
|
+
text += `${token.name}: string;\n`;
|
|
109
|
+
}
|
|
110
|
+
for (const tokenImporter of tokenImporters) {
|
|
111
|
+
if (tokenImporter.type === 'import') {
|
|
112
|
+
text += `export * from `;
|
|
113
|
+
mapping.sourceOffsets.push(tokenImporter.fromLoc.start.offset - 1);
|
|
114
|
+
mapping.lengths.push(tokenImporter.from.length + 2);
|
|
115
|
+
mapping.generatedOffsets.push(text.length);
|
|
116
|
+
text += `'${tokenImporter.from}';\n`;
|
|
117
|
+
} else {
|
|
118
|
+
text += `export {\n`;
|
|
119
|
+
// eslint-disable-next-line no-loop-func
|
|
120
|
+
tokenImporter.values.forEach((value) => {
|
|
121
|
+
const localName = value.localName ?? value.name;
|
|
122
|
+
const localLoc = value.localLoc ?? value.loc;
|
|
123
|
+
text += ` `;
|
|
124
|
+
if ('localName' in value) {
|
|
125
|
+
mapping.sourceOffsets.push(value.loc.start.offset);
|
|
126
|
+
mapping.lengths.push(value.name.length);
|
|
127
|
+
mapping.generatedOffsets.push(text.length);
|
|
128
|
+
linkedCodeMapping.generatedOffsets.push(text.length);
|
|
129
|
+
linkedCodeMapping.generatedLengths.push(value.name.length);
|
|
130
|
+
text += `${value.name} as `;
|
|
131
|
+
mapping.sourceOffsets.push(localLoc.start.offset);
|
|
132
|
+
mapping.lengths.push(localName.length);
|
|
133
|
+
mapping.generatedOffsets.push(text.length);
|
|
134
|
+
linkedCodeMapping.sourceOffsets.push(text.length);
|
|
135
|
+
linkedCodeMapping.lengths.push(localName.length);
|
|
136
|
+
text += `${localName},\n`;
|
|
137
|
+
} else {
|
|
138
|
+
mapping.sourceOffsets.push(value.loc.start.offset);
|
|
139
|
+
mapping.lengths.push(value.name.length);
|
|
140
|
+
mapping.generatedOffsets.push(text.length);
|
|
141
|
+
text += `${value.name},\n`;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
text += `} from `;
|
|
145
|
+
mapping.sourceOffsets.push(tokenImporter.fromLoc.start.offset - 1);
|
|
146
|
+
mapping.lengths.push(tokenImporter.from.length + 2);
|
|
147
|
+
mapping.generatedOffsets.push(text.length);
|
|
148
|
+
text += `'${tokenImporter.from}';\n`;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (options.forTsPlugin && !options.prioritizeNamedImports) {
|
|
152
|
+
// Export `styles` to appear in code completion suggestions
|
|
153
|
+
text += 'declare const styles: {};\nexport default styles;\n';
|
|
154
|
+
}
|
|
155
|
+
return { text, mapping, linkedCodeMapping };
|
|
156
|
+
}
|
|
157
|
+
|
|
32
158
|
/**
|
|
33
|
-
* Create a d.ts file
|
|
159
|
+
* Create a d.ts file with a default export.
|
|
34
160
|
* @example
|
|
35
161
|
* If the CSS module file is:
|
|
36
162
|
* ```css
|
|
@@ -52,9 +178,9 @@ interface LinkedCodeMapping extends CodeMapping {
|
|
|
52
178
|
* export default styles;
|
|
53
179
|
* ```
|
|
54
180
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
181
|
+
function createDefaultExportDts(
|
|
182
|
+
localTokens: Token[],
|
|
183
|
+
tokenImporters: TokenImporter[],
|
|
58
184
|
): { text: string; mapping: CodeMapping; linkedCodeMapping: LinkedCodeMapping } {
|
|
59
185
|
const mapping: CodeMapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
|
|
60
186
|
const linkedCodeMapping: LinkedCodeMapping = {
|
|
@@ -64,12 +190,6 @@ export function createDts(
|
|
|
64
190
|
generatedLengths: [],
|
|
65
191
|
};
|
|
66
192
|
|
|
67
|
-
// Filter external files
|
|
68
|
-
const tokenImporters = _tokenImporters.filter((tokenImporter) => {
|
|
69
|
-
const resolved = options.resolver(tokenImporter.from, { request: fileName });
|
|
70
|
-
return resolved !== undefined && options.matchesPattern(resolved);
|
|
71
|
-
});
|
|
72
|
-
|
|
73
193
|
// MEMO: Depending on the TypeScript compilation options, the generated type definition file contains compile errors.
|
|
74
194
|
// For example, it contains `Top-level 'await' expressions are only allowed when the 'module' option is set to ...` error.
|
|
75
195
|
//
|
package/src/index.ts
CHANGED
|
@@ -35,6 +35,6 @@ export {
|
|
|
35
35
|
} from './file.js';
|
|
36
36
|
export { checkCSSModule } from './checker.js';
|
|
37
37
|
export { createExportBuilder } from './export-builder.js';
|
|
38
|
-
export { join, resolve, relative, dirname, basename, parse,
|
|
38
|
+
export { join, resolve, relative, dirname, basename, parse, isAbsolute } from './path.js';
|
|
39
39
|
export { findUsedTokenNames } from './util.js';
|
|
40
40
|
export { convertDiagnostic, convertDiagnosticWithLocation, convertSystemError } from './diagnostic.js';
|
|
@@ -6,6 +6,11 @@ interface ValueDeclaration {
|
|
|
6
6
|
name: string;
|
|
7
7
|
// value: string; // unused
|
|
8
8
|
loc: Location;
|
|
9
|
+
/**
|
|
10
|
+
* NOTE: The `declarationLoc` for value declaration does not include the trailing semicolon.
|
|
11
|
+
* @example `@value white: #fff` has `declarationLoc` as `{ start: { line: 1, column: 1, offset: 0 }, end: { line: 1, column: 19, offset: 18 } }`.
|
|
12
|
+
*/
|
|
13
|
+
declarationLoc: Location;
|
|
9
14
|
}
|
|
10
15
|
|
|
11
16
|
interface ValueImportDeclaration {
|
|
@@ -149,7 +154,15 @@ export function parseAtValue(atValue: AtRule): ParseAtValueResult {
|
|
|
149
154
|
column: start.column + name.length,
|
|
150
155
|
offset: start.offset + name.length,
|
|
151
156
|
};
|
|
152
|
-
const parsedAtValue
|
|
157
|
+
const parsedAtValue: ValueDeclaration = {
|
|
158
|
+
type: 'valueDeclaration',
|
|
159
|
+
name,
|
|
160
|
+
loc: { start, end },
|
|
161
|
+
declarationLoc: {
|
|
162
|
+
start: atValue.source!.start!,
|
|
163
|
+
end: atValue.positionBy({ index: atValue.toString().length }),
|
|
164
|
+
},
|
|
165
|
+
} as const;
|
|
153
166
|
return { atValue: parsedAtValue, diagnostics };
|
|
154
167
|
}
|
|
155
168
|
diagnostics.push({
|
|
@@ -49,7 +49,7 @@ function collectTokens(ast: Root) {
|
|
|
49
49
|
allDiagnostics.push(...diagnostics);
|
|
50
50
|
if (atValue === undefined) return;
|
|
51
51
|
if (atValue.type === 'valueDeclaration') {
|
|
52
|
-
localTokens.push({ name: atValue.name, loc: atValue.loc });
|
|
52
|
+
localTokens.push({ name: atValue.name, loc: atValue.loc, declarationLoc: atValue.declarationLoc });
|
|
53
53
|
} else if (atValue.type === 'valueImportDeclaration') {
|
|
54
54
|
tokenImporters.push({ ...atValue, type: 'value' });
|
|
55
55
|
}
|
|
@@ -82,15 +82,14 @@ export function parseCSSModule(text: string, { fileName, safe }: ParseCSSModuleO
|
|
|
82
82
|
ast = parser(text, { from: fileName });
|
|
83
83
|
} catch (e) {
|
|
84
84
|
if (e instanceof CssSyntaxError) {
|
|
85
|
-
const
|
|
85
|
+
const { line, column, endColumn } = e.input!;
|
|
86
86
|
return {
|
|
87
87
|
cssModule: { fileName, text, localTokens: [], tokenImporters: [] },
|
|
88
88
|
diagnostics: [
|
|
89
89
|
{
|
|
90
90
|
file: diagnosticSourceFile,
|
|
91
|
-
start,
|
|
92
|
-
|
|
93
|
-
length: 1,
|
|
91
|
+
start: { line, column },
|
|
92
|
+
length: endColumn !== undefined ? endColumn - column : 1,
|
|
94
93
|
text: e.reason,
|
|
95
94
|
category: 'error',
|
|
96
95
|
},
|
|
@@ -104,8 +104,16 @@ function collectLocalClassNames(rule: Rule, root: selectorParser.Root): CollectR
|
|
|
104
104
|
interface ClassSelector {
|
|
105
105
|
/** The class name. It does not include the leading dot. */
|
|
106
106
|
name: string;
|
|
107
|
-
/**
|
|
107
|
+
/**
|
|
108
|
+
* The location of the class selector.
|
|
109
|
+
* @example `.a {}` has `loc` as `{ start: { line: 1, column: 2, offset: 1 }, end: { line: 1, column: 3, offset: 2 } }`.
|
|
110
|
+
*/
|
|
108
111
|
loc: Location;
|
|
112
|
+
/**
|
|
113
|
+
* The location of the declaration of the token in the source file.
|
|
114
|
+
* @example `.a {}` has `declarationLoc` as `{ start: { line: 1, column: 1, offset: 0 }, end: { line: 1, column: 6, offset: 5 } }`.
|
|
115
|
+
*/
|
|
116
|
+
declarationLoc: Location;
|
|
109
117
|
}
|
|
110
118
|
|
|
111
119
|
interface ParseRuleResult {
|
|
@@ -119,7 +127,7 @@ interface ParseRuleResult {
|
|
|
119
127
|
export function parseRule(rule: Rule): ParseRuleResult {
|
|
120
128
|
const root = selectorParser().astSync(rule);
|
|
121
129
|
const result = collectLocalClassNames(rule, root);
|
|
122
|
-
const classSelectors = result.classNames.map((className) => {
|
|
130
|
+
const classSelectors: ClassSelector[] = result.classNames.map((className) => {
|
|
123
131
|
// If `rule` is `.a, .b { color: red; }` and `className` is `.b`,
|
|
124
132
|
// `rule.source` is `{ start: { line: 1, column: 1 }, end: { line: 1, column: 22 } }`
|
|
125
133
|
// And `className.source` is `{ start: { line: 1, column: 5 }, end: { line: 1, column: 6 } }`.
|
|
@@ -137,6 +145,7 @@ export function parseRule(rule: Rule): ParseRuleResult {
|
|
|
137
145
|
return {
|
|
138
146
|
name: className.value,
|
|
139
147
|
loc: { start, end },
|
|
148
|
+
declarationLoc: { start: rule.source!.start!, end: rule.positionBy({ index: rule.toString().length }) },
|
|
140
149
|
};
|
|
141
150
|
});
|
|
142
151
|
return { classSelectors, diagnostics: result.diagnostics };
|
package/src/path.ts
CHANGED
|
@@ -33,8 +33,5 @@ export function parse(path: string): ParsedPath {
|
|
|
33
33
|
return { root: slash(root), dir: slash(dir), base, name, ext };
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
// eslint-disable-next-line n/no-unsupported-features/node-builtins, @typescript-eslint/unbound-method
|
|
37
|
-
export const matchesGlob = nodePath.matchesGlob;
|
|
38
|
-
|
|
39
36
|
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
40
37
|
export const isAbsolute = nodePath.isAbsolute;
|
package/src/type.ts
CHANGED