@css-modules-kit/codegen 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,9 +13,19 @@ npm i -D @css-modules-kit/codegen
13
13
  From the command line, run the `cmk` command.
14
14
 
15
15
  ```bash
16
- cmk
16
+ $ # Generate .d.ts for .module.css
17
+ $ npx cmk
18
+
19
+ $ # Show help
20
+ $ npx cmk --help
21
+ Usage: cmk [options]
22
+
23
+ Options:
24
+ --help, -h Show help information
25
+ --version, -v Show version number
26
+ --project, -p The path to its configuration file, or to a folder with a 'tsconfig.json'.
17
27
  ```
18
28
 
19
- ## Options
29
+ ## Configuration
20
30
 
21
- See [css-modules-kit's README](https://github.com/mizdra/css-modules-kit?tab=readme-ov-file#options).
31
+ See [css-modules-kit's README](https://github.com/mizdra/css-modules-kit?tab=readme-ov-file#configuration).
package/bin/cmk.mjs CHANGED
@@ -1,17 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { SystemError } from '@css-modules-kit/core';
4
- import { createLogger, runCMK } from '../dist/index.js';
5
-
6
- // TODO: Support `--help` option
7
- // TODO: Support `--version` option
8
- // TODO: Support `--project` option
4
+ import { createLogger, parseCLIArgs, runCMK } from '../dist/index.js';
9
5
 
10
6
  const cwd = process.cwd();
11
- const project = cwd;
12
7
  const logger = createLogger(cwd);
8
+ const args = parseCLIArgs(process.argv.slice(2), cwd, logger);
9
+
13
10
  try {
14
- await runCMK(project, logger);
11
+ await runCMK(args.project, logger);
15
12
  } catch (e) {
16
13
  if (e instanceof SystemError) {
17
14
  logger.logSystemError(e);
package/dist/cli.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import type { Logger } from './logger/logger.js';
2
+ export interface ParsedArgs {
3
+ project: string;
4
+ }
5
+ /**
6
+ * Parse command-line arguments.
7
+ * If `--help` or `--version` is passed, print the corresponding information and exit the process.
8
+ */
9
+ export declare function parseCLIArgs(args: string[], cwd: string, logger: Logger): ParsedArgs;
10
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAWjD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAqBpF"}
package/dist/cli.js ADDED
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseCLIArgs = parseCLIArgs;
7
+ const node_util_1 = require("node:util");
8
+ const core_1 = require("@css-modules-kit/core");
9
+ const package_json_1 = __importDefault(require("../package.json"));
10
+ const helpText = `
11
+ Usage: cmk [options]
12
+
13
+ Options:
14
+ --help, -h Show help information
15
+ --version, -v Show version number
16
+ --project, -p The path to its configuration file, or to a folder with a 'tsconfig.json'.
17
+ `;
18
+ /**
19
+ * Parse command-line arguments.
20
+ * If `--help` or `--version` is passed, print the corresponding information and exit the process.
21
+ */
22
+ function parseCLIArgs(args, cwd, logger) {
23
+ const { values } = (0, node_util_1.parseArgs)({
24
+ args,
25
+ options: {
26
+ help: { type: 'boolean', short: 'h' },
27
+ version: { type: 'boolean', short: 'v' },
28
+ project: { type: 'string', short: 'p', default: '.' },
29
+ },
30
+ });
31
+ if (values.help) {
32
+ logger.logMessage(helpText);
33
+ // eslint-disable-next-line n/no-process-exit
34
+ process.exit(0);
35
+ }
36
+ else if (values.version) {
37
+ logger.logMessage(package_json_1.default.version);
38
+ // eslint-disable-next-line n/no-process-exit
39
+ process.exit(0);
40
+ }
41
+ return {
42
+ project: (0, core_1.resolve)(cwd, values.project),
43
+ };
44
+ }
45
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAsBA,oCAqBC;AA3CD,yCAAsC;AACtC,gDAAgD;AAChD,mEAA0C;AAG1C,MAAM,QAAQ,GAAG;;;;;;;CAOhB,CAAC;AAMF;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAc,EAAE,GAAW,EAAE,MAAc;IACtE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,qBAAS,EAAC;QAC3B,IAAI;QACJ,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YACxC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;SACtD;KACF,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5B,6CAA6C;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,UAAU,CAAC,sBAAW,CAAC,OAAO,CAAC,CAAC;QACvC,6CAA6C;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAA,cAAO,EAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC;KACtC,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { runCMK } from './runner.js';
2
2
  export { type Logger, createLogger } from './logger/logger.js';
3
3
  export { WriteDtsFileError, ReadCSSModuleFileError } from './error.js';
4
+ export { parseCLIArgs } from './cli.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReadCSSModuleFileError = exports.WriteDtsFileError = exports.createLogger = exports.runCMK = void 0;
3
+ exports.parseCLIArgs = exports.ReadCSSModuleFileError = exports.WriteDtsFileError = exports.createLogger = exports.runCMK = void 0;
4
4
  var runner_js_1 = require("./runner.js");
5
5
  Object.defineProperty(exports, "runCMK", { enumerable: true, get: function () { return runner_js_1.runCMK; } });
6
6
  var logger_js_1 = require("./logger/logger.js");
@@ -8,4 +8,6 @@ Object.defineProperty(exports, "createLogger", { enumerable: true, get: function
8
8
  var error_js_1 = require("./error.js");
9
9
  Object.defineProperty(exports, "WriteDtsFileError", { enumerable: true, get: function () { return error_js_1.WriteDtsFileError; } });
10
10
  Object.defineProperty(exports, "ReadCSSModuleFileError", { enumerable: true, get: function () { return error_js_1.ReadCSSModuleFileError; } });
11
+ var cli_js_1 = require("./cli.js");
12
+ Object.defineProperty(exports, "parseCLIArgs", { enumerable: true, get: function () { return cli_js_1.parseCLIArgs; } });
11
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAA5B,mGAAA,MAAM,OAAA;AACf,gDAA+D;AAAzC,yGAAA,YAAY,OAAA;AAClC,uCAAuE;AAA9D,6GAAA,iBAAiB,OAAA;AAAE,kHAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAA5B,mGAAA,MAAM,OAAA;AACf,gDAA+D;AAAzC,yGAAA,YAAY,OAAA;AAClC,uCAAuE;AAA9D,6GAAA,iBAAiB,OAAA;AAAE,kHAAA,sBAAsB,OAAA;AAClD,mCAAwC;AAA/B,sGAAA,YAAY,OAAA"}
@@ -2,6 +2,7 @@ import type { Diagnostic, SystemError } from '@css-modules-kit/core';
2
2
  export interface Logger {
3
3
  logDiagnostics(diagnostics: Diagnostic[]): void;
4
4
  logSystemError(error: SystemError): void;
5
+ logMessage(message: string): void;
5
6
  }
6
7
  export declare function createLogger(cwd: string): Logger;
7
8
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGrE,MAAM,WAAW,MAAM;IACrB,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAChD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CAC1C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAahD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGrE,MAAM,WAAW,MAAM;IACrB,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAChD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBhD"}
@@ -14,6 +14,9 @@ function createLogger(cwd) {
14
14
  logSystemError(error) {
15
15
  process.stderr.write(`${(0, formatter_js_1.formatSystemError)(error)}\n`);
16
16
  },
17
+ logMessage(message) {
18
+ process.stdout.write(`${message}\n`);
19
+ },
17
20
  };
18
21
  }
19
22
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":";;AAQA,oCAaC;AApBD,iDAAqE;AAOrE,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO;QACL,cAAc,CAAC,WAAyB;YACtC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAA,+BAAgB,EAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC;YACvD,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,cAAc,CAAC,KAAkB;YAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,gCAAiB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":";;AASA,oCAgBC;AAxBD,iDAAqE;AAQrE,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO;QACL,cAAc,CAAC,WAAyB;YACtC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAA,+BAAgB,EAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC;YACvD,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,cAAc,CAAC,KAAkB;YAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,gCAAiB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;QACD,UAAU,CAAC,OAAe;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;QACvC,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/runner.js CHANGED
@@ -8,7 +8,7 @@ const error_js_1 = require("./error.js");
8
8
  /**
9
9
  * @throws {ReadCSSModuleFileError} When failed to read CSS Module file.
10
10
  */
11
- async function parseCSSModuleByFileName(fileName, { dashedIdents }) {
11
+ async function parseCSSModuleByFileName(fileName) {
12
12
  let text;
13
13
  try {
14
14
  text = await (0, promises_1.readFile)(fileName, 'utf-8');
@@ -16,7 +16,7 @@ async function parseCSSModuleByFileName(fileName, { dashedIdents }) {
16
16
  catch (error) {
17
17
  throw new error_js_1.ReadCSSModuleFileError(fileName, error);
18
18
  }
19
- return (0, core_1.parseCSSModule)(text, { fileName, dashedIdents, safe: false });
19
+ return (0, core_1.parseCSSModule)(text, { fileName, safe: false });
20
20
  }
21
21
  /**
22
22
  * @throws {WriteDtsFileError}
@@ -58,7 +58,7 @@ async function runCMK(project, logger) {
58
58
  ]);
59
59
  return;
60
60
  }
61
- const parseResults = await Promise.all(fileNames.map(async (fileName) => parseCSSModuleByFileName(fileName, config)));
61
+ const parseResults = await Promise.all(fileNames.map(async (fileName) => parseCSSModuleByFileName(fileName)));
62
62
  for (const parseResult of parseResults) {
63
63
  cssModuleMap.set(parseResult.cssModule.fileName, parseResult.cssModule);
64
64
  syntacticDiagnostics.push(...parseResult.diagnostics);
@@ -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.0.1",
4
+ "version": "0.1.0",
5
5
  "type": "commonjs",
6
6
  "sideEffects": false,
7
7
  "repository": {
@@ -46,7 +46,7 @@
46
46
  "dist"
47
47
  ],
48
48
  "dependencies": {
49
- "@css-modules-kit/core": "^0.0.1"
49
+ "@css-modules-kit/core": "^0.0.2"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "typescript": "^5.7.3"
package/src/cli.ts ADDED
@@ -0,0 +1,44 @@
1
+ import { parseArgs } from 'node:util';
2
+ import { resolve } from '@css-modules-kit/core';
3
+ import packageJson from '../package.json';
4
+ import type { Logger } from './logger/logger.js';
5
+
6
+ const helpText = `
7
+ Usage: cmk [options]
8
+
9
+ Options:
10
+ --help, -h Show help information
11
+ --version, -v Show version number
12
+ --project, -p The path to its configuration file, or to a folder with a 'tsconfig.json'.
13
+ `;
14
+
15
+ export interface ParsedArgs {
16
+ project: string;
17
+ }
18
+
19
+ /**
20
+ * Parse command-line arguments.
21
+ * If `--help` or `--version` is passed, print the corresponding information and exit the process.
22
+ */
23
+ export function parseCLIArgs(args: string[], cwd: string, logger: Logger): ParsedArgs {
24
+ const { values } = parseArgs({
25
+ args,
26
+ options: {
27
+ help: { type: 'boolean', short: 'h' },
28
+ version: { type: 'boolean', short: 'v' },
29
+ project: { type: 'string', short: 'p', default: '.' },
30
+ },
31
+ });
32
+ if (values.help) {
33
+ logger.logMessage(helpText);
34
+ // eslint-disable-next-line n/no-process-exit
35
+ process.exit(0);
36
+ } else if (values.version) {
37
+ logger.logMessage(packageJson.version);
38
+ // eslint-disable-next-line n/no-process-exit
39
+ process.exit(0);
40
+ }
41
+ return {
42
+ project: resolve(cwd, values.project),
43
+ };
44
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { runCMK } from './runner.js';
2
2
  export { type Logger, createLogger } from './logger/logger.js';
3
3
  export { WriteDtsFileError, ReadCSSModuleFileError } from './error.js';
4
+ export { parseCLIArgs } from './cli.js';
@@ -4,6 +4,7 @@ import { formatDiagnostic, formatSystemError } from './formatter.js';
4
4
  export interface Logger {
5
5
  logDiagnostics(diagnostics: Diagnostic[]): void;
6
6
  logSystemError(error: SystemError): void;
7
+ logMessage(message: string): void;
7
8
  }
8
9
 
9
10
  export function createLogger(cwd: string): Logger {
@@ -18,5 +19,8 @@ export function createLogger(cwd: string): Logger {
18
19
  logSystemError(error: SystemError): void {
19
20
  process.stderr.write(`${formatSystemError(error)}\n`);
20
21
  },
22
+ logMessage(message: string): void {
23
+ process.stdout.write(`${message}\n`);
24
+ },
21
25
  };
22
26
  }
package/src/runner.ts CHANGED
@@ -25,14 +25,14 @@ import type { Logger } from './logger/logger.js';
25
25
  /**
26
26
  * @throws {ReadCSSModuleFileError} When failed to read CSS Module file.
27
27
  */
28
- async function parseCSSModuleByFileName(fileName: string, { dashedIdents }: CMKConfig): Promise<ParseCSSModuleResult> {
28
+ async function parseCSSModuleByFileName(fileName: string): Promise<ParseCSSModuleResult> {
29
29
  let text: string;
30
30
  try {
31
31
  text = await readFile(fileName, 'utf-8');
32
32
  } catch (error) {
33
33
  throw new ReadCSSModuleFileError(fileName, error);
34
34
  }
35
- return parseCSSModule(text, { fileName, dashedIdents, safe: false });
35
+ return parseCSSModule(text, { fileName, safe: false });
36
36
  }
37
37
 
38
38
  /**
@@ -84,7 +84,7 @@ export async function runCMK(project: string, logger: Logger): Promise<void> {
84
84
  ]);
85
85
  return;
86
86
  }
87
- const parseResults = await Promise.all(fileNames.map(async (fileName) => parseCSSModuleByFileName(fileName, config)));
87
+ const parseResults = await Promise.all(fileNames.map(async (fileName) => parseCSSModuleByFileName(fileName)));
88
88
  for (const parseResult of parseResults) {
89
89
  cssModuleMap.set(parseResult.cssModule.fileName, parseResult.cssModule);
90
90
  syntacticDiagnostics.push(...parseResult.diagnostics);