@css-modules-kit/core 0.2.0 → 0.3.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 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: string[] | undefined;
64
- excludes: string[] | undefined;
65
- dtsOutDir: string | undefined;
66
- arbitraryExtensions: boolean | undefined;
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,
@@ -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,KAAK,eAAe,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CACzC,CAAC;AAEF;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,mBAAmB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C;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,CAsD5F;AACD,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,CAAC;AAa/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;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,EAAE,MAAM,GACf,eAAe,CAAC,qBAAqB,CAAC,CASxC;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAUzD"}
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
- ...normalizeConfig(config, basePath),
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,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare const STYLES_EXPORT_NAME = "styles";
3
3
  export interface CreateDtsOptions {
4
4
  resolver: Resolver;
5
5
  matchesPattern: MatchesPattern;
6
+ namedExports: boolean;
6
7
  }
7
8
  interface CodeMapping {
8
9
  /** The source offsets of the tokens in the *.module.css file. */
@@ -23,33 +24,14 @@ interface LinkedCodeMapping extends CodeMapping {
23
24
  /** The length of the second code to be linked. */
24
25
  generatedLengths: number[];
25
26
  }
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): {
27
+ interface CreateDtsResult {
50
28
  text: string;
51
29
  mapping: CodeMapping;
52
30
  linkedCodeMapping: LinkedCodeMapping;
53
- };
31
+ }
32
+ /**
33
+ * Create a d.ts file.
34
+ */
35
+ export declare function createDts(cssModules: CSSModule, options: CreateDtsOptions): CreateDtsResult;
54
36
  export {};
55
37
  //# 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,EAAE,MAAM,WAAW,CAAC;AAErE,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CACvB,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,SAAS,EACrE,OAAO,EAAE,gBAAgB,GACxB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,iBAAiB,EAAE,iBAAiB,CAAA;CAAE,CAkE9E"}
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,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;CACvB;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,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAW3F"}
@@ -4,7 +4,111 @@ 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 from a CSS module file.
7
+ * Create a d.ts file.
8
+ */
9
+ function createDts(cssModules, options) {
10
+ // Filter external files
11
+ const tokenImporters = cssModules.tokenImporters.filter((tokenImporter) => {
12
+ const resolved = options.resolver(tokenImporter.from, { request: cssModules.fileName });
13
+ return resolved !== undefined && options.matchesPattern(resolved);
14
+ });
15
+ if (options.namedExports) {
16
+ return createNamedExportsDts(cssModules.localTokens, tokenImporters);
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) {
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
+ return { text, mapping, linkedCodeMapping };
109
+ }
110
+ /**
111
+ * Create a d.ts file with a default export.
8
112
  * @example
9
113
  * If the CSS module file is:
10
114
  * ```css
@@ -26,7 +130,7 @@ exports.STYLES_EXPORT_NAME = 'styles';
26
130
  * export default styles;
27
131
  * ```
28
132
  */
29
- function createDts({ fileName, localTokens, tokenImporters: _tokenImporters }, options) {
133
+ function createDefaultExportDts(localTokens, tokenImporters) {
30
134
  const mapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
31
135
  const linkedCodeMapping = {
32
136
  sourceOffsets: [],
@@ -34,11 +138,6 @@ function createDts({ fileName, localTokens, tokenImporters: _tokenImporters }, o
34
138
  generatedOffsets: [],
35
139
  generatedLengths: [],
36
140
  };
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
141
  // MEMO: Depending on the TypeScript compilation options, the generated type definition file contains compile errors.
43
142
  // For example, it contains `Top-level 'await' expressions are only allowed when the 'module' option is set to ...` error.
44
143
  //
@@ -1 +1 @@
1
- {"version":3,"file":"dts-creator.js","sourceRoot":"","sources":["../src/dts-creator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dts-creator.js","sourceRoot":"","sources":["../src/dts-creator.ts"],"names":[],"mappings":";;;AAyCA,8BAWC;AAlDY,QAAA,kBAAkB,GAAG,QAAQ,CAAC;AAoC3C;;GAEG;AACH,SAAgB,SAAS,CAAC,UAAqB,EAAE,OAAyB;IACxE,wBAAwB;IACxB,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE;QACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxF,OAAO,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,qBAAqB,CAAC,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,OAAO,sBAAsB,CAAC,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,qBAAqB,CAC5B,WAAoB,EACpB,cAA+B;IAE/B,MAAM,OAAO,GAAgB,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IACtF,MAAM,iBAAiB,GAAsB;QAC3C,aAAa,EAAE,EAAE;QACjB,OAAO,EAAE,EAAE;QACX,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,qHAAqH;IACrH,0HAA0H;IAC1H,EAAE;IACF,8GAA8G;IAC9G,2EAA2E;IAC3E,IAAI,IAAI,GAAG,kBAAkB,CAAC;IAE9B,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,IAAI,aAAa,CAAC;QACtB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,aAAa,CAAC;IACrC,CAAC;IACD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,IAAI,gBAAgB,CAAC;YACzB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,IAAI,IAAI,aAAa,CAAC,IAAI,MAAM,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,YAAY,CAAC;YACrB,wCAAwC;YACxC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC;gBAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC;gBAC7C,IAAI,IAAI,IAAI,CAAC;gBACb,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;oBACzB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3C,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrD,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3D,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,MAAM,CAAC;oBAC5B,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAClD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACvC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3C,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAClD,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,IAAI,GAAG,SAAS,KAAK,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3C,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,SAAS,CAAC;YAClB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,IAAI,IAAI,aAAa,CAAC,IAAI,MAAM,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,sBAAsB,CAC7B,WAAoB,EACpB,cAA+B;IAE/B,MAAM,OAAO,GAAgB,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IACtF,MAAM,iBAAiB,GAAsB;QAC3C,aAAa,EAAE,EAAE;QACjB,OAAO,EAAE,EAAE;QACX,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,qHAAqH;IACrH,0HAA0H;IAC1H,EAAE;IACF,8GAA8G;IAC9G,2EAA2E;IAC3E,IAAI,IAAI,GAAG,iCAAiC,0BAAkB,QAAQ,CAAC;IAEvE,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,IAAI,IAAI,CAAC;QACb,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,4BAA4B,CAAC;IACpD,CAAC;IACD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,IAAI,qBAAqB,CAAC;YAC9B,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,IAAI,IAAI,aAAa,CAAC,IAAI,gBAAgB,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACxC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC;gBAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC;gBAE7C,IAAI,IAAI,IAAI,CAAC;gBACb,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACvC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3C,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClD,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,IAAI,GAAG,SAAS,kBAAkB,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACZ,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACnE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACpD,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,IAAI,IAAI,aAAa,CAAC,IAAI,cAAc,CAAC;gBAC7C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACnD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3C,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrD,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,IAAI,sBAAsB,0BAAkB,KAAK,CAAC;IACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC9C,CAAC"}
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, matchesGlob, isAbsolute } from './path.js';
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
@@ -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,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
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.matchesGlob = 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;
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,qCAAuG;AAA9F,+FAAA,IAAI,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,qGAAA,UAAU,OAAA;AACnF,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAC3B,iDAAuG;AAA9F,kHAAA,iBAAiB,OAAA;AAAE,8HAAA,6BAA6B,OAAA;AAAE,mHAAA,kBAAkB,OAAA"}
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"}
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
@@ -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,WAAW,4CAAuB,CAAC;AAGhD,eAAO,MAAM,UAAU,2BAAsB,CAAC"}
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 = exports.matchesGlob = void 0;
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,sGAAsG;AACzF,QAAA,WAAW,GAAG,mBAAQ,CAAC,WAAW,CAAC;AAEhD,6DAA6D;AAChD,QAAA,UAAU,GAAG,mBAAQ,CAAC,UAAU,CAAC"}
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/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.2.0",
4
+ "version": "0.3.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": ">=22.0.0"
27
+ "node": ">=20.19.0"
28
28
  },
29
29
  "publishConfig": {
30
30
  "access": "public",
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: string[] | undefined;
72
- excludes: string[] | undefined;
73
- dtsOutDir: string | undefined;
74
- arbitraryExtensions: boolean | undefined;
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
- ...normalizeConfig(config, basePath),
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,
@@ -1,10 +1,11 @@
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
5
  export interface CreateDtsOptions {
6
6
  resolver: Resolver;
7
7
  matchesPattern: MatchesPattern;
8
+ namedExports: boolean;
8
9
  }
9
10
 
10
11
  interface CodeMapping {
@@ -29,8 +30,122 @@ interface LinkedCodeMapping extends CodeMapping {
29
30
  generatedLengths: number[];
30
31
  }
31
32
 
33
+ interface CreateDtsResult {
34
+ text: string;
35
+ mapping: CodeMapping;
36
+ linkedCodeMapping: LinkedCodeMapping;
37
+ }
38
+
39
+ /**
40
+ * Create a d.ts file.
41
+ */
42
+ export function createDts(cssModules: CSSModule, options: CreateDtsOptions): CreateDtsResult {
43
+ // Filter external files
44
+ const tokenImporters = cssModules.tokenImporters.filter((tokenImporter) => {
45
+ const resolved = options.resolver(tokenImporter.from, { request: cssModules.fileName });
46
+ return resolved !== undefined && options.matchesPattern(resolved);
47
+ });
48
+ if (options.namedExports) {
49
+ return createNamedExportsDts(cssModules.localTokens, tokenImporters);
50
+ } else {
51
+ return createDefaultExportDts(cssModules.localTokens, tokenImporters);
52
+ }
53
+ }
54
+
32
55
  /**
33
- * Create a d.ts file from a CSS module file.
56
+ * Create a d.ts file with named exports.
57
+ * @example
58
+ * If the CSS module file is:
59
+ * ```css
60
+ * @import './a.module.css';
61
+ * @value local1: string;
62
+ * @value imported1, imported2 as aliasedImported2 from './b.module.css';
63
+ * .local2 { color: red }
64
+ * ```
65
+ * The d.ts file would be:
66
+ * ```ts
67
+ * // @ts-nocheck
68
+ * export var local1: string;
69
+ * export var local2: string;
70
+ * export * from './a.module.css';
71
+ * export {
72
+ * imported1,
73
+ * imported2 as aliasedImported2,
74
+ * } from './b.module.css';
75
+ * ```
76
+ */
77
+ function createNamedExportsDts(
78
+ localTokens: Token[],
79
+ tokenImporters: TokenImporter[],
80
+ ): { text: string; mapping: CodeMapping; linkedCodeMapping: LinkedCodeMapping } {
81
+ const mapping: CodeMapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
82
+ const linkedCodeMapping: LinkedCodeMapping = {
83
+ sourceOffsets: [],
84
+ lengths: [],
85
+ generatedOffsets: [],
86
+ generatedLengths: [],
87
+ };
88
+
89
+ // MEMO: Depending on the TypeScript compilation options, the generated type definition file contains compile errors.
90
+ // For example, it contains `Top-level 'await' expressions are only allowed when the 'module' option is set to ...` error.
91
+ //
92
+ // If `--skipLibCheck` is false, those errors will be reported by `tsc`. However, these are negligible errors.
93
+ // Therefore, `@ts-nocheck` is added to the generated type definition file.
94
+ let text = `// @ts-nocheck\n`;
95
+
96
+ for (const token of localTokens) {
97
+ text += `export var `;
98
+ mapping.sourceOffsets.push(token.loc.start.offset);
99
+ mapping.generatedOffsets.push(text.length);
100
+ mapping.lengths.push(token.name.length);
101
+ text += `${token.name}: string;\n`;
102
+ }
103
+ for (const tokenImporter of tokenImporters) {
104
+ if (tokenImporter.type === 'import') {
105
+ text += `export * from `;
106
+ mapping.sourceOffsets.push(tokenImporter.fromLoc.start.offset - 1);
107
+ mapping.lengths.push(tokenImporter.from.length + 2);
108
+ mapping.generatedOffsets.push(text.length);
109
+ text += `'${tokenImporter.from}';\n`;
110
+ } else {
111
+ text += `export {\n`;
112
+ // eslint-disable-next-line no-loop-func
113
+ tokenImporter.values.forEach((value) => {
114
+ const localName = value.localName ?? value.name;
115
+ const localLoc = value.localLoc ?? value.loc;
116
+ text += ` `;
117
+ if ('localName' in value) {
118
+ mapping.sourceOffsets.push(value.loc.start.offset);
119
+ mapping.lengths.push(value.name.length);
120
+ mapping.generatedOffsets.push(text.length);
121
+ linkedCodeMapping.generatedOffsets.push(text.length);
122
+ linkedCodeMapping.generatedLengths.push(value.name.length);
123
+ text += `${value.name} as `;
124
+ mapping.sourceOffsets.push(localLoc.start.offset);
125
+ mapping.lengths.push(localName.length);
126
+ mapping.generatedOffsets.push(text.length);
127
+ linkedCodeMapping.sourceOffsets.push(text.length);
128
+ linkedCodeMapping.lengths.push(localName.length);
129
+ text += `${localName},\n`;
130
+ } else {
131
+ mapping.sourceOffsets.push(value.loc.start.offset);
132
+ mapping.lengths.push(value.name.length);
133
+ mapping.generatedOffsets.push(text.length);
134
+ text += `${value.name},\n`;
135
+ }
136
+ });
137
+ text += `} from `;
138
+ mapping.sourceOffsets.push(tokenImporter.fromLoc.start.offset - 1);
139
+ mapping.lengths.push(tokenImporter.from.length + 2);
140
+ mapping.generatedOffsets.push(text.length);
141
+ text += `'${tokenImporter.from}';\n`;
142
+ }
143
+ }
144
+ return { text, mapping, linkedCodeMapping };
145
+ }
146
+
147
+ /**
148
+ * Create a d.ts file with a default export.
34
149
  * @example
35
150
  * If the CSS module file is:
36
151
  * ```css
@@ -52,9 +167,9 @@ interface LinkedCodeMapping extends CodeMapping {
52
167
  * export default styles;
53
168
  * ```
54
169
  */
55
- export function createDts(
56
- { fileName, localTokens, tokenImporters: _tokenImporters }: CSSModule,
57
- options: CreateDtsOptions,
170
+ function createDefaultExportDts(
171
+ localTokens: Token[],
172
+ tokenImporters: TokenImporter[],
58
173
  ): { text: string; mapping: CodeMapping; linkedCodeMapping: LinkedCodeMapping } {
59
174
  const mapping: CodeMapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
60
175
  const linkedCodeMapping: LinkedCodeMapping = {
@@ -64,12 +179,6 @@ export function createDts(
64
179
  generatedLengths: [],
65
180
  };
66
181
 
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
182
  // MEMO: Depending on the TypeScript compilation options, the generated type definition file contains compile errors.
74
183
  // For example, it contains `Top-level 'await' expressions are only allowed when the 'module' option is set to ...` error.
75
184
  //
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, matchesGlob, isAbsolute } from './path.js';
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';
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;