@css-modules-kit/core 0.5.1 → 0.7.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 +6 -31
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +49 -55
- package/dist/config.js.map +1 -1
- package/dist/diagnostic.d.ts.map +1 -1
- package/dist/diagnostic.js +0 -4
- package/dist/diagnostic.js.map +1 -1
- package/dist/{dts-creator.d.ts → dts-generator.d.ts} +6 -6
- package/dist/dts-generator.d.ts.map +1 -0
- package/dist/{dts-creator.js → dts-generator.js} +13 -13
- package/dist/dts-generator.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/parser/css-module-parser.d.ts +9 -7
- package/dist/parser/css-module-parser.d.ts.map +1 -1
- package/dist/parser/css-module-parser.js +34 -26
- package/dist/parser/css-module-parser.js.map +1 -1
- package/dist/type.d.ts +3 -1
- package/dist/type.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config.ts +57 -56
- package/src/diagnostic.ts +2 -6
- package/src/{dts-creator.ts → dts-generator.ts} +20 -16
- package/src/index.ts +2 -2
- package/src/parser/css-module-parser.ts +38 -32
- package/src/type.ts +3 -1
- package/dist/dts-creator.d.ts.map +0 -1
- package/dist/dts-creator.js.map +0 -1
package/dist/config.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export interface CMKConfig {
|
|
|
11
11
|
arbitraryExtensions: boolean;
|
|
12
12
|
namedExports: boolean;
|
|
13
13
|
prioritizeNamedImports: boolean;
|
|
14
|
+
keyframes: boolean;
|
|
14
15
|
/**
|
|
15
16
|
* A root directory to resolve relative path entries in the config file to.
|
|
16
17
|
* This is an absolute path.
|
|
@@ -51,40 +52,14 @@ export interface CMKConfig {
|
|
|
51
52
|
basePath: string;
|
|
52
53
|
configFileName: string;
|
|
53
54
|
compilerOptions: ts.CompilerOptions;
|
|
55
|
+
/** The directories to watch when watch mode is enabled. */
|
|
56
|
+
wildcardDirectories: {
|
|
57
|
+
fileName: string;
|
|
58
|
+
recursive: boolean;
|
|
59
|
+
}[];
|
|
54
60
|
/** The diagnostics that occurred while reading the config file. */
|
|
55
61
|
diagnostics: Diagnostic[];
|
|
56
62
|
}
|
|
57
|
-
/**
|
|
58
|
-
* The config loaded from `ts.ParsedCommandLine['raw']`.
|
|
59
|
-
* This is unnormalized. Paths are relative, and some options may be omitted.
|
|
60
|
-
*/
|
|
61
|
-
interface UnnormalizedRawConfig {
|
|
62
|
-
includes?: string[];
|
|
63
|
-
excludes?: string[];
|
|
64
|
-
dtsOutDir?: string;
|
|
65
|
-
arbitraryExtensions?: boolean;
|
|
66
|
-
namedExports?: boolean;
|
|
67
|
-
prioritizeNamedImports?: boolean;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* The validated data of `ts.ParsedCommandLine['raw']`.
|
|
71
|
-
*/
|
|
72
|
-
interface ParsedRawData {
|
|
73
|
-
config: UnnormalizedRawConfig;
|
|
74
|
-
diagnostics: Diagnostic[];
|
|
75
|
-
}
|
|
76
|
-
export declare function findTsConfigFile(project: string): string | undefined;
|
|
77
|
-
declare function parseRawData(raw: unknown, tsConfigSourceFile: ts.TsConfigSourceFile): ParsedRawData;
|
|
78
|
-
export { parseRawData as parseRawDataForTest };
|
|
79
|
-
/**
|
|
80
|
-
* @throws {TsConfigFileNotFoundError}
|
|
81
|
-
*/
|
|
82
|
-
export declare function readTsConfigFile(project: string): {
|
|
83
|
-
configFileName: string;
|
|
84
|
-
config: UnnormalizedRawConfig;
|
|
85
|
-
compilerOptions: ts.CompilerOptions;
|
|
86
|
-
diagnostics: Diagnostic[];
|
|
87
|
-
};
|
|
88
63
|
/**
|
|
89
64
|
* Reads the `tsconfig.json` file and returns the normalized config.
|
|
90
65
|
* 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;;;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,
|
|
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,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,2DAA2D;IAC3D,mBAAmB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAChE,mEAAmE;IACnE,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AA4JD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAmCzD"}
|
package/dist/config.js
CHANGED
|
@@ -3,9 +3,6 @@ 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.findTsConfigFile = findTsConfigFile;
|
|
7
|
-
exports.parseRawDataForTest = parseRawData;
|
|
8
|
-
exports.readTsConfigFile = readTsConfigFile;
|
|
9
6
|
exports.readConfigFile = readConfigFile;
|
|
10
7
|
const typescript_1 = __importDefault(require("typescript"));
|
|
11
8
|
const error_js_1 = require("./error.js");
|
|
@@ -20,6 +17,9 @@ function findTsConfigFile(project) {
|
|
|
20
17
|
return undefined;
|
|
21
18
|
return (0, path_js_1.resolve)(configFile);
|
|
22
19
|
}
|
|
20
|
+
function isTsConfigFileExists(fileName) {
|
|
21
|
+
return typescript_1.default.findConfigFile((0, path_js_1.dirname)(fileName), typescript_1.default.sys.fileExists.bind(typescript_1.default.sys), (0, path_js_1.basename)(fileName)) !== undefined;
|
|
22
|
+
}
|
|
23
23
|
function parseRawData(raw, tsConfigSourceFile) {
|
|
24
24
|
const result = {
|
|
25
25
|
config: {},
|
|
@@ -68,6 +68,17 @@ function parseRawData(raw, tsConfigSourceFile) {
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
+
if ('keyframes' in raw.cmkOptions) {
|
|
72
|
+
if (typeof raw.cmkOptions.keyframes === 'boolean') {
|
|
73
|
+
result.config.keyframes = raw.cmkOptions.keyframes;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
result.diagnostics.push({
|
|
77
|
+
category: 'error',
|
|
78
|
+
text: `\`keyframes\` in ${tsConfigSourceFile.fileName} must be a boolean.`,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
71
82
|
if ('namedExports' in raw.cmkOptions) {
|
|
72
83
|
if (typeof raw.cmkOptions.namedExports === 'boolean') {
|
|
73
84
|
result.config.namedExports = raw.cmkOptions.namedExports;
|
|
@@ -95,34 +106,13 @@ function parseRawData(raw, tsConfigSourceFile) {
|
|
|
95
106
|
}
|
|
96
107
|
return result;
|
|
97
108
|
}
|
|
98
|
-
function
|
|
99
|
-
const
|
|
100
|
-
if (overrides.config.includes !== undefined)
|
|
101
|
-
result.config.includes = overrides.config.includes;
|
|
102
|
-
if (overrides.config.excludes !== undefined)
|
|
103
|
-
result.config.excludes = overrides.config.excludes;
|
|
104
|
-
if (overrides.config.dtsOutDir !== undefined)
|
|
105
|
-
result.config.dtsOutDir = overrides.config.dtsOutDir;
|
|
106
|
-
if (overrides.config.arbitraryExtensions !== undefined)
|
|
107
|
-
result.config.arbitraryExtensions = overrides.config.arbitraryExtensions;
|
|
108
|
-
if (overrides.config.namedExports !== undefined)
|
|
109
|
-
result.config.namedExports = overrides.config.namedExports;
|
|
110
|
-
result.diagnostics.push(...overrides.diagnostics);
|
|
111
|
-
return result;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* @throws {TsConfigFileNotFoundError}
|
|
115
|
-
*/
|
|
116
|
-
function readTsConfigFile(project) {
|
|
117
|
-
const configFileName = findTsConfigFile(project);
|
|
118
|
-
if (!configFileName)
|
|
119
|
-
throw new error_js_1.TsConfigFileNotFoundError();
|
|
120
|
-
const tsConfigSourceFile = typescript_1.default.readJsonConfigFile(configFileName, typescript_1.default.sys.readFile.bind(typescript_1.default.sys));
|
|
109
|
+
function parseTsConfigFile(fileName) {
|
|
110
|
+
const tsConfigSourceFile = typescript_1.default.readJsonConfigFile(fileName, typescript_1.default.sys.readFile.bind(typescript_1.default.sys));
|
|
121
111
|
// MEMO: `tsConfigSourceFile.parseDiagnostics` (Internal API) contains a syntax error for `tsconfig.json`.
|
|
122
112
|
// However, it is ignored so that ts-plugin will work even if `tsconfig.json` is somewhat broken.
|
|
123
113
|
// Also, this error is reported to the user by `tsc` or `tsserver`.
|
|
124
114
|
// We discard it since there is no need to report it from css-modules-kit.
|
|
125
|
-
const parsedCommandLine = typescript_1.default.parseJsonSourceFileConfigFileContent(tsConfigSourceFile, typescript_1.default.sys, (0, path_js_1.dirname)(
|
|
115
|
+
const parsedCommandLine = typescript_1.default.parseJsonSourceFileConfigFileContent(tsConfigSourceFile, typescript_1.default.sys, (0, path_js_1.dirname)(fileName), undefined, fileName, undefined, [
|
|
126
116
|
{
|
|
127
117
|
extension: 'css',
|
|
128
118
|
isMixedContent: false,
|
|
@@ -130,26 +120,14 @@ function readTsConfigFile(project) {
|
|
|
130
120
|
},
|
|
131
121
|
]);
|
|
132
122
|
// Read options from `parsedCommandLine.raw`
|
|
133
|
-
|
|
134
|
-
// The options read from `parsedCommandLine.raw` do not inherit values from the file specified in `extends`.
|
|
135
|
-
// So here we read the options from those files and merge them into `parsedRawData`.
|
|
136
|
-
if (tsConfigSourceFile.extendedSourceFiles) {
|
|
137
|
-
for (const extendedSourceFile of tsConfigSourceFile.extendedSourceFiles) {
|
|
138
|
-
let base;
|
|
139
|
-
try {
|
|
140
|
-
base = readTsConfigFile(extendedSourceFile);
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
if (error instanceof error_js_1.TsConfigFileNotFoundError)
|
|
144
|
-
continue;
|
|
145
|
-
throw error;
|
|
146
|
-
}
|
|
147
|
-
parsedRawData = mergeParsedRawData(base, parsedRawData);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
123
|
+
const parsedRawData = parseRawData(parsedCommandLine.raw, tsConfigSourceFile);
|
|
150
124
|
return {
|
|
151
|
-
|
|
125
|
+
extendedSourceFiles: tsConfigSourceFile.extendedSourceFiles,
|
|
152
126
|
compilerOptions: parsedCommandLine.options,
|
|
127
|
+
wildcardDirectories: Object.entries(parsedCommandLine.wildcardDirectories ?? {}).map(([fileName, flags]) => ({
|
|
128
|
+
fileName,
|
|
129
|
+
recursive: (flags & typescript_1.default.WatchDirectoryFlags.Recursive) !== 0,
|
|
130
|
+
})),
|
|
153
131
|
...parsedRawData,
|
|
154
132
|
};
|
|
155
133
|
}
|
|
@@ -162,21 +140,37 @@ function readTsConfigFile(project) {
|
|
|
162
140
|
* @throws {TsConfigFileNotFoundError}
|
|
163
141
|
*/
|
|
164
142
|
function readConfigFile(project) {
|
|
165
|
-
const
|
|
143
|
+
const configFileName = findTsConfigFile(project);
|
|
144
|
+
if (!configFileName)
|
|
145
|
+
throw new error_js_1.TsConfigFileNotFoundError();
|
|
146
|
+
const parsedTsConfig = parseTsConfigFile(configFileName);
|
|
147
|
+
// The options read from `parsedCommandLine.raw` do not inherit values from the file specified in `extends`.
|
|
148
|
+
// So here we read the options from those files and merge them into `parsedRawData`.
|
|
149
|
+
if (parsedTsConfig.extendedSourceFiles) {
|
|
150
|
+
for (const extendedSourceFile of parsedTsConfig.extendedSourceFiles) {
|
|
151
|
+
if (isTsConfigFileExists(extendedSourceFile)) {
|
|
152
|
+
const base = parseTsConfigFile(extendedSourceFile);
|
|
153
|
+
parsedTsConfig.config = { ...base.config, ...parsedTsConfig.config };
|
|
154
|
+
parsedTsConfig.diagnostics = [...base.diagnostics, ...parsedTsConfig.diagnostics];
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
166
158
|
const basePath = (0, path_js_1.dirname)(configFileName);
|
|
167
159
|
return {
|
|
168
|
-
// If `include` is not specified, fallback to the default include spec
|
|
160
|
+
// If `include` is not specified, fallback to the default include spec。
|
|
169
161
|
// 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,
|
|
162
|
+
includes: (parsedTsConfig.config.includes ?? [DEFAULT_INCLUDE_SPEC]).map((i) => (0, path_js_1.join)(basePath, i)),
|
|
163
|
+
excludes: (parsedTsConfig.config.excludes ?? []).map((e) => (0, path_js_1.join)(basePath, e)),
|
|
164
|
+
dtsOutDir: (0, path_js_1.join)(basePath, parsedTsConfig.config.dtsOutDir ?? 'generated'),
|
|
165
|
+
arbitraryExtensions: parsedTsConfig.config.arbitraryExtensions ?? false,
|
|
166
|
+
namedExports: parsedTsConfig.config.namedExports ?? false,
|
|
167
|
+
prioritizeNamedImports: parsedTsConfig.config.prioritizeNamedImports ?? false,
|
|
168
|
+
keyframes: parsedTsConfig.config.keyframes ?? true,
|
|
176
169
|
basePath,
|
|
177
170
|
configFileName,
|
|
178
|
-
compilerOptions,
|
|
179
|
-
|
|
171
|
+
compilerOptions: parsedTsConfig.compilerOptions,
|
|
172
|
+
wildcardDirectories: parsedTsConfig.wildcardDirectories,
|
|
173
|
+
diagnostics: parsedTsConfig.diagnostics,
|
|
180
174
|
};
|
|
181
175
|
}
|
|
182
176
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAsB,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAgB9G,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,EAAE,CAAC,UAAU,GAC3D,EAAE,CAAC,UAAU,CAcf;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,sBAAsB,EAClC,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,EAAE,CAAC,UAAU,GAC3D,EAAE,CAAC,sBAAsB,CAY3B;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,EAAE,CAAC,UAAU,CAkB1E"}
|
package/dist/diagnostic.js
CHANGED
|
@@ -14,10 +14,6 @@ function convertErrorCategory(category) {
|
|
|
14
14
|
switch (category) {
|
|
15
15
|
case 'error':
|
|
16
16
|
return typescript_1.default.DiagnosticCategory.Error;
|
|
17
|
-
case 'warning':
|
|
18
|
-
return typescript_1.default.DiagnosticCategory.Warning;
|
|
19
|
-
case 'suggestion':
|
|
20
|
-
return typescript_1.default.DiagnosticCategory.Suggestion;
|
|
21
17
|
default:
|
|
22
18
|
throw new Error(`Unknown category: ${String(category)}`);
|
|
23
19
|
}
|
package/dist/diagnostic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":";;;;;AAkBA,8CAiBC;AAED,sEAeC;AAED,gDAkBC;AAxED,4DAA4B;AAI5B,0FAA0F;AAC1F,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C,SAAS,oBAAoB,CAAC,QAA4B;IACxD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,oBAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;QACrC;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAC/B,UAAsB,EACtB,aAA4D;IAE5D,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,OAAO,6BAA6B,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC;YACnD,WAAW,EAAE,UAAU,CAAC,IAAI;YAC5B,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,eAAe;SACxB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,6BAA6B,CAC3C,UAAkC,EAClC,aAA4D;IAE5D,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,oBAAE,CAAC,6BAA6B,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnH,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK;QACL,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC;QACnD,WAAW,EAAE,UAAU,CAAC,IAAI;QAC5B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,eAAe;KACxB,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,WAAwB;IACzD,IAAI,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;IACtC,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,WAAW,CAAC,KAAK,YAAY,KAAK,EAAE,CAAC;YACvC,WAAW,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,WAAW,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,oBAAE,CAAC,kBAAkB,CAAC,KAAK;QACrC,WAAW;QACX,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,eAAe;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
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 GenerateDtsHost {
|
|
4
4
|
resolver: Resolver;
|
|
5
5
|
matchesPattern: MatchesPattern;
|
|
6
6
|
}
|
|
7
|
-
export interface
|
|
7
|
+
export interface GenerateDtsOptions {
|
|
8
8
|
namedExports: boolean;
|
|
9
9
|
prioritizeNamedImports: boolean;
|
|
10
10
|
/** Generate .d.ts for ts-plugin */
|
|
@@ -29,14 +29,14 @@ interface LinkedCodeMapping extends CodeMapping {
|
|
|
29
29
|
/** The length of the second code to be linked. */
|
|
30
30
|
generatedLengths: number[];
|
|
31
31
|
}
|
|
32
|
-
interface
|
|
32
|
+
interface GenerateDtsResult {
|
|
33
33
|
text: string;
|
|
34
34
|
mapping: CodeMapping;
|
|
35
35
|
linkedCodeMapping: LinkedCodeMapping;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* Generate .d.ts from `CSSModule`.
|
|
39
39
|
*/
|
|
40
|
-
export declare function
|
|
40
|
+
export declare function generateDts(cssModule: CSSModule, host: GenerateDtsHost, options: GenerateDtsOptions): GenerateDtsResult;
|
|
41
41
|
export {};
|
|
42
|
-
//# sourceMappingURL=dts-
|
|
42
|
+
//# sourceMappingURL=dts-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dts-generator.d.ts","sourceRoot":"","sources":["../src/dts-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAwB,MAAM,WAAW,CAAC;AAG3F,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,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,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB,CA8BnB"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.STYLES_EXPORT_NAME = void 0;
|
|
4
|
-
exports.
|
|
4
|
+
exports.generateDts = generateDts;
|
|
5
5
|
const util_js_1 = require("./util.js");
|
|
6
6
|
exports.STYLES_EXPORT_NAME = 'styles';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Generate .d.ts from `CSSModule`.
|
|
9
9
|
*/
|
|
10
|
-
function
|
|
10
|
+
function generateDts(cssModule, host, options) {
|
|
11
11
|
// Exclude invalid tokens
|
|
12
|
-
const localTokens =
|
|
13
|
-
const tokenImporters =
|
|
12
|
+
const localTokens = cssModule.localTokens.filter((token) => isValidName(token.name, options));
|
|
13
|
+
const tokenImporters = cssModule.tokenImporters
|
|
14
14
|
// Exclude invalid imported tokens
|
|
15
15
|
.map((tokenImporter) => {
|
|
16
16
|
if (tokenImporter.type === 'value') {
|
|
@@ -26,18 +26,18 @@ function createDts(cssModules, host, options) {
|
|
|
26
26
|
})
|
|
27
27
|
// Exclude token importers for external files
|
|
28
28
|
.filter((tokenImporter) => {
|
|
29
|
-
const resolved = host.resolver(tokenImporter.from, { request:
|
|
29
|
+
const resolved = host.resolver(tokenImporter.from, { request: cssModule.fileName });
|
|
30
30
|
return resolved !== undefined && host.matchesPattern(resolved);
|
|
31
31
|
});
|
|
32
32
|
if (options.namedExports) {
|
|
33
|
-
return
|
|
33
|
+
return generateNamedExportsDts(localTokens, tokenImporters, options);
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
36
|
-
return
|
|
36
|
+
return generateDefaultExportDts(localTokens, tokenImporters);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
40
|
+
* Generate a d.ts file with named exports.
|
|
41
41
|
* @example
|
|
42
42
|
* If the CSS module file is:
|
|
43
43
|
* ```css
|
|
@@ -58,7 +58,7 @@ function createDts(cssModules, host, options) {
|
|
|
58
58
|
* } from './b.module.css';
|
|
59
59
|
* ```
|
|
60
60
|
*/
|
|
61
|
-
function
|
|
61
|
+
function generateNamedExportsDts(localTokens, tokenImporters, options) {
|
|
62
62
|
const mapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
|
|
63
63
|
const linkedCodeMapping = {
|
|
64
64
|
sourceOffsets: [],
|
|
@@ -129,7 +129,7 @@ function createNamedExportsDts(localTokens, tokenImporters, options) {
|
|
|
129
129
|
return { text, mapping, linkedCodeMapping };
|
|
130
130
|
}
|
|
131
131
|
/**
|
|
132
|
-
*
|
|
132
|
+
* Generate a d.ts file with a default export.
|
|
133
133
|
* @example
|
|
134
134
|
* If the CSS module file is:
|
|
135
135
|
* ```css
|
|
@@ -151,7 +151,7 @@ function createNamedExportsDts(localTokens, tokenImporters, options) {
|
|
|
151
151
|
* export default styles;
|
|
152
152
|
* ```
|
|
153
153
|
*/
|
|
154
|
-
function
|
|
154
|
+
function generateDefaultExportDts(localTokens, tokenImporters) {
|
|
155
155
|
const mapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
|
|
156
156
|
const linkedCodeMapping = {
|
|
157
157
|
sourceOffsets: [],
|
|
@@ -219,4 +219,4 @@ function isValidName(name, options) {
|
|
|
219
219
|
return false;
|
|
220
220
|
return true;
|
|
221
221
|
}
|
|
222
|
-
//# sourceMappingURL=dts-
|
|
222
|
+
//# sourceMappingURL=dts-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dts-generator.js","sourceRoot":"","sources":["../src/dts-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export type { CMKConfig } from './config.js';
|
|
2
2
|
export { readConfigFile } from './config.js';
|
|
3
3
|
export { TsConfigFileNotFoundError, SystemError } from './error.js';
|
|
4
|
-
export { parseCSSModule, type ParseCSSModuleOptions
|
|
4
|
+
export { parseCSSModule, type ParseCSSModuleOptions } from './parser/css-module-parser.js';
|
|
5
5
|
export { parseRule } from './parser/rule-parser.js';
|
|
6
6
|
export { type Location, type Position, type CSSModule, type Token, type AtImportTokenImporter, type TokenImporter, type AtValueTokenImporter, type AtValueTokenImporterValue, type Resolver, type MatchesPattern, type ExportBuilder, type DiagnosticSourceFile, type Diagnostic, type DiagnosticWithLocation, type DiagnosticCategory, type DiagnosticPosition, } from './type.js';
|
|
7
|
-
export { type
|
|
7
|
+
export { type GenerateDtsOptions, generateDts, STYLES_EXPORT_NAME } from './dts-generator.js';
|
|
8
8
|
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';
|
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,
|
|
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,MAAM,+BAA+B,CAAC;AAC3F,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,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,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.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.
|
|
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.generateDts = 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");
|
|
@@ -10,9 +10,9 @@ var css_module_parser_js_1 = require("./parser/css-module-parser.js");
|
|
|
10
10
|
Object.defineProperty(exports, "parseCSSModule", { enumerable: true, get: function () { return css_module_parser_js_1.parseCSSModule; } });
|
|
11
11
|
var rule_parser_js_1 = require("./parser/rule-parser.js");
|
|
12
12
|
Object.defineProperty(exports, "parseRule", { enumerable: true, get: function () { return rule_parser_js_1.parseRule; } });
|
|
13
|
-
var
|
|
14
|
-
Object.defineProperty(exports, "
|
|
15
|
-
Object.defineProperty(exports, "STYLES_EXPORT_NAME", { enumerable: true, get: function () { return
|
|
13
|
+
var dts_generator_js_1 = require("./dts-generator.js");
|
|
14
|
+
Object.defineProperty(exports, "generateDts", { enumerable: true, get: function () { return dts_generator_js_1.generateDts; } });
|
|
15
|
+
Object.defineProperty(exports, "STYLES_EXPORT_NAME", { enumerable: true, get: function () { return dts_generator_js_1.STYLES_EXPORT_NAME; } });
|
|
16
16
|
var resolver_js_1 = require("./resolver.js");
|
|
17
17
|
Object.defineProperty(exports, "createResolver", { enumerable: true, get: function () { return resolver_js_1.createResolver; } });
|
|
18
18
|
var file_js_1 = require("./file.js");
|
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,
|
|
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,sEAA2F;AAAlF,sHAAA,cAAc,OAAA;AACvB,0DAAoD;AAA3C,2GAAA,SAAS,OAAA;AAmBlB,uDAA8F;AAA5D,+GAAA,WAAW,OAAA;AAAE,sHAAA,kBAAkB,OAAA;AACjE,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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import type { CSSModule
|
|
1
|
+
import type { CSSModule } from '../type.js';
|
|
2
2
|
export interface ParseCSSModuleOptions {
|
|
3
3
|
fileName: string;
|
|
4
|
-
|
|
4
|
+
/** Whether to include syntax errors from diagnostics */
|
|
5
|
+
includeSyntaxError: boolean;
|
|
6
|
+
keyframes: boolean;
|
|
5
7
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export declare function parseCSSModule(text: string, { fileName,
|
|
8
|
+
/**
|
|
9
|
+
* Parse CSS Module text.
|
|
10
|
+
* If a syntax error is detected in the text, it is re-parsed using `postcss-safe-parser`, and `localTokens` are collected as much as possible.
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseCSSModule(text: string, { fileName, includeSyntaxError, keyframes }: ParseCSSModuleOptions): CSSModule;
|
|
11
13
|
//# sourceMappingURL=css-module-parser.d.ts.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"css-module-parser.d.ts","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,YAAY,CAAC;AAqEpB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB;AACD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAE,qBAAqB,GACjE,SAAS,CAmCX"}
|
|
@@ -28,7 +28,7 @@ function isRuleNode(node) {
|
|
|
28
28
|
/**
|
|
29
29
|
* Collect tokens from the AST.
|
|
30
30
|
*/
|
|
31
|
-
function collectTokens(ast) {
|
|
31
|
+
function collectTokens(ast, keyframes) {
|
|
32
32
|
const allDiagnostics = [];
|
|
33
33
|
const localTokens = [];
|
|
34
34
|
const tokenImporters = [];
|
|
@@ -51,7 +51,7 @@ function collectTokens(ast) {
|
|
|
51
51
|
tokenImporters.push({ ...atValue, type: 'value' });
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
else if (isAtKeyframesNode(node)) {
|
|
54
|
+
else if (keyframes && isAtKeyframesNode(node)) {
|
|
55
55
|
const { keyframe, diagnostics } = (0, key_frame_parser_js_1.parseAtKeyframes)(node);
|
|
56
56
|
allDiagnostics.push(...diagnostics);
|
|
57
57
|
if (keyframe) {
|
|
@@ -68,38 +68,46 @@ function collectTokens(ast) {
|
|
|
68
68
|
});
|
|
69
69
|
return { localTokens, tokenImporters, diagnostics: allDiagnostics };
|
|
70
70
|
}
|
|
71
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Parse CSS Module text.
|
|
73
|
+
* If a syntax error is detected in the text, it is re-parsed using `postcss-safe-parser`, and `localTokens` are collected as much as possible.
|
|
74
|
+
*/
|
|
75
|
+
function parseCSSModule(text, { fileName, includeSyntaxError, keyframes }) {
|
|
72
76
|
let ast;
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
const diagnosticFile = { fileName, text };
|
|
78
|
+
const allDiagnostics = [];
|
|
79
|
+
if (includeSyntaxError) {
|
|
80
|
+
try {
|
|
81
|
+
ast = (0, postcss_1.parse)(text, { from: fileName });
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
if (!(e instanceof postcss_1.CssSyntaxError))
|
|
85
|
+
throw e;
|
|
86
|
+
// If syntax error, try to parse with safe parser. While this incurs a cost
|
|
87
|
+
// due to parsing the file twice, it rarely becomes an issue since files
|
|
88
|
+
// with syntax errors are usually few in number.
|
|
89
|
+
ast = (0, postcss_safe_parser_1.default)(text, { from: fileName });
|
|
80
90
|
const { line, column, endColumn } = e.input;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
text: e.reason,
|
|
89
|
-
category: 'error',
|
|
90
|
-
},
|
|
91
|
-
],
|
|
92
|
-
};
|
|
91
|
+
allDiagnostics.push({
|
|
92
|
+
file: diagnosticFile,
|
|
93
|
+
start: { line, column },
|
|
94
|
+
length: endColumn !== undefined ? endColumn - column : 1,
|
|
95
|
+
text: e.reason,
|
|
96
|
+
category: 'error',
|
|
97
|
+
});
|
|
93
98
|
}
|
|
94
|
-
throw e;
|
|
95
99
|
}
|
|
96
|
-
|
|
97
|
-
|
|
100
|
+
else {
|
|
101
|
+
ast = (0, postcss_safe_parser_1.default)(text, { from: fileName });
|
|
102
|
+
}
|
|
103
|
+
const { localTokens, tokenImporters, diagnostics } = collectTokens(ast, keyframes);
|
|
104
|
+
allDiagnostics.push(...diagnostics.map((diagnostic) => ({ ...diagnostic, file: diagnosticFile })));
|
|
105
|
+
return {
|
|
98
106
|
fileName,
|
|
99
107
|
text,
|
|
100
108
|
localTokens,
|
|
101
109
|
tokenImporters,
|
|
110
|
+
diagnostics: allDiagnostics,
|
|
102
111
|
};
|
|
103
|
-
return { cssModule, diagnostics: diagnostics.map((diagnostic) => ({ ...diagnostic, file: diagnosticSourceFile })) };
|
|
104
112
|
}
|
|
105
113
|
//# sourceMappingURL=css-module-parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-module-parser.js","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":";;;;;AAwFA,
|
|
1
|
+
{"version":3,"file":"css-module-parser.js","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/type.d.ts
CHANGED
|
@@ -109,6 +109,8 @@ export interface CSSModule {
|
|
|
109
109
|
* Token importer is a statement that imports tokens from another file.
|
|
110
110
|
*/
|
|
111
111
|
tokenImporters: TokenImporter[];
|
|
112
|
+
/** Diagnostics found during parsing. */
|
|
113
|
+
diagnostics: DiagnosticWithLocation[];
|
|
112
114
|
}
|
|
113
115
|
export interface ResolverOptions {
|
|
114
116
|
/** The file that imports the specifier. It is a absolute path. */
|
|
@@ -136,7 +138,7 @@ export interface ExportBuilder {
|
|
|
136
138
|
build(cssModule: CSSModule): ExportRecord;
|
|
137
139
|
clearCache(): void;
|
|
138
140
|
}
|
|
139
|
-
export type DiagnosticCategory = 'error'
|
|
141
|
+
export type DiagnosticCategory = 'error';
|
|
140
142
|
export interface DiagnosticSourceFile {
|
|
141
143
|
fileName: string;
|
|
142
144
|
text: string;
|
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;IACd,uEAAuE;IACvE,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,CAAC;IACf;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,yCAAyC;IACzC,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,6EAA6E;AAC7E,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,GAAG,EAAE,QAAQ,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;;OASG;IACH,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB;;;OAGG;IACH,cAAc,EAAE,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/config.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface CMKConfig {
|
|
|
17
17
|
arbitraryExtensions: boolean;
|
|
18
18
|
namedExports: boolean;
|
|
19
19
|
prioritizeNamedImports: boolean;
|
|
20
|
+
keyframes: boolean;
|
|
20
21
|
/**
|
|
21
22
|
* A root directory to resolve relative path entries in the config file to.
|
|
22
23
|
* This is an absolute path.
|
|
@@ -57,6 +58,8 @@ export interface CMKConfig {
|
|
|
57
58
|
basePath: string;
|
|
58
59
|
configFileName: string;
|
|
59
60
|
compilerOptions: ts.CompilerOptions;
|
|
61
|
+
/** The directories to watch when watch mode is enabled. */
|
|
62
|
+
wildcardDirectories: { fileName: string; recursive: boolean }[];
|
|
60
63
|
/** The diagnostics that occurred while reading the config file. */
|
|
61
64
|
diagnostics: Diagnostic[];
|
|
62
65
|
}
|
|
@@ -72,6 +75,7 @@ interface UnnormalizedRawConfig {
|
|
|
72
75
|
arbitraryExtensions?: boolean;
|
|
73
76
|
namedExports?: boolean;
|
|
74
77
|
prioritizeNamedImports?: boolean;
|
|
78
|
+
keyframes?: boolean;
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
/**
|
|
@@ -82,7 +86,7 @@ interface ParsedRawData {
|
|
|
82
86
|
diagnostics: Diagnostic[];
|
|
83
87
|
}
|
|
84
88
|
|
|
85
|
-
|
|
89
|
+
function findTsConfigFile(project: string): string | undefined {
|
|
86
90
|
const configFile =
|
|
87
91
|
ts.sys.directoryExists(project) ?
|
|
88
92
|
ts.findConfigFile(project, ts.sys.fileExists.bind(ts.sys), 'tsconfig.json')
|
|
@@ -91,6 +95,10 @@ export function findTsConfigFile(project: string): string | undefined {
|
|
|
91
95
|
return resolve(configFile);
|
|
92
96
|
}
|
|
93
97
|
|
|
98
|
+
function isTsConfigFileExists(fileName: string): boolean {
|
|
99
|
+
return ts.findConfigFile(dirname(fileName), ts.sys.fileExists.bind(ts.sys), basename(fileName)) !== undefined;
|
|
100
|
+
}
|
|
101
|
+
|
|
94
102
|
function parseRawData(raw: unknown, tsConfigSourceFile: ts.TsConfigSourceFile): ParsedRawData {
|
|
95
103
|
const result: ParsedRawData = {
|
|
96
104
|
config: {},
|
|
@@ -138,6 +146,16 @@ function parseRawData(raw: unknown, tsConfigSourceFile: ts.TsConfigSourceFile):
|
|
|
138
146
|
});
|
|
139
147
|
}
|
|
140
148
|
}
|
|
149
|
+
if ('keyframes' in raw.cmkOptions) {
|
|
150
|
+
if (typeof raw.cmkOptions.keyframes === 'boolean') {
|
|
151
|
+
result.config.keyframes = raw.cmkOptions.keyframes;
|
|
152
|
+
} else {
|
|
153
|
+
result.diagnostics.push({
|
|
154
|
+
category: 'error',
|
|
155
|
+
text: `\`keyframes\` in ${tsConfigSourceFile.fileName} must be a boolean.`,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
141
159
|
if ('namedExports' in raw.cmkOptions) {
|
|
142
160
|
if (typeof raw.cmkOptions.namedExports === 'boolean') {
|
|
143
161
|
result.config.namedExports = raw.cmkOptions.namedExports;
|
|
@@ -163,33 +181,9 @@ function parseRawData(raw: unknown, tsConfigSourceFile: ts.TsConfigSourceFile):
|
|
|
163
181
|
}
|
|
164
182
|
return result;
|
|
165
183
|
}
|
|
166
|
-
export { parseRawData as parseRawDataForTest };
|
|
167
|
-
|
|
168
|
-
function mergeParsedRawData(base: ParsedRawData, overrides: ParsedRawData): ParsedRawData {
|
|
169
|
-
const result: ParsedRawData = { config: { ...base.config }, diagnostics: [...base.diagnostics] };
|
|
170
|
-
if (overrides.config.includes !== undefined) result.config.includes = overrides.config.includes;
|
|
171
|
-
if (overrides.config.excludes !== undefined) result.config.excludes = overrides.config.excludes;
|
|
172
|
-
if (overrides.config.dtsOutDir !== undefined) result.config.dtsOutDir = overrides.config.dtsOutDir;
|
|
173
|
-
if (overrides.config.arbitraryExtensions !== undefined)
|
|
174
|
-
result.config.arbitraryExtensions = overrides.config.arbitraryExtensions;
|
|
175
|
-
if (overrides.config.namedExports !== undefined) result.config.namedExports = overrides.config.namedExports;
|
|
176
|
-
result.diagnostics.push(...overrides.diagnostics);
|
|
177
|
-
return result;
|
|
178
|
-
}
|
|
179
184
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
*/
|
|
183
|
-
export function readTsConfigFile(project: string): {
|
|
184
|
-
configFileName: string;
|
|
185
|
-
config: UnnormalizedRawConfig;
|
|
186
|
-
compilerOptions: ts.CompilerOptions;
|
|
187
|
-
diagnostics: Diagnostic[];
|
|
188
|
-
} {
|
|
189
|
-
const configFileName = findTsConfigFile(project);
|
|
190
|
-
if (!configFileName) throw new TsConfigFileNotFoundError();
|
|
191
|
-
|
|
192
|
-
const tsConfigSourceFile = ts.readJsonConfigFile(configFileName, ts.sys.readFile.bind(ts.sys));
|
|
185
|
+
function parseTsConfigFile(fileName: string) {
|
|
186
|
+
const tsConfigSourceFile = ts.readJsonConfigFile(fileName, ts.sys.readFile.bind(ts.sys));
|
|
193
187
|
// MEMO: `tsConfigSourceFile.parseDiagnostics` (Internal API) contains a syntax error for `tsconfig.json`.
|
|
194
188
|
// However, it is ignored so that ts-plugin will work even if `tsconfig.json` is somewhat broken.
|
|
195
189
|
// Also, this error is reported to the user by `tsc` or `tsserver`.
|
|
@@ -198,9 +192,9 @@ export function readTsConfigFile(project: string): {
|
|
|
198
192
|
const parsedCommandLine = ts.parseJsonSourceFileConfigFileContent(
|
|
199
193
|
tsConfigSourceFile,
|
|
200
194
|
ts.sys,
|
|
201
|
-
dirname(
|
|
195
|
+
dirname(fileName),
|
|
202
196
|
undefined,
|
|
203
|
-
|
|
197
|
+
fileName,
|
|
204
198
|
undefined,
|
|
205
199
|
[
|
|
206
200
|
{
|
|
@@ -211,26 +205,15 @@ export function readTsConfigFile(project: string): {
|
|
|
211
205
|
],
|
|
212
206
|
);
|
|
213
207
|
// Read options from `parsedCommandLine.raw`
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
// The options read from `parsedCommandLine.raw` do not inherit values from the file specified in `extends`.
|
|
217
|
-
// So here we read the options from those files and merge them into `parsedRawData`.
|
|
218
|
-
if (tsConfigSourceFile.extendedSourceFiles) {
|
|
219
|
-
for (const extendedSourceFile of tsConfigSourceFile.extendedSourceFiles) {
|
|
220
|
-
let base: ParsedRawData;
|
|
221
|
-
try {
|
|
222
|
-
base = readTsConfigFile(extendedSourceFile);
|
|
223
|
-
} catch (error) {
|
|
224
|
-
if (error instanceof TsConfigFileNotFoundError) continue;
|
|
225
|
-
throw error;
|
|
226
|
-
}
|
|
227
|
-
parsedRawData = mergeParsedRawData(base, parsedRawData);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
208
|
+
const parsedRawData = parseRawData(parsedCommandLine.raw, tsConfigSourceFile);
|
|
230
209
|
|
|
231
210
|
return {
|
|
232
|
-
|
|
211
|
+
extendedSourceFiles: tsConfigSourceFile.extendedSourceFiles,
|
|
233
212
|
compilerOptions: parsedCommandLine.options,
|
|
213
|
+
wildcardDirectories: Object.entries(parsedCommandLine.wildcardDirectories ?? {}).map(([fileName, flags]) => ({
|
|
214
|
+
fileName,
|
|
215
|
+
recursive: (flags & ts.WatchDirectoryFlags.Recursive) !== 0,
|
|
216
|
+
})),
|
|
234
217
|
...parsedRawData,
|
|
235
218
|
};
|
|
236
219
|
}
|
|
@@ -244,20 +227,38 @@ export function readTsConfigFile(project: string): {
|
|
|
244
227
|
* @throws {TsConfigFileNotFoundError}
|
|
245
228
|
*/
|
|
246
229
|
export function readConfigFile(project: string): CMKConfig {
|
|
247
|
-
const
|
|
230
|
+
const configFileName = findTsConfigFile(project);
|
|
231
|
+
if (!configFileName) throw new TsConfigFileNotFoundError();
|
|
232
|
+
|
|
233
|
+
const parsedTsConfig = parseTsConfigFile(configFileName);
|
|
234
|
+
|
|
235
|
+
// The options read from `parsedCommandLine.raw` do not inherit values from the file specified in `extends`.
|
|
236
|
+
// So here we read the options from those files and merge them into `parsedRawData`.
|
|
237
|
+
if (parsedTsConfig.extendedSourceFiles) {
|
|
238
|
+
for (const extendedSourceFile of parsedTsConfig.extendedSourceFiles) {
|
|
239
|
+
if (isTsConfigFileExists(extendedSourceFile)) {
|
|
240
|
+
const base = parseTsConfigFile(extendedSourceFile);
|
|
241
|
+
parsedTsConfig.config = { ...base.config, ...parsedTsConfig.config };
|
|
242
|
+
parsedTsConfig.diagnostics = [...base.diagnostics, ...parsedTsConfig.diagnostics];
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
248
247
|
const basePath = dirname(configFileName);
|
|
249
248
|
return {
|
|
250
|
-
// If `include` is not specified, fallback to the default include spec
|
|
249
|
+
// If `include` is not specified, fallback to the default include spec。
|
|
251
250
|
// 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
|
+
includes: (parsedTsConfig.config.includes ?? [DEFAULT_INCLUDE_SPEC]).map((i) => join(basePath, i)),
|
|
252
|
+
excludes: (parsedTsConfig.config.excludes ?? []).map((e) => join(basePath, e)),
|
|
253
|
+
dtsOutDir: join(basePath, parsedTsConfig.config.dtsOutDir ?? 'generated'),
|
|
254
|
+
arbitraryExtensions: parsedTsConfig.config.arbitraryExtensions ?? false,
|
|
255
|
+
namedExports: parsedTsConfig.config.namedExports ?? false,
|
|
256
|
+
prioritizeNamedImports: parsedTsConfig.config.prioritizeNamedImports ?? false,
|
|
257
|
+
keyframes: parsedTsConfig.config.keyframes ?? true,
|
|
258
258
|
basePath,
|
|
259
259
|
configFileName,
|
|
260
|
-
compilerOptions,
|
|
261
|
-
|
|
260
|
+
compilerOptions: parsedTsConfig.compilerOptions,
|
|
261
|
+
wildcardDirectories: parsedTsConfig.wildcardDirectories,
|
|
262
|
+
diagnostics: parsedTsConfig.diagnostics,
|
|
262
263
|
};
|
|
263
264
|
}
|
package/src/diagnostic.ts
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import ts from 'typescript';
|
|
2
2
|
import type { SystemError } from './error.js';
|
|
3
|
-
import type { Diagnostic, DiagnosticSourceFile, DiagnosticWithLocation } from './type.js';
|
|
3
|
+
import type { Diagnostic, DiagnosticCategory, DiagnosticSourceFile, DiagnosticWithLocation } from './type.js';
|
|
4
4
|
|
|
5
5
|
/** The error code used by tsserver to display the css-modules-kit error in the editor. */
|
|
6
6
|
const TS_ERROR_CODE = 0;
|
|
7
7
|
|
|
8
8
|
const TS_ERROR_SOURCE = 'css-modules-kit';
|
|
9
9
|
|
|
10
|
-
function convertErrorCategory(category:
|
|
10
|
+
function convertErrorCategory(category: DiagnosticCategory): ts.DiagnosticCategory {
|
|
11
11
|
switch (category) {
|
|
12
12
|
case 'error':
|
|
13
13
|
return ts.DiagnosticCategory.Error;
|
|
14
|
-
case 'warning':
|
|
15
|
-
return ts.DiagnosticCategory.Warning;
|
|
16
|
-
case 'suggestion':
|
|
17
|
-
return ts.DiagnosticCategory.Suggestion;
|
|
18
14
|
default:
|
|
19
15
|
throw new Error(`Unknown category: ${String(category)}`);
|
|
20
16
|
}
|
|
@@ -3,12 +3,12 @@ import { isValidAsJSIdentifier } from './util.js';
|
|
|
3
3
|
|
|
4
4
|
export const STYLES_EXPORT_NAME = 'styles';
|
|
5
5
|
|
|
6
|
-
export interface
|
|
6
|
+
export interface GenerateDtsHost {
|
|
7
7
|
resolver: Resolver;
|
|
8
8
|
matchesPattern: MatchesPattern;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export interface
|
|
11
|
+
export interface GenerateDtsOptions {
|
|
12
12
|
namedExports: boolean;
|
|
13
13
|
prioritizeNamedImports: boolean;
|
|
14
14
|
/** Generate .d.ts for ts-plugin */
|
|
@@ -37,19 +37,23 @@ interface LinkedCodeMapping extends CodeMapping {
|
|
|
37
37
|
generatedLengths: number[];
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
interface
|
|
40
|
+
interface GenerateDtsResult {
|
|
41
41
|
text: string;
|
|
42
42
|
mapping: CodeMapping;
|
|
43
43
|
linkedCodeMapping: LinkedCodeMapping;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* Generate .d.ts from `CSSModule`.
|
|
48
48
|
*/
|
|
49
|
-
export function
|
|
49
|
+
export function generateDts(
|
|
50
|
+
cssModule: CSSModule,
|
|
51
|
+
host: GenerateDtsHost,
|
|
52
|
+
options: GenerateDtsOptions,
|
|
53
|
+
): GenerateDtsResult {
|
|
50
54
|
// Exclude invalid tokens
|
|
51
|
-
const localTokens =
|
|
52
|
-
const tokenImporters =
|
|
55
|
+
const localTokens = cssModule.localTokens.filter((token) => isValidName(token.name, options));
|
|
56
|
+
const tokenImporters = cssModule.tokenImporters
|
|
53
57
|
// Exclude invalid imported tokens
|
|
54
58
|
.map((tokenImporter) => {
|
|
55
59
|
if (tokenImporter.type === 'value') {
|
|
@@ -67,19 +71,19 @@ export function createDts(cssModules: CSSModule, host: CreateDtsHost, options: C
|
|
|
67
71
|
})
|
|
68
72
|
// Exclude token importers for external files
|
|
69
73
|
.filter((tokenImporter) => {
|
|
70
|
-
const resolved = host.resolver(tokenImporter.from, { request:
|
|
74
|
+
const resolved = host.resolver(tokenImporter.from, { request: cssModule.fileName });
|
|
71
75
|
return resolved !== undefined && host.matchesPattern(resolved);
|
|
72
76
|
});
|
|
73
77
|
|
|
74
78
|
if (options.namedExports) {
|
|
75
|
-
return
|
|
79
|
+
return generateNamedExportsDts(localTokens, tokenImporters, options);
|
|
76
80
|
} else {
|
|
77
|
-
return
|
|
81
|
+
return generateDefaultExportDts(localTokens, tokenImporters);
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
/**
|
|
82
|
-
*
|
|
86
|
+
* Generate a d.ts file with named exports.
|
|
83
87
|
* @example
|
|
84
88
|
* If the CSS module file is:
|
|
85
89
|
* ```css
|
|
@@ -100,10 +104,10 @@ export function createDts(cssModules: CSSModule, host: CreateDtsHost, options: C
|
|
|
100
104
|
* } from './b.module.css';
|
|
101
105
|
* ```
|
|
102
106
|
*/
|
|
103
|
-
function
|
|
107
|
+
function generateNamedExportsDts(
|
|
104
108
|
localTokens: Token[],
|
|
105
109
|
tokenImporters: TokenImporter[],
|
|
106
|
-
options:
|
|
110
|
+
options: GenerateDtsOptions,
|
|
107
111
|
): { text: string; mapping: CodeMapping; linkedCodeMapping: LinkedCodeMapping } {
|
|
108
112
|
const mapping: CodeMapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
|
|
109
113
|
const linkedCodeMapping: LinkedCodeMapping = {
|
|
@@ -176,7 +180,7 @@ function createNamedExportsDts(
|
|
|
176
180
|
}
|
|
177
181
|
|
|
178
182
|
/**
|
|
179
|
-
*
|
|
183
|
+
* Generate a d.ts file with a default export.
|
|
180
184
|
* @example
|
|
181
185
|
* If the CSS module file is:
|
|
182
186
|
* ```css
|
|
@@ -198,7 +202,7 @@ function createNamedExportsDts(
|
|
|
198
202
|
* export default styles;
|
|
199
203
|
* ```
|
|
200
204
|
*/
|
|
201
|
-
function
|
|
205
|
+
function generateDefaultExportDts(
|
|
202
206
|
localTokens: Token[],
|
|
203
207
|
tokenImporters: TokenImporter[],
|
|
204
208
|
): { text: string; mapping: CodeMapping; linkedCodeMapping: LinkedCodeMapping } {
|
|
@@ -263,7 +267,7 @@ function createDefaultExportDts(
|
|
|
263
267
|
return { text, mapping, linkedCodeMapping };
|
|
264
268
|
}
|
|
265
269
|
|
|
266
|
-
function isValidName(name: string, options:
|
|
270
|
+
function isValidName(name: string, options: GenerateDtsOptions): boolean {
|
|
267
271
|
if (!isValidAsJSIdentifier(name)) return false;
|
|
268
272
|
if (name === '__proto__') return false;
|
|
269
273
|
if (options.namedExports && name === 'default') return false;
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { CMKConfig } from './config.js';
|
|
2
2
|
export { readConfigFile } from './config.js';
|
|
3
3
|
export { TsConfigFileNotFoundError, SystemError } from './error.js';
|
|
4
|
-
export { parseCSSModule, type ParseCSSModuleOptions
|
|
4
|
+
export { parseCSSModule, type ParseCSSModuleOptions } from './parser/css-module-parser.js';
|
|
5
5
|
export { parseRule } from './parser/rule-parser.js';
|
|
6
6
|
export {
|
|
7
7
|
type Location,
|
|
@@ -21,7 +21,7 @@ export {
|
|
|
21
21
|
type DiagnosticCategory,
|
|
22
22
|
type DiagnosticPosition,
|
|
23
23
|
} from './type.js';
|
|
24
|
-
export { type
|
|
24
|
+
export { type GenerateDtsOptions, generateDts, STYLES_EXPORT_NAME } from './dts-generator.js';
|
|
25
25
|
export { createResolver } from './resolver.js';
|
|
26
26
|
export {
|
|
27
27
|
CSS_MODULE_EXTENSION,
|
|
@@ -40,7 +40,7 @@ function isRuleNode(node: Node): node is Rule {
|
|
|
40
40
|
/**
|
|
41
41
|
* Collect tokens from the AST.
|
|
42
42
|
*/
|
|
43
|
-
function collectTokens(ast: Root) {
|
|
43
|
+
function collectTokens(ast: Root, keyframes: boolean) {
|
|
44
44
|
const allDiagnostics: DiagnosticWithDetachedLocation[] = [];
|
|
45
45
|
const localTokens: Token[] = [];
|
|
46
46
|
const tokenImporters: TokenImporter[] = [];
|
|
@@ -59,7 +59,7 @@ function collectTokens(ast: Root) {
|
|
|
59
59
|
} else if (atValue.type === 'valueImportDeclaration') {
|
|
60
60
|
tokenImporters.push({ ...atValue, type: 'value' });
|
|
61
61
|
}
|
|
62
|
-
} else if (isAtKeyframesNode(node)) {
|
|
62
|
+
} else if (keyframes && isAtKeyframesNode(node)) {
|
|
63
63
|
const { keyframe, diagnostics } = parseAtKeyframes(node);
|
|
64
64
|
allDiagnostics.push(...diagnostics);
|
|
65
65
|
if (keyframe) {
|
|
@@ -78,44 +78,50 @@ function collectTokens(ast: Root) {
|
|
|
78
78
|
|
|
79
79
|
export interface ParseCSSModuleOptions {
|
|
80
80
|
fileName: string;
|
|
81
|
-
|
|
81
|
+
/** Whether to include syntax errors from diagnostics */
|
|
82
|
+
includeSyntaxError: boolean;
|
|
83
|
+
keyframes: boolean;
|
|
82
84
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Parse CSS Module text.
|
|
87
|
+
* If a syntax error is detected in the text, it is re-parsed using `postcss-safe-parser`, and `localTokens` are collected as much as possible.
|
|
88
|
+
*/
|
|
89
|
+
export function parseCSSModule(
|
|
90
|
+
text: string,
|
|
91
|
+
{ fileName, includeSyntaxError, keyframes }: ParseCSSModuleOptions,
|
|
92
|
+
): CSSModule {
|
|
90
93
|
let ast: Root;
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
const diagnosticFile = { fileName, text };
|
|
95
|
+
const allDiagnostics: DiagnosticWithLocation[] = [];
|
|
96
|
+
if (includeSyntaxError) {
|
|
97
|
+
try {
|
|
98
|
+
ast = parse(text, { from: fileName });
|
|
99
|
+
} catch (e) {
|
|
100
|
+
if (!(e instanceof CssSyntaxError)) throw e;
|
|
101
|
+
// If syntax error, try to parse with safe parser. While this incurs a cost
|
|
102
|
+
// due to parsing the file twice, it rarely becomes an issue since files
|
|
103
|
+
// with syntax errors are usually few in number.
|
|
104
|
+
ast = safeParser(text, { from: fileName });
|
|
97
105
|
const { line, column, endColumn } = e.input!;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
text: e.reason,
|
|
106
|
-
category: 'error',
|
|
107
|
-
},
|
|
108
|
-
],
|
|
109
|
-
};
|
|
106
|
+
allDiagnostics.push({
|
|
107
|
+
file: diagnosticFile,
|
|
108
|
+
start: { line, column },
|
|
109
|
+
length: endColumn !== undefined ? endColumn - column : 1,
|
|
110
|
+
text: e.reason,
|
|
111
|
+
category: 'error',
|
|
112
|
+
});
|
|
110
113
|
}
|
|
111
|
-
|
|
114
|
+
} else {
|
|
115
|
+
ast = safeParser(text, { from: fileName });
|
|
112
116
|
}
|
|
113
|
-
|
|
114
|
-
const
|
|
117
|
+
|
|
118
|
+
const { localTokens, tokenImporters, diagnostics } = collectTokens(ast, keyframes);
|
|
119
|
+
allDiagnostics.push(...diagnostics.map((diagnostic) => ({ ...diagnostic, file: diagnosticFile })));
|
|
120
|
+
return {
|
|
115
121
|
fileName,
|
|
116
122
|
text,
|
|
117
123
|
localTokens,
|
|
118
124
|
tokenImporters,
|
|
125
|
+
diagnostics: allDiagnostics,
|
|
119
126
|
};
|
|
120
|
-
return { cssModule, diagnostics: diagnostics.map((diagnostic) => ({ ...diagnostic, file: diagnosticSourceFile })) };
|
|
121
127
|
}
|
package/src/type.ts
CHANGED
|
@@ -116,6 +116,8 @@ export interface CSSModule {
|
|
|
116
116
|
* Token importer is a statement that imports tokens from another file.
|
|
117
117
|
*/
|
|
118
118
|
tokenImporters: TokenImporter[];
|
|
119
|
+
/** Diagnostics found during parsing. */
|
|
120
|
+
diagnostics: DiagnosticWithLocation[];
|
|
119
121
|
}
|
|
120
122
|
|
|
121
123
|
export interface ResolverOptions {
|
|
@@ -149,7 +151,7 @@ export interface ExportBuilder {
|
|
|
149
151
|
clearCache(): void;
|
|
150
152
|
}
|
|
151
153
|
|
|
152
|
-
export type DiagnosticCategory = 'error'
|
|
154
|
+
export type DiagnosticCategory = 'error';
|
|
153
155
|
|
|
154
156
|
export interface DiagnosticSourceFile {
|
|
155
157
|
fileName: string;
|
|
@@ -1 +0,0 @@
|
|
|
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;AAG3F,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,CA8BhH"}
|
package/dist/dts-creator.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dts-creator.js","sourceRoot":"","sources":["../src/dts-creator.ts"],"names":[],"mappings":"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"}
|