Skip to content

Commit b65aced

Browse files
songhn233AdeAttwood
authored andcommitted
feat(load): add cosmiconfig typescript loader
1 parent 444966e commit b65aced

File tree

3 files changed

+96
-2
lines changed

3 files changed

+96
-2
lines changed

@commitlint/load/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"@commitlint/execute-rule": "^13.0.0",
4545
"@commitlint/resolve-extends": "^13.0.0",
4646
"@commitlint/types": "^13.1.0",
47+
"@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2",
4748
"chalk": "^4.0.0",
4849
"cosmiconfig": "^7.0.0",
4950
"lodash": "^4.17.19",

@commitlint/load/src/utils/load-config.ts

+18-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import path from 'path';
22
import {cosmiconfig} from 'cosmiconfig';
3+
import TSLoader from '@endemolshinegroup/cosmiconfig-typescript-loader';
34

45
export interface LoadConfigResult {
56
config: unknown;
@@ -11,7 +12,23 @@ export async function loadConfig(
1112
cwd: string,
1213
configPath?: string
1314
): Promise<LoadConfigResult | null> {
14-
const explorer = cosmiconfig('commitlint');
15+
const moduleName = 'commitlint';
16+
const explorer = cosmiconfig('commitlint', {
17+
searchPlaces: [
18+
'package.json',
19+
`.${moduleName}rc`,
20+
`.${moduleName}rc.json`,
21+
`.${moduleName}rc.yaml`,
22+
`.${moduleName}rc.yml`,
23+
`.${moduleName}rc.ts`,
24+
`.${moduleName}rc.js`,
25+
`${moduleName}.config.ts`,
26+
`${moduleName}.config.js`,
27+
],
28+
loaders: {
29+
'.ts': TSLoader,
30+
},
31+
});
1532

1633
const explicitPath = configPath ? path.resolve(cwd, configPath) : undefined;
1734
const explore = explicitPath ? explorer.load : explorer.search;

yarn.lock

+77-1
Original file line numberDiff line numberDiff line change
@@ -1265,6 +1265,16 @@
12651265
resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
12661266
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
12671267

1268+
"@endemolshinegroup/cosmiconfig-typescript-loader@^3.0.2":
1269+
version "3.0.2"
1270+
resolved "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d"
1271+
integrity sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==
1272+
dependencies:
1273+
lodash.get "^4"
1274+
make-error "^1"
1275+
ts-node "^9"
1276+
tslib "^2"
1277+
12681278
"@eslint/eslintrc@^0.4.3":
12691279
version "0.4.3"
12701280
resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
@@ -2962,6 +2972,11 @@ are-we-there-yet@~1.1.2:
29622972
delegates "^1.0.0"
29632973
readable-stream "^2.0.6"
29642974

2975+
arg@^4.1.0:
2976+
version "4.1.3"
2977+
resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
2978+
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
2979+
29652980
argparse@^1.0.7:
29662981
version "1.0.10"
29672982
resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -4051,6 +4066,11 @@ cp-file@^7.0.0:
40514066
nested-error-stacks "^2.0.0"
40524067
p-event "^4.1.0"
40534068

4069+
create-require@^1.1.0:
4070+
version "1.1.1"
4071+
resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
4072+
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
4073+
40544074
cross-spawn@^7.0.2, cross-spawn@^7.0.3:
40554075
version "7.0.3"
40564076
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -4323,6 +4343,11 @@ diff-sequences@^27.0.6:
43234343
resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723"
43244344
integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==
43254345

4346+
diff@^4.0.1:
4347+
version "4.0.2"
4348+
resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
4349+
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
4350+
43264351
dir-glob@^3.0.1:
43274352
version "3.0.1"
43284353
resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
@@ -7224,6 +7249,11 @@ lodash.debounce@^4.0.8:
72247249
resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
72257250
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
72267251

7252+
lodash.get@^4:
7253+
version "4.4.2"
7254+
resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
7255+
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
7256+
72277257
lodash.ismatch@^4.4.0:
72287258
version "4.4.0"
72297259
resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37"
@@ -7264,11 +7294,21 @@ lodash.truncate@^4.4.2:
72647294
resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
72657295
integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
72667296

7267-
[email protected], [email protected], lodash@^3.3.1, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.5.1, lodash@^4.7.0:
7297+
7298+
version "4.17.15"
7299+
resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
7300+
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
7301+
7302+
[email protected], lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.5.1, lodash@^4.7.0:
72687303
version "4.17.21"
72697304
resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
72707305
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
72717306

7307+
lodash@^3.3.1:
7308+
version "3.10.1"
7309+
resolved "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
7310+
integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
7311+
72727312
log-symbols@^4.1.0:
72737313
version "4.1.0"
72747314
resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
@@ -7352,6 +7392,11 @@ [email protected]:
73527392
resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
73537393
integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
73547394

7395+
make-error@^1, make-error@^1.1.1:
7396+
version "1.3.6"
7397+
resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
7398+
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
7399+
73557400
make-fetch-happen@^8.0.9:
73567401
version "8.0.14"
73577402
resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222"
@@ -7595,6 +7640,7 @@ minipass-fetch@^1.3.0, minipass-fetch@^1.3.2:
75957640
resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a"
75967641
integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==
75977642
dependencies:
7643+
encoding "^0.1.12"
75987644
minipass "^3.1.0"
75997645
minipass-sized "^1.0.3"
76007646
minizlib "^2.0.0"
@@ -9587,6 +9633,14 @@ source-map-resolve@^0.5.0:
95879633
source-map-url "^0.4.0"
95889634
urix "^0.1.0"
95899635

9636+
source-map-support@^0.5.17:
9637+
version "0.5.19"
9638+
resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
9639+
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
9640+
dependencies:
9641+
buffer-from "^1.0.0"
9642+
source-map "^0.6.0"
9643+
95909644
source-map-support@^0.5.6:
95919645
version "0.5.16"
95929646
resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
@@ -10219,6 +10273,18 @@ [email protected]:
1021910273
semver "7.x"
1022010274
yargs-parser "20.x"
1022110275

10276+
ts-node@^9:
10277+
version "9.1.1"
10278+
resolved "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d"
10279+
integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==
10280+
dependencies:
10281+
arg "^4.1.0"
10282+
create-require "^1.1.0"
10283+
diff "^4.0.1"
10284+
make-error "^1.1.1"
10285+
source-map-support "^0.5.17"
10286+
yn "3.1.1"
10287+
1022210288
tsconfig-paths@^3.9.0:
1022310289
version "3.10.1"
1022410290
resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz#79ae67a68c15289fdf5c51cb74f397522d795ed7"
@@ -10238,6 +10304,11 @@ tslib@^1.9.0:
1023810304
resolved "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
1023910305
integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
1024010306

10307+
tslib@^2:
10308+
version "2.3.0"
10309+
resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
10310+
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
10311+
1024110312
tsutils@^3.21.0:
1024210313
version "3.21.0"
1024310314
resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
@@ -10921,3 +10992,8 @@ yargs@^17.0.0:
1092110992
string-width "^4.2.0"
1092210993
y18n "^5.0.5"
1092310994
yargs-parser "^20.2.2"
10995+
10996+
10997+
version "3.1.1"
10998+
resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
10999+
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==

0 commit comments

Comments
 (0)