@@ -4,6 +4,7 @@ import { cosmiconfigSync, LoaderSync } from "cosmiconfig"
4
4
import path from "path"
5
5
import { makeConfig } from "./makeConfig"
6
6
import type { JITIOptions } from "jiti/dist/types"
7
+ import chalk from "chalk"
7
8
8
9
function configExists ( path : string ) {
9
10
return path && fs . existsSync ( path )
@@ -19,6 +20,29 @@ function JitiLoader(): LoaderSync {
19
20
}
20
21
}
21
22
23
+ const moduleName = "lingui"
24
+
25
+ const configExplorer = cosmiconfigSync ( moduleName , {
26
+ searchPlaces : [
27
+ `${ moduleName } .config.js` ,
28
+ `${ moduleName } .config.cjs` ,
29
+ `${ moduleName } .config.ts` ,
30
+ `${ moduleName } .config.mjs` ,
31
+ "package.json" ,
32
+ `.${ moduleName } rc` ,
33
+ `.${ moduleName } rc.json` ,
34
+ `.${ moduleName } rc.yaml` ,
35
+ `.${ moduleName } rc.yml` ,
36
+ `.${ moduleName } rc.ts` ,
37
+ `.${ moduleName } rc.js` ,
38
+ ] ,
39
+ loaders : {
40
+ ".js" : JitiLoader ( ) ,
41
+ ".ts" : JitiLoader ( ) ,
42
+ ".mjs" : JitiLoader ( ) ,
43
+ } ,
44
+ } )
45
+
22
46
export function getConfig ( {
23
47
cwd,
24
48
configPath,
@@ -29,34 +53,27 @@ export function getConfig({
29
53
skipValidation ?: boolean
30
54
} = { } ) : LinguiConfigNormalized {
31
55
const defaultRootDir = cwd || process . cwd ( )
32
- const moduleName = "lingui"
33
-
34
- const configExplorer = cosmiconfigSync ( moduleName , {
35
- searchPlaces : [
36
- `${ moduleName } .config.js` ,
37
- `${ moduleName } .config.cjs` ,
38
- `${ moduleName } .config.ts` ,
39
- `${ moduleName } .config.mjs` ,
40
- "package.json" ,
41
- `.${ moduleName } rc` ,
42
- `.${ moduleName } rc.json` ,
43
- `.${ moduleName } rc.yaml` ,
44
- `.${ moduleName } rc.yml` ,
45
- `.${ moduleName } rc.ts` ,
46
- `.${ moduleName } rc.js` ,
47
- ] ,
48
- loaders : {
49
- ".js" : JitiLoader ( ) ,
50
- ".ts" : JitiLoader ( ) ,
51
- ".mjs" : JitiLoader ( ) ,
52
- } ,
53
- } )
54
56
55
57
configPath = configPath || process . env . LINGUI_CONFIG
56
58
57
59
const result = configExists ( configPath )
58
60
? configExplorer . load ( configPath )
59
61
: configExplorer . search ( defaultRootDir )
62
+
63
+ if ( ! result ) {
64
+ console . error ( "Lingui was unable to find a config!\n" )
65
+ console . error (
66
+ `Create ${ chalk . bold (
67
+ "'lingui.config.js'"
68
+ ) } file with LinguiJS configuration in root of your project (next to package.json). See ${ chalk . underline (
69
+ "https://lingui.dev/ref/conf"
70
+ ) } `
71
+ )
72
+
73
+ // gracefully stop further executing
74
+ throw new Error ( "No Config" )
75
+ }
76
+
60
77
const userConfig = result ? result . config : { }
61
78
62
79
return makeConfig (
0 commit comments