@@ -4,6 +4,7 @@ import { cosmiconfigSync, LoaderSync } from "cosmiconfig"
44import path from "path"
55import { makeConfig } from "./makeConfig"
66import type { JITIOptions } from "jiti/dist/types"
7+ import chalk from "chalk"
78
89function configExists ( path : string ) {
910 return path && fs . existsSync ( path )
@@ -19,6 +20,29 @@ function JitiLoader(): LoaderSync {
1920 }
2021}
2122
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+
2246export function getConfig ( {
2347 cwd,
2448 configPath,
@@ -29,34 +53,27 @@ export function getConfig({
2953 skipValidation ?: boolean
3054} = { } ) : LinguiConfigNormalized {
3155 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- } )
5456
5557 configPath = configPath || process . env . LINGUI_CONFIG
5658
5759 const result = configExists ( configPath )
5860 ? configExplorer . load ( configPath )
5961 : 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+
6077 const userConfig = result ? result . config : { }
6178
6279 return makeConfig (
0 commit comments