@intlayer/config 1.0.1 → 1.2.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/dist/cjs/configFile/buildConfigurationFields.cjs +253 -38
- package/dist/cjs/configFile/buildConfigurationFields.cjs.map +1 -1
- package/dist/cjs/configFile/buildConfigurationFields.d.ts +3 -0
- package/dist/cjs/configFile/getConfiguration.cjs.map +1 -1
- package/dist/cjs/configFile/getConfiguration.d.ts +3 -0
- package/dist/cjs/configFile/index.cjs +3 -1
- package/dist/cjs/configFile/index.cjs.map +1 -1
- package/dist/cjs/configFile/index.d.ts +1 -0
- package/dist/cjs/configFile/loadConfigurationFile.cjs +8 -1
- package/dist/cjs/configFile/loadConfigurationFile.cjs.map +1 -1
- package/dist/cjs/configFile/loadConfigurationFile.d.ts +6 -0
- package/dist/cjs/configFile/searchConfigurationFile.cjs.map +1 -1
- package/dist/cjs/configFile/searchConfigurationFile.d.ts +11 -0
- package/dist/cjs/defaultValues/internationalization.cjs +1 -5
- package/dist/cjs/defaultValues/internationalization.cjs.map +1 -1
- package/dist/cjs/defaultValues/internationalization.d.ts +1 -1
- package/dist/cjs/defaultValues/server.cjs +0 -6
- package/dist/cjs/defaultValues/server.cjs.map +1 -1
- package/dist/cjs/defaultValues/server.d.ts +1 -3
- package/dist/cjs/envVariables/detectPlatform.cjs +53 -0
- package/dist/cjs/envVariables/detectPlatform.cjs.map +1 -0
- package/dist/cjs/envVariables/detectPlatform.d.ts +11 -0
- package/dist/cjs/envVariables/extractEnvVariable.cjs +211 -0
- package/dist/cjs/envVariables/extractEnvVariable.cjs.map +1 -0
- package/dist/cjs/envVariables/extractEnvVariable.d.ts +13 -0
- package/dist/cjs/envVariables/formatEnvVariable.cjs +6 -4
- package/dist/cjs/envVariables/formatEnvVariable.cjs.map +1 -1
- package/dist/cjs/envVariables/formatEnvVariable.d.ts +6 -1
- package/dist/cjs/envVariables/getConfiguration.cjs +37 -38
- package/dist/cjs/envVariables/getConfiguration.cjs.map +1 -1
- package/dist/cjs/envVariables/getConfiguration.d.ts +5 -0
- package/dist/cjs/envVariables/index.d.ts +1 -0
- package/dist/cjs/envVariables/utils.cjs +7 -6
- package/dist/cjs/envVariables/utils.cjs.map +1 -1
- package/dist/cjs/envVariables/utils.d.ts +5 -5
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/types/config.cjs.map +1 -1
- package/dist/cjs/types/config.d.ts +212 -6
- package/dist/cjs/types/locales.cjs.map +1 -1
- package/dist/cjs/types/locales.d.ts +233 -0
- package/dist/esm/configFile/buildConfigurationFields.d.mts +3 -0
- package/dist/esm/configFile/buildConfigurationFields.mjs +253 -40
- package/dist/esm/configFile/buildConfigurationFields.mjs.map +1 -1
- package/dist/esm/configFile/getConfiguration.d.mts +3 -0
- package/dist/esm/configFile/getConfiguration.mjs.map +1 -1
- package/dist/esm/configFile/index.d.mts +1 -0
- package/dist/esm/configFile/index.mjs +1 -0
- package/dist/esm/configFile/index.mjs.map +1 -1
- package/dist/esm/configFile/loadConfigurationFile.d.mts +6 -0
- package/dist/esm/configFile/loadConfigurationFile.mjs +8 -1
- package/dist/esm/configFile/loadConfigurationFile.mjs.map +1 -1
- package/dist/esm/configFile/searchConfigurationFile.d.mts +11 -0
- package/dist/esm/configFile/searchConfigurationFile.mjs.map +1 -1
- package/dist/esm/defaultValues/internationalization.d.mts +1 -1
- package/dist/esm/defaultValues/internationalization.mjs +1 -5
- package/dist/esm/defaultValues/internationalization.mjs.map +1 -1
- package/dist/esm/defaultValues/server.d.mts +1 -3
- package/dist/esm/defaultValues/server.mjs +0 -4
- package/dist/esm/defaultValues/server.mjs.map +1 -1
- package/dist/esm/envVariables/detectPlatform.d.mts +11 -0
- package/dist/esm/envVariables/detectPlatform.mjs +27 -0
- package/dist/esm/envVariables/detectPlatform.mjs.map +1 -0
- package/dist/esm/envVariables/extractEnvVariable.d.mts +13 -0
- package/dist/esm/envVariables/extractEnvVariable.mjs +186 -0
- package/dist/esm/envVariables/extractEnvVariable.mjs.map +1 -0
- package/dist/esm/envVariables/formatEnvVariable.d.mts +6 -1
- package/dist/esm/envVariables/formatEnvVariable.mjs +6 -4
- package/dist/esm/envVariables/formatEnvVariable.mjs.map +1 -1
- package/dist/esm/envVariables/getConfiguration.d.mts +5 -0
- package/dist/esm/envVariables/getConfiguration.mjs +37 -38
- package/dist/esm/envVariables/getConfiguration.mjs.map +1 -1
- package/dist/esm/envVariables/index.d.mts +1 -0
- package/dist/esm/envVariables/utils.d.mts +5 -5
- package/dist/esm/envVariables/utils.mjs +7 -6
- package/dist/esm/envVariables/utils.mjs.map +1 -1
- package/dist/esm/index.d.mts +1 -0
- package/dist/esm/types/config.d.mts +212 -6
- package/dist/esm/types/locales.d.mts +233 -0
- package/dist/esm/types/locales.mjs.map +1 -1
- package/package.json +5 -5
- package/src/configFile/buildConfigurationFields.ts +258 -47
- package/src/configFile/getConfiguration.ts +3 -0
- package/src/configFile/index.ts +1 -0
- package/src/configFile/loadConfigurationFile.ts +19 -1
- package/src/configFile/searchConfigurationFile.ts +11 -0
- package/src/defaultValues/internationalization.ts +2 -6
- package/src/defaultValues/server.ts +0 -4
- package/src/envVariables/detectPlatform.ts +37 -0
- package/src/envVariables/extractEnvVariable.ts +224 -0
- package/src/envVariables/formatEnvVariable.ts +17 -11
- package/src/envVariables/getConfiguration.ts +43 -38
- package/src/envVariables/utils.ts +30 -13
- package/src/types/config.ts +237 -65
- package/src/types/locales.ts +233 -233
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
InternationalizationConfig,
|
|
3
|
+
MiddlewareConfig,
|
|
4
|
+
ContentConfig,
|
|
5
|
+
} from '../types/config';
|
|
6
|
+
import { type ViteEnvVar, getPlatform } from './detectPlatform';
|
|
7
|
+
|
|
8
|
+
// Utility type that replaces all values of a given type with another type
|
|
9
|
+
type ReplaceValue<T> = {
|
|
10
|
+
[K in keyof T]: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const extractNextEnvVariable = () => {
|
|
14
|
+
if (typeof process === 'undefined') {
|
|
15
|
+
return extractEmptyEnvVariable();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const env = process.env;
|
|
19
|
+
|
|
20
|
+
const intlayerIntlConfiguration: ReplaceValue<InternationalizationConfig> = {
|
|
21
|
+
locales: env.NEXT_PUBLIC_INTLAYER_LOCALES,
|
|
22
|
+
defaultLocale: env.NEXT_PUBLIC_INTLAYER_DEFAULT_LOCALE,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const intlayerMiddlewareConfiguration: ReplaceValue<MiddlewareConfig> = {
|
|
26
|
+
headerName: env.NEXT_PUBLIC_INTLAYER_HEADER_NAME,
|
|
27
|
+
cookieName: env.NEXT_PUBLIC_INTLAYER_COOKIE_NAME,
|
|
28
|
+
prefixDefault: env.NEXT_PUBLIC_INTLAYER_PREFIX_DEFAULT,
|
|
29
|
+
basePath: env.NEXT_PUBLIC_INTLAYER_BASE_PATH,
|
|
30
|
+
serverSetCookie: env.NEXT_PUBLIC_INTLAYER_SERVER_SET_COOKIE,
|
|
31
|
+
noPrefix: env.NEXT_PUBLIC_INTLAYER_NO_PREFIX,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const intlayerContentConfiguration: ReplaceValue<ContentConfig> = {
|
|
35
|
+
fileExtensions: env.NEXT_PUBLIC_INTLAYER_FILE_EXTENSIONS,
|
|
36
|
+
baseDir: env.NEXT_PUBLIC_INTLAYER_BASE_DIR,
|
|
37
|
+
contentDirName: env.NEXT_PUBLIC_INTLAYER_CONTENT_DIR_NAME,
|
|
38
|
+
contentDir: env.NEXT_PUBLIC_INTLAYER_CONTENT_DIR,
|
|
39
|
+
excludedPath: env.NEXT_PUBLIC_INTLAYER_EXCLUDED_PATH,
|
|
40
|
+
resultDirName: env.NEXT_PUBLIC_INTLAYER_RESULT_DIR_NAME,
|
|
41
|
+
moduleAugmentationDirName:
|
|
42
|
+
env.NEXT_PUBLIC_INTLAYER_MODULE_AUGMENTATION_DIR_NAME,
|
|
43
|
+
dictionariesDirName: env.NEXT_PUBLIC_INTLAYER_DICTIONARIES_DIR_NAME,
|
|
44
|
+
typeDirName: env.NEXT_PUBLIC_INTLAYER_TYPE_DIR_NAME,
|
|
45
|
+
mainDirName: env.NEXT_PUBLIC_INTLAYER_MAIN_DIR_NAME,
|
|
46
|
+
resultDir: env.NEXT_PUBLIC_INTLAYER_RESULT_DIR,
|
|
47
|
+
moduleAugmentationDir: env.NEXT_PUBLIC_INTLAYER_MODULE_AUGMENTATION_DIR,
|
|
48
|
+
dictionariesDir: env.NEXT_PUBLIC_INTLAYER_DICTIONARIES_DIR,
|
|
49
|
+
typesDir: env.NEXT_PUBLIC_INTLAYER_TYPE_DIR,
|
|
50
|
+
mainDir: env.NEXT_PUBLIC_INTLAYER_MAIN_DIR,
|
|
51
|
+
watchedFilesPattern: env.NEXT_PUBLIC_INTLAYER_WATCHED_FILES_PATTERN,
|
|
52
|
+
watchedFilesPatternWithPath:
|
|
53
|
+
env.NEXT_PUBLIC_INTLAYER_WATCHED_FILES_PATTERN_WITH_PATH,
|
|
54
|
+
outputFilesPatternWithPath:
|
|
55
|
+
env.NEXT_PUBLIC_INTLAYER_OUTPUT_FILES_PATTERN_WITH_PATH,
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
return {
|
|
59
|
+
intlayerIntlConfiguration,
|
|
60
|
+
intlayerMiddlewareConfiguration,
|
|
61
|
+
intlayerContentConfiguration,
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const extractReactAppEnvVariable = () => {
|
|
66
|
+
if (typeof process === 'undefined') {
|
|
67
|
+
return extractEmptyEnvVariable();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const env = process.env;
|
|
71
|
+
|
|
72
|
+
const intlayerIntlConfiguration: ReplaceValue<InternationalizationConfig> = {
|
|
73
|
+
locales: env.REACT_APP_INTLAYER_LOCALES,
|
|
74
|
+
defaultLocale: env.REACT_APP_INTLAYER_DEFAULT_LOCALE,
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const intlayerMiddlewareConfiguration: ReplaceValue<MiddlewareConfig> = {
|
|
78
|
+
headerName: env.REACT_APP_INTLAYER_HEADER_NAME,
|
|
79
|
+
cookieName: env.REACT_APP_INTLAYER_COOKIE_NAME,
|
|
80
|
+
prefixDefault: env.REACT_APP_INTLAYER_PREFIX_DEFAULT,
|
|
81
|
+
basePath: env.REACT_APP_INTLAYER_BASE_PATH,
|
|
82
|
+
serverSetCookie: env.REACT_APP_INTLAYER_SERVER_SET_COOKIE,
|
|
83
|
+
noPrefix: env.REACT_APP_INTLAYER_NO_PREFIX,
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const intlayerContentConfiguration: ReplaceValue<ContentConfig> = {
|
|
87
|
+
fileExtensions: env.REACT_APP_INTLAYER_FILE_EXTENSIONS,
|
|
88
|
+
baseDir: env.REACT_APP_INTLAYER_BASE_DIR,
|
|
89
|
+
contentDirName: env.REACT_APP_INTLAYER_CONTENT_DIR_NAME,
|
|
90
|
+
contentDir: env.REACT_APP_INTLAYER_CONTENT_DIR,
|
|
91
|
+
excludedPath: env.REACT_APP_INTLAYER_EXCLUDED_PATH,
|
|
92
|
+
resultDirName: env.REACT_APP_INTLAYER_RESULT_DIR_NAME,
|
|
93
|
+
moduleAugmentationDirName:
|
|
94
|
+
env.REACT_APP_INTLAYER_MODULE_AUGMENTATION_DIR_NAME,
|
|
95
|
+
dictionariesDirName: env.REACT_APP_INTLAYER_DICTIONARIES_DIR_NAME,
|
|
96
|
+
typeDirName: env.REACT_APP_INTLAYER_TYPE_DIR_NAME,
|
|
97
|
+
mainDirName: env.REACT_APP_INTLAYER_MAIN_DIR_NAME,
|
|
98
|
+
resultDir: env.REACT_APP_INTLAYER_RESULT_DIR,
|
|
99
|
+
moduleAugmentationDir: env.REACT_APP_INTLAYER_MODULE_AUGMENTATION_DIR,
|
|
100
|
+
dictionariesDir: env.REACT_APP_INTLAYER_DICTIONARIES_DIR,
|
|
101
|
+
typesDir: env.REACT_APP_INTLAYER_TYPE_DIR,
|
|
102
|
+
mainDir: env.REACT_APP_INTLAYER_MAIN_DIR,
|
|
103
|
+
watchedFilesPattern: env.REACT_APP_INTLAYER_WATCHED_FILES_PATTERN,
|
|
104
|
+
watchedFilesPatternWithPath:
|
|
105
|
+
env.REACT_APP_INTLAYER_WATCHED_FILES_PATTERN_WITH_PATH,
|
|
106
|
+
outputFilesPatternWithPath:
|
|
107
|
+
env.REACT_APP_INTLAYER_OUTPUT_FILES_PATTERN_WITH_PATH,
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
return {
|
|
111
|
+
intlayerIntlConfiguration,
|
|
112
|
+
intlayerMiddlewareConfiguration,
|
|
113
|
+
intlayerContentConfiguration,
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const extractViteEnvVariable = () => {
|
|
118
|
+
const env = (import.meta as unknown as ViteEnvVar).env;
|
|
119
|
+
|
|
120
|
+
if (typeof env === 'undefined') {
|
|
121
|
+
return extractEmptyEnvVariable();
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const intlayerIntlConfiguration: ReplaceValue<InternationalizationConfig> = {
|
|
125
|
+
locales: env.VITE_INTLAYER_LOCALES,
|
|
126
|
+
defaultLocale: env.VITE_INTLAYER_DEFAULT_LOCALE,
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
const intlayerMiddlewareConfiguration: ReplaceValue<MiddlewareConfig> = {
|
|
130
|
+
headerName: env.VITE_INTLAYER_HEADER_NAME,
|
|
131
|
+
cookieName: env.VITE_INTLAYER_COOKIE_NAME,
|
|
132
|
+
prefixDefault: env.VITE_INTLAYER_PREFIX_DEFAULT,
|
|
133
|
+
basePath: env.VITE_INTLAYER_BASE_PATH,
|
|
134
|
+
serverSetCookie: env.VITE_INTLAYER_SERVER_SET_COOKIE,
|
|
135
|
+
noPrefix: env.VITE_INTLAYER_NO_PREFIX,
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
const intlayerContentConfiguration: ReplaceValue<ContentConfig> = {
|
|
139
|
+
fileExtensions: env.VITE_INTLAYER_FILE_EXTENSIONS,
|
|
140
|
+
baseDir: env.VITE_INTLAYER_BASE_DIR,
|
|
141
|
+
contentDirName: env.VITE_INTLAYER_CONTENT_DIR_NAME,
|
|
142
|
+
contentDir: env.VITE_INTLAYER_CONTENT_DIR,
|
|
143
|
+
excludedPath: env.VITE_INTLAYER_EXCLUDED_PATH,
|
|
144
|
+
resultDirName: env.VITE_INTLAYER_RESULT_DIR_NAME,
|
|
145
|
+
moduleAugmentationDirName: env.VITE_INTLAYER_MODULE_AUGMENTATION_DIR_NAME,
|
|
146
|
+
dictionariesDirName: env.VITE_INTLAYER_DICTIONARIES_DIR_NAME,
|
|
147
|
+
typeDirName: env.VITE_INTLAYER_TYPE_DIR_NAME,
|
|
148
|
+
mainDirName: env.VITE_INTLAYER_MAIN_DIR_NAME,
|
|
149
|
+
resultDir: env.VITE_INTLAYER_RESULT_DIR,
|
|
150
|
+
moduleAugmentationDir: env.VITE_INTLAYER_MODULE_AUGMENTATION_DIR,
|
|
151
|
+
dictionariesDir: env.VITE_INTLAYER_DICTIONARIES_DIR,
|
|
152
|
+
typesDir: env.VITE_INTLAYER_TYPE_DIR,
|
|
153
|
+
mainDir: env.VITE_INTLAYER_MAIN_DIR,
|
|
154
|
+
watchedFilesPattern: env.VITE_INTLAYER_WATCHED_FILES_PATTERN,
|
|
155
|
+
watchedFilesPatternWithPath:
|
|
156
|
+
env.VITE_INTLAYER_WATCHED_FILES_PATTERN_WITH_PATH,
|
|
157
|
+
outputFilesPatternWithPath:
|
|
158
|
+
env.VITE_INTLAYER_OUTPUT_FILES_PATTERN_WITH_PATH,
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
return {
|
|
162
|
+
intlayerIntlConfiguration,
|
|
163
|
+
intlayerMiddlewareConfiguration,
|
|
164
|
+
intlayerContentConfiguration,
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
const extractEmptyEnvVariable = () => {
|
|
169
|
+
const intlayerIntlConfiguration: ReplaceValue<InternationalizationConfig> = {
|
|
170
|
+
locales: undefined,
|
|
171
|
+
defaultLocale: undefined,
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
const intlayerMiddlewareConfiguration: ReplaceValue<MiddlewareConfig> = {
|
|
175
|
+
headerName: undefined,
|
|
176
|
+
cookieName: undefined,
|
|
177
|
+
prefixDefault: undefined,
|
|
178
|
+
basePath: undefined,
|
|
179
|
+
serverSetCookie: undefined,
|
|
180
|
+
noPrefix: undefined,
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
const intlayerContentConfiguration: ReplaceValue<ContentConfig> = {
|
|
184
|
+
fileExtensions: undefined,
|
|
185
|
+
baseDir: undefined,
|
|
186
|
+
contentDirName: undefined,
|
|
187
|
+
contentDir: undefined,
|
|
188
|
+
excludedPath: undefined,
|
|
189
|
+
resultDirName: undefined,
|
|
190
|
+
moduleAugmentationDirName: undefined,
|
|
191
|
+
dictionariesDirName: undefined,
|
|
192
|
+
typeDirName: undefined,
|
|
193
|
+
mainDirName: undefined,
|
|
194
|
+
resultDir: undefined,
|
|
195
|
+
moduleAugmentationDir: undefined,
|
|
196
|
+
dictionariesDir: undefined,
|
|
197
|
+
typesDir: undefined,
|
|
198
|
+
mainDir: undefined,
|
|
199
|
+
watchedFilesPattern: undefined,
|
|
200
|
+
watchedFilesPatternWithPath: undefined,
|
|
201
|
+
outputFilesPatternWithPath: undefined,
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
return {
|
|
205
|
+
intlayerIntlConfiguration,
|
|
206
|
+
intlayerMiddlewareConfiguration,
|
|
207
|
+
intlayerContentConfiguration,
|
|
208
|
+
};
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
export const extractEnvVariable = () => {
|
|
212
|
+
const platform = getPlatform();
|
|
213
|
+
|
|
214
|
+
switch (platform) {
|
|
215
|
+
case 'next':
|
|
216
|
+
return extractNextEnvVariable();
|
|
217
|
+
case 'vite':
|
|
218
|
+
return extractViteEnvVariable();
|
|
219
|
+
case 'react_app':
|
|
220
|
+
return extractReactAppEnvVariable();
|
|
221
|
+
default:
|
|
222
|
+
return extractEmptyEnvVariable();
|
|
223
|
+
}
|
|
224
|
+
};
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import { getConfiguration } from '../configFile/getConfiguration';
|
|
2
|
+
import { getPrefix, type Platform } from './detectPlatform';
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Format a key to corresponding environment variable name
|
|
6
|
+
*
|
|
7
|
+
* Example:
|
|
8
|
+
* toEnvVariable('mainDir') => 'INTLAYER_MAIN_DIR'
|
|
9
|
+
*/
|
|
10
|
+
const formatEnvName = (key: string, prefix: string): string =>
|
|
11
|
+
prefix + key.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toUpperCase();
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Format all configuration values as environment variables
|
|
15
|
+
*/
|
|
3
16
|
export const formatEnvVariable = (
|
|
4
|
-
|
|
17
|
+
platform: Platform
|
|
5
18
|
): Record<string, string> => {
|
|
6
19
|
const intlayerConfig = getConfiguration();
|
|
7
20
|
|
|
8
|
-
|
|
9
|
-
* Format a key to corresponding environment variable name
|
|
10
|
-
*
|
|
11
|
-
* Example:
|
|
12
|
-
* toEnvVariable('mainDir') => 'INTLAYER_MAIN_DIR'
|
|
13
|
-
*/
|
|
14
|
-
const formatEnvName = (key: string): string =>
|
|
15
|
-
prefix + key.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toUpperCase();
|
|
21
|
+
const prefix = getPrefix(platform);
|
|
16
22
|
|
|
17
23
|
// Set all configuration values as environment variables
|
|
18
24
|
const env: Record<string, string> = {};
|
|
@@ -22,9 +28,9 @@ export const formatEnvVariable = (
|
|
|
22
28
|
...intlayerConfig.middleware,
|
|
23
29
|
})) {
|
|
24
30
|
if (typeof value === 'string') {
|
|
25
|
-
env[formatEnvName(key)] = value;
|
|
31
|
+
env[formatEnvName(key, prefix)] = value;
|
|
26
32
|
} else {
|
|
27
|
-
env[formatEnvName(key)] = JSON.stringify(value);
|
|
33
|
+
env[formatEnvName(key, prefix)] = JSON.stringify(value);
|
|
28
34
|
}
|
|
29
35
|
}
|
|
30
36
|
|
|
@@ -6,108 +6,108 @@ import type {
|
|
|
6
6
|
ServerSetCookieRule,
|
|
7
7
|
} from '../types/config';
|
|
8
8
|
import type { Locales } from '../types/locales';
|
|
9
|
+
import { extractEnvVariable } from './extractEnvVariable';
|
|
9
10
|
import { getEnvValue } from './utils';
|
|
10
11
|
|
|
12
|
+
const env = extractEnvVariable();
|
|
13
|
+
|
|
11
14
|
export const intlayerIntlConfiguration: InternationalizationConfig = {
|
|
12
15
|
locales: getEnvValue<Locales>(
|
|
13
|
-
|
|
16
|
+
env.intlayerIntlConfiguration.locales,
|
|
14
17
|
'array'
|
|
15
18
|
)!,
|
|
16
19
|
defaultLocale: getEnvValue<Locales>(
|
|
17
|
-
|
|
20
|
+
env.intlayerIntlConfiguration.defaultLocale,
|
|
18
21
|
'string'
|
|
19
22
|
)!,
|
|
20
23
|
};
|
|
21
24
|
|
|
22
25
|
export const intlayerMiddlewareConfiguration: MiddlewareConfig = {
|
|
23
26
|
headerName: getEnvValue(
|
|
24
|
-
|
|
27
|
+
env.intlayerMiddlewareConfiguration.headerName,
|
|
25
28
|
'string'
|
|
26
29
|
)!,
|
|
27
30
|
cookieName: getEnvValue(
|
|
28
|
-
|
|
31
|
+
env.intlayerMiddlewareConfiguration.cookieName,
|
|
29
32
|
'string'
|
|
30
33
|
)!,
|
|
31
34
|
prefixDefault: getEnvValue(
|
|
32
|
-
|
|
35
|
+
env.intlayerMiddlewareConfiguration.prefixDefault,
|
|
33
36
|
'boolean'
|
|
34
37
|
)!,
|
|
35
|
-
basePath: getEnvValue(
|
|
38
|
+
basePath: getEnvValue(
|
|
39
|
+
env.intlayerMiddlewareConfiguration.basePath,
|
|
40
|
+
'string'
|
|
41
|
+
)!,
|
|
36
42
|
serverSetCookie: getEnvValue<ServerSetCookieRule>(
|
|
37
|
-
|
|
43
|
+
env.intlayerMiddlewareConfiguration.serverSetCookie,
|
|
38
44
|
'string'
|
|
39
45
|
)!,
|
|
40
|
-
noPrefix: getEnvValue(
|
|
46
|
+
noPrefix: getEnvValue(
|
|
47
|
+
env.intlayerMiddlewareConfiguration.noPrefix,
|
|
48
|
+
'boolean'
|
|
49
|
+
)!,
|
|
41
50
|
};
|
|
42
51
|
|
|
43
52
|
export const intlayerContentConfiguration: ContentConfig = {
|
|
44
53
|
fileExtensions: getEnvValue<string>(
|
|
45
|
-
|
|
54
|
+
env.intlayerContentConfiguration.fileExtensions,
|
|
46
55
|
'array'
|
|
47
56
|
)!,
|
|
48
|
-
baseDir: getEnvValue(
|
|
57
|
+
baseDir: getEnvValue(env.intlayerContentConfiguration.baseDir, 'string')!,
|
|
49
58
|
contentDirName: getEnvValue(
|
|
50
|
-
|
|
59
|
+
env.intlayerContentConfiguration.contentDirName,
|
|
60
|
+
'string'
|
|
61
|
+
)!,
|
|
62
|
+
contentDir: getEnvValue(
|
|
63
|
+
env.intlayerContentConfiguration.contentDir,
|
|
51
64
|
'string'
|
|
52
65
|
)!,
|
|
53
|
-
contentDir: getEnvValue('NEXT_PUBLIC_INTLAYER_CONTENT_DIR', 'string')!,
|
|
54
66
|
excludedPath: getEnvValue<string>(
|
|
55
|
-
|
|
67
|
+
env.intlayerContentConfiguration.excludedPath,
|
|
56
68
|
'array'
|
|
57
69
|
)!,
|
|
58
70
|
resultDirName: getEnvValue(
|
|
59
|
-
|
|
71
|
+
env.intlayerContentConfiguration.resultDirName,
|
|
60
72
|
'string'
|
|
61
73
|
)!,
|
|
62
|
-
resultDir: getEnvValue(
|
|
74
|
+
resultDir: getEnvValue(env.intlayerContentConfiguration.resultDir, 'string')!,
|
|
63
75
|
moduleAugmentationDirName: getEnvValue(
|
|
64
|
-
|
|
76
|
+
env.intlayerContentConfiguration.moduleAugmentationDirName,
|
|
65
77
|
'string'
|
|
66
78
|
)!,
|
|
67
79
|
moduleAugmentationDir: getEnvValue(
|
|
68
|
-
|
|
69
|
-
'string'
|
|
70
|
-
)!,
|
|
71
|
-
bundleDirName: getEnvValue(
|
|
72
|
-
process.env.NEXT_PUBLIC_INTLAYER_BUNDLE_DIR_NAME,
|
|
73
|
-
'string'
|
|
74
|
-
)!,
|
|
75
|
-
bundleDir: getEnvValue(
|
|
76
|
-
process.env.NEXT_PUBLIC_INTLAYER_BUNDLE_DIR,
|
|
77
|
-
'string'
|
|
78
|
-
)!,
|
|
79
|
-
bundleFileExtension: getEnvValue(
|
|
80
|
-
process.env.NEXT_PUBLIC_INTLAYER_BUNDLE_FILE_EXTENSION,
|
|
80
|
+
env.intlayerContentConfiguration.moduleAugmentationDir,
|
|
81
81
|
'string'
|
|
82
82
|
)!,
|
|
83
83
|
dictionariesDirName: getEnvValue(
|
|
84
|
-
|
|
84
|
+
env.intlayerContentConfiguration.dictionariesDirName,
|
|
85
85
|
'string'
|
|
86
86
|
)!,
|
|
87
87
|
dictionariesDir: getEnvValue(
|
|
88
|
-
|
|
88
|
+
env.intlayerContentConfiguration.dictionariesDir,
|
|
89
89
|
'string'
|
|
90
90
|
)!,
|
|
91
91
|
typeDirName: getEnvValue(
|
|
92
|
-
|
|
92
|
+
env.intlayerContentConfiguration.typeDirName,
|
|
93
93
|
'string'
|
|
94
94
|
)!,
|
|
95
|
-
typesDir: getEnvValue(
|
|
95
|
+
typesDir: getEnvValue(env.intlayerContentConfiguration.typesDir, 'string')!,
|
|
96
96
|
mainDirName: getEnvValue(
|
|
97
|
-
|
|
97
|
+
env.intlayerContentConfiguration.mainDirName,
|
|
98
98
|
'string'
|
|
99
99
|
)!,
|
|
100
|
-
mainDir: getEnvValue(
|
|
100
|
+
mainDir: getEnvValue(env.intlayerContentConfiguration.mainDir, 'string')!,
|
|
101
101
|
watchedFilesPattern: getEnvValue<string>(
|
|
102
|
-
|
|
102
|
+
env.intlayerContentConfiguration.watchedFilesPattern,
|
|
103
103
|
'array'
|
|
104
104
|
)!,
|
|
105
105
|
watchedFilesPatternWithPath: getEnvValue<string>(
|
|
106
|
-
|
|
106
|
+
env.intlayerContentConfiguration.watchedFilesPatternWithPath,
|
|
107
107
|
'array'
|
|
108
108
|
)!,
|
|
109
109
|
outputFilesPatternWithPath: getEnvValue(
|
|
110
|
-
|
|
110
|
+
env.intlayerContentConfiguration.outputFilesPatternWithPath,
|
|
111
111
|
'string'
|
|
112
112
|
)!,
|
|
113
113
|
};
|
|
@@ -118,4 +118,9 @@ export const intlayerConfiguration: IntlayerConfig = {
|
|
|
118
118
|
content: intlayerContentConfiguration,
|
|
119
119
|
};
|
|
120
120
|
|
|
121
|
+
/**
|
|
122
|
+
* Get all configuration values using environment variables
|
|
123
|
+
* Can be used in the client side as the server side
|
|
124
|
+
* To use it, be sure to have the environment variables set
|
|
125
|
+
*/
|
|
121
126
|
export const getConfiguration = (): IntlayerConfig => intlayerConfiguration;
|
|
@@ -1,20 +1,33 @@
|
|
|
1
|
-
function getEnvValue(
|
|
2
|
-
|
|
1
|
+
function getEnvValue(
|
|
2
|
+
value: unknown,
|
|
3
|
+
type: 'boolean',
|
|
4
|
+
verbose?: boolean
|
|
5
|
+
): boolean | undefined;
|
|
6
|
+
function getEnvValue(
|
|
7
|
+
value: unknown,
|
|
8
|
+
type: 'number',
|
|
9
|
+
verbose?: boolean
|
|
10
|
+
): number | undefined;
|
|
3
11
|
function getEnvValue<T extends string>(
|
|
4
12
|
value: unknown,
|
|
5
|
-
type: 'string'
|
|
13
|
+
type: 'string',
|
|
14
|
+
verbose?: boolean
|
|
15
|
+
): T | undefined;
|
|
16
|
+
function getEnvValue<T>(
|
|
17
|
+
value: unknown,
|
|
18
|
+
type: 'object',
|
|
19
|
+
verbose?: boolean
|
|
6
20
|
): T | undefined;
|
|
7
|
-
function getEnvValue<T>(
|
|
8
|
-
|
|
21
|
+
function getEnvValue<T>(
|
|
22
|
+
value: unknown,
|
|
23
|
+
type: 'array',
|
|
24
|
+
verbose?: boolean
|
|
25
|
+
): T[] | undefined;
|
|
9
26
|
function getEnvValue(
|
|
10
27
|
value: unknown,
|
|
11
|
-
type: 'string' | 'boolean' | 'number' | 'object' | 'array'
|
|
28
|
+
type: 'string' | 'boolean' | 'number' | 'object' | 'array',
|
|
29
|
+
verbose = false
|
|
12
30
|
) {
|
|
13
|
-
// Handle cases where the environment variable is not set
|
|
14
|
-
if (value === undefined) {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
31
|
try {
|
|
19
32
|
switch (type) {
|
|
20
33
|
case 'boolean':
|
|
@@ -27,7 +40,7 @@ function getEnvValue(
|
|
|
27
40
|
|
|
28
41
|
case 'string':
|
|
29
42
|
// Return the string directly
|
|
30
|
-
return value;
|
|
43
|
+
return value ?? '';
|
|
31
44
|
|
|
32
45
|
case 'object':
|
|
33
46
|
case 'array':
|
|
@@ -39,7 +52,11 @@ function getEnvValue(
|
|
|
39
52
|
}
|
|
40
53
|
} catch (error) {
|
|
41
54
|
// Log error and return undefined if any error occurs during parsing
|
|
42
|
-
|
|
55
|
+
if (verbose) {
|
|
56
|
+
console.error(
|
|
57
|
+
`Error parsing environment variable, parsing : ${((value ?? '') as string).toString()}`
|
|
58
|
+
);
|
|
59
|
+
}
|
|
43
60
|
return undefined;
|
|
44
61
|
}
|
|
45
62
|
}
|