@css-modules-kit/codegen 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -40,6 +40,7 @@ Options:
40
40
  --version, -v Show version number
41
41
  --project, -p The path to its configuration file, or to a folder with a 'tsconfig.json'.
42
42
  --pretty Enable color and formatting in output to make errors easier to read.
43
+ --clean Remove the output directory before generating files. [default: false]
43
44
  ```
44
45
 
45
46
  ## Configuration
package/bin/cmk.mjs CHANGED
@@ -19,7 +19,7 @@ try {
19
19
  process.exit(0);
20
20
  }
21
21
 
22
- await runCMK(args.project, logger);
22
+ await runCMK(args.project, args.clean, logger);
23
23
  } catch (e) {
24
24
  if (e instanceof SystemError) {
25
25
  logger.logSystemError(e);
package/dist/cli.d.ts CHANGED
@@ -5,6 +5,7 @@ export interface ParsedArgs {
5
5
  version: boolean;
6
6
  project: string;
7
7
  pretty: boolean | undefined;
8
+ clean: boolean;
8
9
  }
9
10
  /**
10
11
  * Parse command-line arguments.
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAeA,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAqBpE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAuBpE"}
package/dist/cli.js CHANGED
@@ -18,6 +18,7 @@ Options:
18
18
  --version, -v Show version number
19
19
  --project, -p The path to its configuration file, or to a folder with a 'tsconfig.json'.
20
20
  --pretty Enable color and formatting in output to make errors easier to read.
21
+ --clean Remove the output directory before generating files. [default: false]
21
22
  `;
22
23
  function printHelpText() {
23
24
  // eslint-disable-next-line no-console
@@ -40,6 +41,7 @@ function parseCLIArgs(args, cwd) {
40
41
  version: { type: 'boolean', short: 'v', default: false },
41
42
  project: { type: 'string', short: 'p', default: '.' },
42
43
  pretty: { type: 'boolean' },
44
+ clean: { type: 'boolean', default: false },
43
45
  },
44
46
  allowNegative: true,
45
47
  });
@@ -48,6 +50,7 @@ function parseCLIArgs(args, cwd) {
48
50
  version: values.version,
49
51
  project: (0, core_1.resolve)(cwd, values.project),
50
52
  pretty: values.pretty,
53
+ clean: values.clean,
51
54
  };
52
55
  }
53
56
  catch (cause) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAeA,sCAGC;AAED,oCAGC;AAaD,oCAqBC;AAzDD,yCAAsC;AACtC,gDAAgD;AAChD,mEAA0C;AAC1C,yCAA+C;AAE/C,MAAM,QAAQ,GAAG;;;;;;;;CAQhB,CAAC;AAEF,SAAgB,aAAa;IAC3B,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxB,CAAC;AAED,SAAgB,YAAY;IAC1B,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,sBAAW,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AASD;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAc,EAAE,GAAW;IACtD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,qBAAS,EAAC;YAC3B,IAAI;YACJ,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;gBACrD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;gBACxD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;gBACrD,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC5B;YACD,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,IAAA,cAAO,EAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC;YACrC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,4BAAiB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAgBA,sCAGC;AAED,oCAGC;AAcD,oCAuBC;AA7DD,yCAAsC;AACtC,gDAAgD;AAChD,mEAA0C;AAC1C,yCAA+C;AAE/C,MAAM,QAAQ,GAAG;;;;;;;;;CAShB,CAAC;AAEF,SAAgB,aAAa;IAC3B,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxB,CAAC;AAED,SAAgB,YAAY;IAC1B,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,sBAAW,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAUD;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAc,EAAE,GAAW;IACtD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,qBAAS,EAAC;YAC3B,IAAI;YACJ,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;gBACrD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;gBACxD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;gBACrD,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;aAC3C;YACD,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,IAAA,cAAO,EAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC;YACrC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,4BAAiB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
package/dist/runner.d.ts CHANGED
@@ -5,5 +5,5 @@ import type { Logger } from './logger/logger.js';
5
5
  * @throws {ReadCSSModuleFileError} When failed to read CSS Module file.
6
6
  * @throws {WriteDtsFileError}
7
7
  */
8
- export declare function runCMK(project: string, logger: Logger): Promise<void>;
8
+ export declare function runCMK(project: string, clean: boolean, logger: Logger): Promise<void>;
9
9
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAgCjD;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8D3E"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAoCjD;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiE3F"}
package/dist/runner.js CHANGED
@@ -25,8 +25,8 @@ async function parseCSSModuleByFileName(fileName) {
25
25
  /**
26
26
  * @throws {WriteDtsFileError}
27
27
  */
28
- async function writeDtsByCSSModule(cssModule, { dtsOutDir, basePath, arbitraryExtensions }, resolver, matchesPattern) {
29
- const dts = (0, core_1.createDts)(cssModule, { resolver, matchesPattern });
28
+ async function writeDtsByCSSModule(cssModule, { dtsOutDir, basePath, arbitraryExtensions, namedExports, prioritizeNamedImports }, resolver, matchesPattern) {
29
+ const dts = (0, core_1.createDts)(cssModule, { resolver, matchesPattern }, { namedExports, prioritizeNamedImports, forTsPlugin: false });
30
30
  await (0, dts_writer_js_1.writeDtsFile)(dts.text, cssModule.fileName, {
31
31
  outDir: dtsOutDir,
32
32
  basePath,
@@ -39,7 +39,7 @@ async function writeDtsByCSSModule(cssModule, { dtsOutDir, basePath, arbitraryEx
39
39
  * @throws {ReadCSSModuleFileError} When failed to read CSS Module file.
40
40
  * @throws {WriteDtsFileError}
41
41
  */
42
- async function runCMK(project, logger) {
42
+ async function runCMK(project, clean, logger) {
43
43
  const config = (0, core_1.readConfigFile)(project);
44
44
  if (config.diagnostics.length > 0) {
45
45
  logger.logDiagnostics(config.diagnostics);
@@ -84,6 +84,9 @@ async function runCMK(project, logger) {
84
84
  // eslint-disable-next-line n/no-process-exit
85
85
  process.exit(1);
86
86
  }
87
+ if (clean) {
88
+ await (0, promises_1.rmdir)(config.dtsOutDir, { recursive: true });
89
+ }
87
90
  await Promise.all(parseResults.map(async (parseResult) => writeDtsByCSSModule(parseResult.cssModule, config, resolver, matchesPattern)));
88
91
  }
89
92
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@css-modules-kit/codegen",
3
3
  "description": "A tool for generating `*.d.ts` files for `*.module.css`.",
4
- "version": "0.2.0",
4
+ "version": "0.4.0",
5
5
  "type": "commonjs",
6
6
  "sideEffects": false,
7
7
  "repository": {
@@ -24,7 +24,7 @@
24
24
  "build": "tsc -b tsconfig.build.json"
25
25
  },
26
26
  "engines": {
27
- "node": ">=22.0.0"
27
+ "node": ">=20.19.0"
28
28
  },
29
29
  "publishConfig": {
30
30
  "access": "public",
@@ -46,7 +46,7 @@
46
46
  "dist"
47
47
  ],
48
48
  "dependencies": {
49
- "@css-modules-kit/core": "^0.2.0"
49
+ "@css-modules-kit/core": "^0.4.0"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "typescript": "^5.7.3"
package/src/cli.ts CHANGED
@@ -11,6 +11,7 @@ Options:
11
11
  --version, -v Show version number
12
12
  --project, -p The path to its configuration file, or to a folder with a 'tsconfig.json'.
13
13
  --pretty Enable color and formatting in output to make errors easier to read.
14
+ --clean Remove the output directory before generating files. [default: false]
14
15
  `;
15
16
 
16
17
  export function printHelpText(): void {
@@ -28,6 +29,7 @@ export interface ParsedArgs {
28
29
  version: boolean;
29
30
  project: string;
30
31
  pretty: boolean | undefined;
32
+ clean: boolean;
31
33
  }
32
34
 
33
35
  /**
@@ -43,6 +45,7 @@ export function parseCLIArgs(args: string[], cwd: string): ParsedArgs {
43
45
  version: { type: 'boolean', short: 'v', default: false },
44
46
  project: { type: 'string', short: 'p', default: '.' },
45
47
  pretty: { type: 'boolean' },
48
+ clean: { type: 'boolean', default: false },
46
49
  },
47
50
  allowNegative: true,
48
51
  });
@@ -51,6 +54,7 @@ export function parseCLIArgs(args: string[], cwd: string): ParsedArgs {
51
54
  version: values.version,
52
55
  project: resolve(cwd, values.project),
53
56
  pretty: values.pretty,
57
+ clean: values.clean,
54
58
  };
55
59
  } catch (cause) {
56
60
  throw new ParseCLIArgsError(cause);
package/src/runner.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { readFile } from 'node:fs/promises';
1
+ import { readFile, rmdir } from 'node:fs/promises';
2
2
  import type {
3
3
  CMKConfig,
4
4
  CSSModule,
@@ -41,11 +41,15 @@ async function parseCSSModuleByFileName(fileName: string): Promise<ParseCSSModul
41
41
  */
42
42
  async function writeDtsByCSSModule(
43
43
  cssModule: CSSModule,
44
- { dtsOutDir, basePath, arbitraryExtensions }: CMKConfig,
44
+ { dtsOutDir, basePath, arbitraryExtensions, namedExports, prioritizeNamedImports }: CMKConfig,
45
45
  resolver: Resolver,
46
46
  matchesPattern: MatchesPattern,
47
47
  ): Promise<void> {
48
- const dts = createDts(cssModule, { resolver, matchesPattern });
48
+ const dts = createDts(
49
+ cssModule,
50
+ { resolver, matchesPattern },
51
+ { namedExports, prioritizeNamedImports, forTsPlugin: false },
52
+ );
49
53
  await writeDtsFile(dts.text, cssModule.fileName, {
50
54
  outDir: dtsOutDir,
51
55
  basePath,
@@ -59,7 +63,7 @@ async function writeDtsByCSSModule(
59
63
  * @throws {ReadCSSModuleFileError} When failed to read CSS Module file.
60
64
  * @throws {WriteDtsFileError}
61
65
  */
62
- export async function runCMK(project: string, logger: Logger): Promise<void> {
66
+ export async function runCMK(project: string, clean: boolean, logger: Logger): Promise<void> {
63
67
  const config = readConfigFile(project);
64
68
  if (config.diagnostics.length > 0) {
65
69
  logger.logDiagnostics(config.diagnostics);
@@ -116,6 +120,9 @@ export async function runCMK(project: string, logger: Logger): Promise<void> {
116
120
  process.exit(1);
117
121
  }
118
122
 
123
+ if (clean) {
124
+ await rmdir(config.dtsOutDir, { recursive: true });
125
+ }
119
126
  await Promise.all(
120
127
  parseResults.map(async (parseResult) =>
121
128
  writeDtsByCSSModule(parseResult.cssModule, config, resolver, matchesPattern),