diff --git a/@commitlint/load/fixtures/basic-config/.commitlintrc.cts b/@commitlint/load/fixtures/basic-config/.commitlintrc.cts new file mode 100644 index 0000000000..334863d493 --- /dev/null +++ b/@commitlint/load/fixtures/basic-config/.commitlintrc.cts @@ -0,0 +1,10 @@ +'use strict'; + +module.exports = { + formatter: '@commitlint/format', + rules: { + zero: [0, 'never'], + one: [1, 'always'], + two: [2, 'never'], + }, +}; diff --git a/@commitlint/load/fixtures/basic-config/commitlint.config.cts b/@commitlint/load/fixtures/basic-config/commitlint.config.cts new file mode 100644 index 0000000000..334863d493 --- /dev/null +++ b/@commitlint/load/fixtures/basic-config/commitlint.config.cts @@ -0,0 +1,10 @@ +'use strict'; + +module.exports = { + formatter: '@commitlint/format', + rules: { + zero: [0, 'never'], + one: [1, 'always'], + two: [2, 'never'], + }, +}; diff --git a/@commitlint/load/fixtures/basic-config/esm/.commitlintrc.mts b/@commitlint/load/fixtures/basic-config/esm/.commitlintrc.mts new file mode 100644 index 0000000000..a20d2fcc47 --- /dev/null +++ b/@commitlint/load/fixtures/basic-config/esm/.commitlintrc.mts @@ -0,0 +1,8 @@ +export default { + formatter: '@commitlint/format', + rules: { + zero: [0, 'never'], + one: [1, 'always'], + two: [2, 'never'], + }, +}; diff --git a/@commitlint/load/fixtures/basic-config/esm/commitlint.config.mts b/@commitlint/load/fixtures/basic-config/esm/commitlint.config.mts new file mode 100644 index 0000000000..a20d2fcc47 --- /dev/null +++ b/@commitlint/load/fixtures/basic-config/esm/commitlint.config.mts @@ -0,0 +1,8 @@ +export default { + formatter: '@commitlint/format', + rules: { + zero: [0, 'never'], + one: [1, 'always'], + two: [2, 'never'], + }, +}; diff --git a/@commitlint/load/fixtures/extends-config/.commitlintrc.cts b/@commitlint/load/fixtures/extends-config/.commitlintrc.cts new file mode 100644 index 0000000000..2aa74d3434 --- /dev/null +++ b/@commitlint/load/fixtures/extends-config/.commitlintrc.cts @@ -0,0 +1,8 @@ +'use strict'; + +module.exports = { + extends: ['./first-extended'], + rules: { + zero: [0, 'never'], + }, +}; diff --git a/@commitlint/load/fixtures/extends-config/commitlint.config.cts b/@commitlint/load/fixtures/extends-config/commitlint.config.cts new file mode 100644 index 0000000000..2aa74d3434 --- /dev/null +++ b/@commitlint/load/fixtures/extends-config/commitlint.config.cts @@ -0,0 +1,8 @@ +'use strict'; + +module.exports = { + extends: ['./first-extended'], + rules: { + zero: [0, 'never'], + }, +}; diff --git a/@commitlint/load/fixtures/extends-config/esm/.commitlintrc.mts b/@commitlint/load/fixtures/extends-config/esm/.commitlintrc.mts new file mode 100644 index 0000000000..15c1ee28ad --- /dev/null +++ b/@commitlint/load/fixtures/extends-config/esm/.commitlintrc.mts @@ -0,0 +1,6 @@ +export default { + extends: ['./first-extended'], + rules: { + zero: [0, 'never'], + }, +}; diff --git a/@commitlint/load/fixtures/extends-config/esm/commitlint.config.mts b/@commitlint/load/fixtures/extends-config/esm/commitlint.config.mts new file mode 100644 index 0000000000..15c1ee28ad --- /dev/null +++ b/@commitlint/load/fixtures/extends-config/esm/commitlint.config.mts @@ -0,0 +1,6 @@ +export default { + extends: ['./first-extended'], + rules: { + zero: [0, 'never'], + }, +}; diff --git a/@commitlint/load/src/load.test.ts b/@commitlint/load/src/load.test.ts index 43a02d4bf5..ec2fff4731 100644 --- a/@commitlint/load/src/load.test.ts +++ b/@commitlint/load/src/load.test.ts @@ -240,6 +240,8 @@ describe.each([["basic"], ["extends"]])("%s config", (template) => { "commitlint.config.cjs", "commitlint.config.js", "commitlint.config.mjs", + "commitlint.config.mts", + "commitlint.config.cts", "package.json", "package.yaml", ".commitlintrc", @@ -247,17 +249,21 @@ describe.each([["basic"], ["extends"]])("%s config", (template) => { ".commitlintrc.js", ".commitlintrc.json", ".commitlintrc.mjs", + ".commitlintrc.mts", + ".commitlintrc.cts", ".commitlintrc.yml", ".commitlintrc.yaml", ]; const configTestCases = [ ...configFiles - .filter((filename) => !filename.endsWith(".mjs")) + .filter( + (filename) => !filename.endsWith(".mjs") && !filename.endsWith(".mts"), + ) .map((filename) => ({ filename, isEsm: false })), ...configFiles .filter((filename) => - [".mjs", ".js"].some((ext) => filename.endsWith(ext)), + [".mjs", ".js", ".mts"].some((ext) => filename.endsWith(ext)), ) .map((filename) => ({ filename, isEsm: true })), ]; diff --git a/@commitlint/load/src/utils/load-config.ts b/@commitlint/load/src/utils/load-config.ts index 0db5148ae6..b7a2ea288a 100644 --- a/@commitlint/load/src/utils/load-config.ts +++ b/@commitlint/load/src/utils/load-config.ts @@ -58,12 +58,15 @@ export async function loadConfig( // files supported by TypescriptLoader `.${moduleName}rc.ts`, `.${moduleName}rc.cts`, + `.${moduleName}rc.mts`, `${moduleName}.config.ts`, `${moduleName}.config.cts`, + `${moduleName}.config.mts`, ], loaders: { ".ts": tsLoader, ".cts": tsLoader, + ".mts": tsLoader, ".cjs": loaders[".cjs"], ".js": loaders[".js"], }, diff --git a/README.md b/README.md index 2219e7aa4a..d3be915ae5 100644 --- a/README.md +++ b/README.md @@ -107,11 +107,13 @@ These can be modified by [your own configuration](#config). - `.commitlintrc.mjs` - `.commitlintrc.ts` - `.commitlintrc.cts` + - `.commitlintrc.mts` - `commitlint.config.js` - `commitlint.config.cjs` - `commitlint.config.mjs` - `commitlint.config.ts` - `commitlint.config.cts` + - `commitlint.config.mts` - `commitlint` field in `package.json` - `commitlint` field in [`package.yaml`](https://github.com/pnpm/pnpm/pull/1799) - Packages: [cli](./@commitlint/cli), [core](./@commitlint/core) diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index b9a332202c..61b810e251 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -13,11 +13,13 @@ - `.commitlintrc.mjs` - `.commitlintrc.ts` - `.commitlintrc.cts` +- `.commitlintrc.mts` - `commitlint.config.js` - `commitlint.config.cjs` - `commitlint.config.mjs` - `commitlint.config.ts` - `commitlint.config.cts` +- `commitlint.config.mts` The file is expected