@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 +13 -3
- package/bin/cmk.mjs +4 -7
- package/dist/cli.d.ts +10 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +45 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/logger/logger.d.ts +1 -0
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +3 -0
- package/dist/logger/logger.js.map +1 -1
- package/dist/runner.js +3 -3
- package/dist/runner.js.map +1 -1
- package/package.json +2 -2
- package/src/cli.ts +44 -0
- package/src/index.ts +1 -0
- package/src/logger/logger.ts +4 -0
- package/src/runner.ts +3 -3
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
|
-
|
|
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
|
-
##
|
|
29
|
+
## Configuration
|
|
20
30
|
|
|
21
|
-
See [css-modules-kit's README](https://github.com/mizdra/css-modules-kit?tab=readme-ov-file#
|
|
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
|
package/dist/cli.js.map
ADDED
|
@@ -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
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/logger/logger.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/logger/logger.js
CHANGED
|
@@ -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":";;
|
|
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
|
|
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,
|
|
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
|
|
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);
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":";;AA6DA,wBAwDC;AArHD,+CAA4C;AAU5C,gDAS+B;AAC/B,mDAA+C;AAC/C,yCAAoD;AAGpD;;GAEG;AACH,KAAK,UAAU,wBAAwB,CAAC,QAAgB
|
|
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
|
|
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.
|
|
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
package/src/logger/logger.ts
CHANGED
|
@@ -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
|
|
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,
|
|
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
|
|
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);
|