@intlayer/config 1.0.2 → 1.2.1
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/client.cjs +2 -10
- package/dist/cjs/client.cjs.map +1 -1
- package/dist/cjs/client.d.ts +1 -1
- package/dist/cjs/configFile/buildConfigurationFields.cjs +295 -39
- 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 +15 -7
- package/dist/cjs/defaultValues/server.cjs.map +1 -1
- package/dist/cjs/defaultValues/server.d.ts +6 -3
- package/dist/cjs/envVariables/detectPlatform.cjs +56 -0
- package/dist/cjs/envVariables/detectPlatform.cjs.map +1 -0
- package/dist/cjs/envVariables/detectPlatform.d.ts +8 -0
- package/dist/cjs/envVariables/extractEnvVariable/index.cjs +44 -0
- package/dist/cjs/envVariables/extractEnvVariable/index.cjs.map +1 -0
- package/dist/cjs/envVariables/extractEnvVariable/index.d.ts +7 -0
- package/dist/cjs/envVariables/extractEnvVariable/next.cjs +70 -0
- package/dist/cjs/envVariables/extractEnvVariable/next.cjs.map +1 -0
- package/dist/cjs/envVariables/extractEnvVariable/next.d.ts +7 -0
- package/dist/cjs/envVariables/extractEnvVariable/react_app.cjs +70 -0
- package/dist/cjs/envVariables/extractEnvVariable/react_app.cjs.map +1 -0
- package/dist/cjs/envVariables/extractEnvVariable/react_app.d.ts +7 -0
- package/dist/cjs/envVariables/extractEnvVariable/types.cjs +17 -0
- package/dist/cjs/envVariables/extractEnvVariable/types.cjs.map +1 -0
- package/dist/cjs/envVariables/extractEnvVariable/types.d.ts +11 -0
- package/dist/cjs/envVariables/extractEnvVariable/undefined_platform.cjs +70 -0
- package/dist/cjs/envVariables/extractEnvVariable/undefined_platform.cjs.map +1 -0
- package/dist/cjs/envVariables/extractEnvVariable/undefined_platform.d.ts +7 -0
- package/dist/cjs/envVariables/extractEnvVariable/vite.cjs +78 -0
- package/dist/cjs/envVariables/extractEnvVariable/vite.cjs.map +1 -0
- package/dist/cjs/envVariables/extractEnvVariable/vite.d.ts +7 -0
- package/dist/cjs/envVariables/extractEnvVariable/vite_env.d.cjs +2 -0
- package/dist/cjs/envVariables/extractEnvVariable/vite_env.d.cjs.map +1 -0
- package/dist/cjs/envVariables/extractEnvVariable/vite_env.d.d.ts +2 -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 +79 -116
- package/dist/cjs/envVariables/getConfiguration.cjs.map +1 -1
- package/dist/cjs/envVariables/getConfiguration.d.ts +7 -6
- package/dist/cjs/envVariables/index.cjs +2 -10
- package/dist/cjs/envVariables/index.cjs.map +1 -1
- package/dist/cjs/envVariables/index.d.ts +2 -1
- 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.cjs +2 -10
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/types/config.cjs.map +1 -1
- package/dist/cjs/types/config.d.ts +253 -7
- package/dist/cjs/types/locales.cjs.map +1 -1
- package/dist/cjs/types/locales.d.ts +233 -0
- package/dist/esm/client.d.mts +1 -1
- package/dist/esm/client.mjs +2 -12
- package/dist/esm/client.mjs.map +1 -1
- package/dist/esm/configFile/buildConfigurationFields.d.mts +3 -0
- package/dist/esm/configFile/buildConfigurationFields.mjs +298 -42
- 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 +6 -3
- package/dist/esm/defaultValues/server.mjs +13 -5
- package/dist/esm/defaultValues/server.mjs.map +1 -1
- package/dist/esm/envVariables/detectPlatform.d.mts +8 -0
- package/dist/esm/envVariables/detectPlatform.mjs +30 -0
- package/dist/esm/envVariables/detectPlatform.mjs.map +1 -0
- package/dist/esm/envVariables/extractEnvVariable/index.d.mts +7 -0
- package/dist/esm/envVariables/extractEnvVariable/index.mjs +20 -0
- package/dist/esm/envVariables/extractEnvVariable/index.mjs.map +1 -0
- package/dist/esm/envVariables/extractEnvVariable/next.d.mts +7 -0
- package/dist/esm/envVariables/extractEnvVariable/next.mjs +46 -0
- package/dist/esm/envVariables/extractEnvVariable/next.mjs.map +1 -0
- package/dist/esm/envVariables/extractEnvVariable/react_app.d.mts +7 -0
- package/dist/esm/envVariables/extractEnvVariable/react_app.mjs +46 -0
- package/dist/esm/envVariables/extractEnvVariable/react_app.mjs.map +1 -0
- package/dist/esm/envVariables/extractEnvVariable/types.d.mts +11 -0
- package/dist/esm/envVariables/extractEnvVariable/types.mjs +1 -0
- package/dist/esm/envVariables/extractEnvVariable/types.mjs.map +1 -0
- package/dist/esm/envVariables/extractEnvVariable/undefined_platform.d.mts +7 -0
- package/dist/esm/envVariables/extractEnvVariable/undefined_platform.mjs +46 -0
- package/dist/esm/envVariables/extractEnvVariable/undefined_platform.mjs.map +1 -0
- package/dist/esm/envVariables/extractEnvVariable/vite.d.mts +7 -0
- package/dist/esm/envVariables/extractEnvVariable/vite.mjs +53 -0
- package/dist/esm/envVariables/extractEnvVariable/vite.mjs.map +1 -0
- package/dist/esm/envVariables/extractEnvVariable/vite_env.d.d.mts +2 -0
- package/dist/esm/envVariables/extractEnvVariable/vite_env.d.mjs +1 -0
- package/dist/esm/envVariables/extractEnvVariable/vite_env.d.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 +7 -6
- package/dist/esm/envVariables/getConfiguration.mjs +78 -111
- package/dist/esm/envVariables/getConfiguration.mjs.map +1 -1
- package/dist/esm/envVariables/index.d.mts +2 -1
- package/dist/esm/envVariables/index.mjs +2 -12
- package/dist/esm/envVariables/index.mjs.map +1 -1
- 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 +2 -1
- package/dist/esm/index.mjs +1 -9
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/types/config.d.mts +253 -7
- package/dist/esm/types/locales.d.mts +233 -0
- package/dist/esm/types/locales.mjs.map +1 -1
- package/package.json +7 -7
- package/src/client.ts +1 -7
- package/src/configFile/buildConfigurationFields.ts +306 -46
- 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/server.ts +14 -4
- package/src/envVariables/detectPlatform.ts +41 -0
- package/src/envVariables/extractEnvVariable/index.ts +20 -0
- package/src/envVariables/extractEnvVariable/next.ts +57 -0
- package/src/envVariables/extractEnvVariable/react_app.ts +57 -0
- package/src/envVariables/extractEnvVariable/types.ts +10 -0
- package/src/envVariables/extractEnvVariable/undefined_platform.ts +52 -0
- package/src/envVariables/extractEnvVariable/vite.ts +65 -0
- package/src/envVariables/extractEnvVariable/vite_env.d.ts +9 -0
- package/src/envVariables/formatEnvVariable.ts +17 -11
- package/src/envVariables/getConfiguration.ts +85 -113
- package/src/envVariables/index.ts +1 -7
- package/src/envVariables/utils.ts +30 -14
- package/src/index.ts +0 -4
- package/src/types/config.ts +279 -63
- package/src/types/locales.ts +233 -233
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
InternationalizationConfig,
|
|
3
|
+
MiddlewareConfig,
|
|
4
|
+
ContentConfig,
|
|
5
|
+
} from '../../types/config';
|
|
6
|
+
import type { IntlayerConfigEnvVariable, ReplaceValue } from './types';
|
|
7
|
+
|
|
8
|
+
export const extractNextEnvVariable = (): IntlayerConfigEnvVariable => {
|
|
9
|
+
const internationalization: ReplaceValue<InternationalizationConfig> = {
|
|
10
|
+
locales: process.env.NEXT_PUBLIC_INTLAYER_LOCALES,
|
|
11
|
+
defaultLocale: process.env.NEXT_PUBLIC_INTLAYER_DEFAULT_LOCALE,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const middleware: ReplaceValue<MiddlewareConfig> = {
|
|
15
|
+
headerName: process.env.NEXT_PUBLIC_INTLAYER_HEADER_NAME,
|
|
16
|
+
cookieName: process.env.NEXT_PUBLIC_INTLAYER_COOKIE_NAME,
|
|
17
|
+
prefixDefault: process.env.NEXT_PUBLIC_INTLAYER_PREFIX_DEFAULT,
|
|
18
|
+
basePath: process.env.NEXT_PUBLIC_INTLAYER_BASE_PATH,
|
|
19
|
+
serverSetCookie: process.env.NEXT_PUBLIC_INTLAYER_SERVER_SET_COOKIE,
|
|
20
|
+
noPrefix: process.env.NEXT_PUBLIC_INTLAYER_NO_PREFIX,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const content: ReplaceValue<ContentConfig> = {
|
|
24
|
+
fileExtensions: process.env.NEXT_PUBLIC_INTLAYER_FILE_EXTENSIONS,
|
|
25
|
+
baseDir: process.env.NEXT_PUBLIC_INTLAYER_BASE_DIR,
|
|
26
|
+
contentDirName: process.env.NEXT_PUBLIC_INTLAYER_CONTENT_DIR_NAME,
|
|
27
|
+
contentDir: process.env.NEXT_PUBLIC_INTLAYER_CONTENT_DIR,
|
|
28
|
+
excludedPath: process.env.NEXT_PUBLIC_INTLAYER_EXCLUDED_PATH,
|
|
29
|
+
resultDirName: process.env.NEXT_PUBLIC_INTLAYER_RESULT_DIR_NAME,
|
|
30
|
+
moduleAugmentationDirName:
|
|
31
|
+
process.env.NEXT_PUBLIC_INTLAYER_MODULE_AUGMENTATION_DIR_NAME,
|
|
32
|
+
dictionariesDirName: process.env.NEXT_PUBLIC_INTLAYER_DICTIONARIES_DIR_NAME,
|
|
33
|
+
i18nDictionariesDir: process.env.NEXT_PUBLIC_INTLAYER_I18N_DICTIONARIES_DIR,
|
|
34
|
+
typeDirName: process.env.NEXT_PUBLIC_INTLAYER_TYPE_DIR_NAME,
|
|
35
|
+
mainDirName: process.env.NEXT_PUBLIC_INTLAYER_MAIN_DIR_NAME,
|
|
36
|
+
resultDir: process.env.NEXT_PUBLIC_INTLAYER_RESULT_DIR,
|
|
37
|
+
moduleAugmentationDir:
|
|
38
|
+
process.env.NEXT_PUBLIC_INTLAYER_MODULE_AUGMENTATION_DIR,
|
|
39
|
+
dictionariesDir: process.env.NEXT_PUBLIC_INTLAYER_DICTIONARIES_DIR,
|
|
40
|
+
i18nDictionariesDirName:
|
|
41
|
+
process.env.NEXT_PUBLIC_INTLAYER_I18N_DICTIONARIES_DIR_NAME,
|
|
42
|
+
typesDir: process.env.NEXT_PUBLIC_INTLAYER_TYPE_DIR,
|
|
43
|
+
mainDir: process.env.NEXT_PUBLIC_INTLAYER_MAIN_DIR,
|
|
44
|
+
watchedFilesPattern: process.env.NEXT_PUBLIC_INTLAYER_WATCHED_FILES_PATTERN,
|
|
45
|
+
watchedFilesPatternWithPath:
|
|
46
|
+
process.env.NEXT_PUBLIC_INTLAYER_WATCHED_FILES_PATTERN_WITH_PATH,
|
|
47
|
+
outputFilesPatternWithPath:
|
|
48
|
+
process.env.NEXT_PUBLIC_INTLAYER_OUTPUT_FILES_PATTERN_WITH_PATH,
|
|
49
|
+
dictionaryOutput: process.env.NEXT_PUBLIC_INTLAYER_DICTIONARY_OUTPUT,
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
internationalization,
|
|
54
|
+
middleware,
|
|
55
|
+
content,
|
|
56
|
+
};
|
|
57
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
InternationalizationConfig,
|
|
3
|
+
MiddlewareConfig,
|
|
4
|
+
ContentConfig,
|
|
5
|
+
} from '../../types/config';
|
|
6
|
+
import type { IntlayerConfigEnvVariable, ReplaceValue } from './types';
|
|
7
|
+
|
|
8
|
+
export const extractReactAppEnvVariable = (): IntlayerConfigEnvVariable => {
|
|
9
|
+
const internationalization: ReplaceValue<InternationalizationConfig> = {
|
|
10
|
+
locales: process.env.REACT_APP_INTLAYER_LOCALES,
|
|
11
|
+
defaultLocale: process.env.REACT_APP_INTLAYER_DEFAULT_LOCALE,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const middleware: ReplaceValue<MiddlewareConfig> = {
|
|
15
|
+
headerName: process.env.REACT_APP_INTLAYER_HEADER_NAME,
|
|
16
|
+
cookieName: process.env.REACT_APP_INTLAYER_COOKIE_NAME,
|
|
17
|
+
prefixDefault: process.env.REACT_APP_INTLAYER_PREFIX_DEFAULT,
|
|
18
|
+
basePath: process.env.REACT_APP_INTLAYER_BASE_PATH,
|
|
19
|
+
serverSetCookie: process.env.REACT_APP_INTLAYER_SERVER_SET_COOKIE,
|
|
20
|
+
noPrefix: process.env.REACT_APP_INTLAYER_NO_PREFIX,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const content: ReplaceValue<ContentConfig> = {
|
|
24
|
+
fileExtensions: process.env.REACT_APP_INTLAYER_FILE_EXTENSIONS,
|
|
25
|
+
baseDir: process.env.REACT_APP_INTLAYER_BASE_DIR,
|
|
26
|
+
contentDirName: process.env.REACT_APP_INTLAYER_CONTENT_DIR_NAME,
|
|
27
|
+
contentDir: process.env.REACT_APP_INTLAYER_CONTENT_DIR,
|
|
28
|
+
excludedPath: process.env.REACT_APP_INTLAYER_EXCLUDED_PATH,
|
|
29
|
+
resultDirName: process.env.REACT_APP_INTLAYER_RESULT_DIR_NAME,
|
|
30
|
+
moduleAugmentationDirName:
|
|
31
|
+
process.env.REACT_APP_INTLAYER_MODULE_AUGMENTATION_DIR_NAME,
|
|
32
|
+
dictionariesDirName: process.env.REACT_APP_INTLAYER_DICTIONARIES_DIR_NAME,
|
|
33
|
+
i18nDictionariesDirName:
|
|
34
|
+
process.env.REACT_APP_INTLAYER_I18N_DICTIONARIES_DIR_NAME,
|
|
35
|
+
typeDirName: process.env.REACT_APP_INTLAYER_TYPE_DIR_NAME,
|
|
36
|
+
mainDirName: process.env.REACT_APP_INTLAYER_MAIN_DIR_NAME,
|
|
37
|
+
resultDir: process.env.REACT_APP_INTLAYER_RESULT_DIR,
|
|
38
|
+
moduleAugmentationDir:
|
|
39
|
+
process.env.REACT_APP_INTLAYER_MODULE_AUGMENTATION_DIR,
|
|
40
|
+
dictionariesDir: process.env.REACT_APP_INTLAYER_DICTIONARIES_DIR,
|
|
41
|
+
i18nDictionariesDir: process.env.REACT_APP_INTLAYER_I18N_DICTIONARIES_DIR,
|
|
42
|
+
typesDir: process.env.REACT_APP_INTLAYER_TYPE_DIR,
|
|
43
|
+
mainDir: process.env.REACT_APP_INTLAYER_MAIN_DIR,
|
|
44
|
+
watchedFilesPattern: process.env.REACT_APP_INTLAYER_WATCHED_FILES_PATTERN,
|
|
45
|
+
watchedFilesPatternWithPath:
|
|
46
|
+
process.env.REACT_APP_INTLAYER_WATCHED_FILES_PATTERN_WITH_PATH,
|
|
47
|
+
outputFilesPatternWithPath:
|
|
48
|
+
process.env.REACT_APP_INTLAYER_OUTPUT_FILES_PATTERN_WITH_PATH,
|
|
49
|
+
dictionaryOutput: process.env.REACT_APP_INTLAYER_DICTIONARY_OUTPUT,
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
internationalization,
|
|
54
|
+
middleware,
|
|
55
|
+
content,
|
|
56
|
+
};
|
|
57
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IntlayerConfig } from '../../client';
|
|
2
|
+
|
|
3
|
+
// Utility type that replaces all values of a given type with another type
|
|
4
|
+
export type ReplaceValue<T> = {
|
|
5
|
+
[K in keyof T]: string | undefined;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export type IntlayerConfigEnvVariable = {
|
|
9
|
+
[K in keyof IntlayerConfig]: ReplaceValue<IntlayerConfig[K]>;
|
|
10
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
InternationalizationConfig,
|
|
3
|
+
MiddlewareConfig,
|
|
4
|
+
ContentConfig,
|
|
5
|
+
} from '../../types/config';
|
|
6
|
+
import type { ReplaceValue, IntlayerConfigEnvVariable } from './types';
|
|
7
|
+
|
|
8
|
+
export const extractEmptyEnvVariable = (): IntlayerConfigEnvVariable => {
|
|
9
|
+
const internationalization: ReplaceValue<InternationalizationConfig> = {
|
|
10
|
+
locales: undefined,
|
|
11
|
+
defaultLocale: undefined,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const middleware: ReplaceValue<MiddlewareConfig> = {
|
|
15
|
+
headerName: undefined,
|
|
16
|
+
cookieName: undefined,
|
|
17
|
+
prefixDefault: undefined,
|
|
18
|
+
basePath: undefined,
|
|
19
|
+
serverSetCookie: undefined,
|
|
20
|
+
noPrefix: undefined,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const content: ReplaceValue<ContentConfig> = {
|
|
24
|
+
fileExtensions: undefined,
|
|
25
|
+
baseDir: undefined,
|
|
26
|
+
contentDirName: undefined,
|
|
27
|
+
contentDir: undefined,
|
|
28
|
+
excludedPath: undefined,
|
|
29
|
+
resultDirName: undefined,
|
|
30
|
+
moduleAugmentationDirName: undefined,
|
|
31
|
+
dictionariesDirName: undefined,
|
|
32
|
+
i18nDictionariesDirName: undefined,
|
|
33
|
+
typeDirName: undefined,
|
|
34
|
+
mainDirName: undefined,
|
|
35
|
+
resultDir: undefined,
|
|
36
|
+
moduleAugmentationDir: undefined,
|
|
37
|
+
dictionariesDir: undefined,
|
|
38
|
+
i18nDictionariesDir: undefined,
|
|
39
|
+
typesDir: undefined,
|
|
40
|
+
mainDir: undefined,
|
|
41
|
+
watchedFilesPattern: undefined,
|
|
42
|
+
watchedFilesPatternWithPath: undefined,
|
|
43
|
+
outputFilesPatternWithPath: undefined,
|
|
44
|
+
dictionaryOutput: undefined,
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
internationalization,
|
|
49
|
+
middleware,
|
|
50
|
+
content,
|
|
51
|
+
};
|
|
52
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
InternationalizationConfig,
|
|
3
|
+
MiddlewareConfig,
|
|
4
|
+
ContentConfig,
|
|
5
|
+
} from '../../types/config';
|
|
6
|
+
import type { IntlayerConfigEnvVariable, ReplaceValue } from './types';
|
|
7
|
+
import { extractEmptyEnvVariable } from './undefined_platform';
|
|
8
|
+
|
|
9
|
+
export const extractViteEnvVariable = (): IntlayerConfigEnvVariable => {
|
|
10
|
+
if (!import.meta.env) {
|
|
11
|
+
console.error(
|
|
12
|
+
'Vite env variables cannot be loaded on a commonjs environment.'
|
|
13
|
+
);
|
|
14
|
+
return extractEmptyEnvVariable();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const internationalization: ReplaceValue<InternationalizationConfig> = {
|
|
18
|
+
locales: import.meta.env.VITE_INTLAYER_LOCALES,
|
|
19
|
+
defaultLocale: import.meta.env.VITE_INTLAYER_DEFAULT_LOCALE,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const middleware: ReplaceValue<MiddlewareConfig> = {
|
|
23
|
+
headerName: import.meta.env.VITE_INTLAYER_HEADER_NAME,
|
|
24
|
+
cookieName: import.meta.env.VITE_INTLAYER_COOKIE_NAME,
|
|
25
|
+
prefixDefault: import.meta.env.VITE_INTLAYER_PREFIX_DEFAULT,
|
|
26
|
+
basePath: import.meta.env.VITE_INTLAYER_BASE_PATH,
|
|
27
|
+
serverSetCookie: import.meta.env.VITE_INTLAYER_SERVER_SET_COOKIE,
|
|
28
|
+
noPrefix: import.meta.env.VITE_INTLAYER_NO_PREFIX,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const content: ReplaceValue<ContentConfig> = {
|
|
32
|
+
fileExtensions: import.meta.env.VITE_INTLAYER_FILE_EXTENSIONS,
|
|
33
|
+
baseDir: import.meta.env.VITE_INTLAYER_BASE_DIR,
|
|
34
|
+
contentDirName: import.meta.env.VITE_INTLAYER_CONTENT_DIR_NAME,
|
|
35
|
+
contentDir: import.meta.env.VITE_INTLAYER_CONTENT_DIR,
|
|
36
|
+
excludedPath: import.meta.env.VITE_INTLAYER_EXCLUDED_PATH,
|
|
37
|
+
resultDirName: import.meta.env.VITE_INTLAYER_RESULT_DIR_NAME,
|
|
38
|
+
moduleAugmentationDirName: import.meta.env
|
|
39
|
+
.VITE_INTLAYER_MODULE_AUGMENTATION_DIR_NAME,
|
|
40
|
+
dictionariesDirName: import.meta.env.VITE_INTLAYER_DICTIONARIES_DIR_NAME,
|
|
41
|
+
i18nDictionariesDirName: import.meta.env
|
|
42
|
+
.VITE_INTLAYER_I18N_DICTIONARIES_DIR_NAME,
|
|
43
|
+
typeDirName: import.meta.env.VITE_INTLAYER_TYPE_DIR_NAME,
|
|
44
|
+
mainDirName: import.meta.env.VITE_INTLAYER_MAIN_DIR_NAME,
|
|
45
|
+
resultDir: import.meta.env.VITE_INTLAYER_RESULT_DIR,
|
|
46
|
+
moduleAugmentationDir: import.meta.env
|
|
47
|
+
.VITE_INTLAYER_MODULE_AUGMENTATION_DIR,
|
|
48
|
+
dictionariesDir: import.meta.env.VITE_INTLAYER_DICTIONARIES_DIR,
|
|
49
|
+
i18nDictionariesDir: import.meta.env.VITE_INTLAYER_I18N_DICTIONARIES_DIR,
|
|
50
|
+
typesDir: import.meta.env.VITE_INTLAYER_TYPE_DIR,
|
|
51
|
+
mainDir: import.meta.env.VITE_INTLAYER_MAIN_DIR,
|
|
52
|
+
watchedFilesPattern: import.meta.env.VITE_INTLAYER_WATCHED_FILES_PATTERN,
|
|
53
|
+
watchedFilesPatternWithPath: import.meta.env
|
|
54
|
+
.VITE_INTLAYER_WATCHED_FILES_PATTERN_WITH_PATH,
|
|
55
|
+
outputFilesPatternWithPath: import.meta.env
|
|
56
|
+
.VITE_INTLAYER_OUTPUT_FILES_PATTERN_WITH_PATH,
|
|
57
|
+
dictionaryOutput: import.meta.env.VITE_INTLAYER_DICTIONARY_OUTPUT,
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
internationalization,
|
|
62
|
+
middleware,
|
|
63
|
+
content,
|
|
64
|
+
};
|
|
65
|
+
};
|
|
@@ -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
|
|
|
@@ -1,127 +1,99 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
ContentConfig,
|
|
3
|
+
DictionaryOutput,
|
|
3
4
|
InternationalizationConfig,
|
|
4
5
|
IntlayerConfig,
|
|
5
6
|
MiddlewareConfig,
|
|
6
7
|
ServerSetCookieRule,
|
|
7
8
|
} from '../types/config';
|
|
8
9
|
import type { Locales } from '../types/locales';
|
|
10
|
+
import { extractEnvVariable } from './extractEnvVariable/index';
|
|
9
11
|
import { getEnvValue } from './utils';
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
'string'
|
|
19
|
-
)!,
|
|
20
|
-
};
|
|
13
|
+
/**
|
|
14
|
+
* Get all configuration values using environment variables
|
|
15
|
+
* Can be used in the client side as the server side
|
|
16
|
+
* To use it, be sure to have the environment variables set
|
|
17
|
+
*/
|
|
18
|
+
export const getConfiguration = (): IntlayerConfig => {
|
|
19
|
+
const env = extractEnvVariable();
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
'string'
|
|
30
|
-
)!,
|
|
31
|
-
prefixDefault: getEnvValue(
|
|
32
|
-
process.env.NEXT_PUBLIC_INTLAYER_PREFIX_DEFAULT,
|
|
33
|
-
'boolean'
|
|
34
|
-
)!,
|
|
35
|
-
basePath: getEnvValue(process.env.NEXT_PUBLIC_INTLAYER_BASE_PATH, 'string')!,
|
|
36
|
-
serverSetCookie: getEnvValue<ServerSetCookieRule>(
|
|
37
|
-
process.env.NEXT_PUBLIC_INTLAYER_SERVER_SET_COOKIE,
|
|
38
|
-
'string'
|
|
39
|
-
)!,
|
|
40
|
-
noPrefix: getEnvValue(process.env.NEXT_PUBLIC_INTLAYER_NO_PREFIX, 'boolean')!,
|
|
41
|
-
};
|
|
21
|
+
const intlayerIntlConfiguration: InternationalizationConfig = {
|
|
22
|
+
locales: getEnvValue<Locales>(env.internationalization.locales, 'array')!,
|
|
23
|
+
defaultLocale: getEnvValue<Locales>(
|
|
24
|
+
env?.internationalization.defaultLocale,
|
|
25
|
+
'string'
|
|
26
|
+
)!,
|
|
27
|
+
};
|
|
42
28
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
'
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
process.env.NEXT_PUBLIC_INTLAYER_CONTENT_DIR,
|
|
55
|
-
'string'
|
|
56
|
-
)!,
|
|
57
|
-
excludedPath: getEnvValue<string>(
|
|
58
|
-
process.env.NEXT_PUBLIC_INTLAYER_EXCLUDED_PATH,
|
|
59
|
-
'array'
|
|
60
|
-
)!,
|
|
61
|
-
resultDirName: getEnvValue(
|
|
62
|
-
process.env.NEXT_PUBLIC_INTLAYER_RESULT_DIR_NAME,
|
|
63
|
-
'string'
|
|
64
|
-
)!,
|
|
65
|
-
resultDir: getEnvValue(
|
|
66
|
-
process.env.NEXT_PUBLIC_INTLAYER_RESULT_DIR,
|
|
67
|
-
'string'
|
|
68
|
-
)!,
|
|
69
|
-
moduleAugmentationDirName: getEnvValue(
|
|
70
|
-
process.env.NEXT_PUBLIC_INTLAYER_MODULE_AUGMENTATION_DIR_NAME,
|
|
71
|
-
'string'
|
|
72
|
-
)!,
|
|
73
|
-
moduleAugmentationDir: getEnvValue(
|
|
74
|
-
process.env.NEXT_PUBLIC_INTLAYER_MODULE_AUGMENTATION_DIR,
|
|
75
|
-
'string'
|
|
76
|
-
)!,
|
|
77
|
-
bundleDirName: getEnvValue(
|
|
78
|
-
process.env.NEXT_PUBLIC_INTLAYER_BUNDLE_DIR_NAME,
|
|
79
|
-
'string'
|
|
80
|
-
)!,
|
|
81
|
-
bundleDir: getEnvValue(
|
|
82
|
-
process.env.NEXT_PUBLIC_INTLAYER_BUNDLE_DIR,
|
|
83
|
-
'string'
|
|
84
|
-
)!,
|
|
85
|
-
bundleFileExtension: getEnvValue(
|
|
86
|
-
process.env.NEXT_PUBLIC_INTLAYER_BUNDLE_FILE_EXTENSION,
|
|
87
|
-
'string'
|
|
88
|
-
)!,
|
|
89
|
-
dictionariesDirName: getEnvValue(
|
|
90
|
-
process.env.NEXT_PUBLIC_INTLAYER_DICTIONARIES_DIR_NAME,
|
|
91
|
-
'string'
|
|
92
|
-
)!,
|
|
93
|
-
dictionariesDir: getEnvValue(
|
|
94
|
-
process.env.NEXT_PUBLIC_INTLAYER_DICTIONARIES_DIR,
|
|
95
|
-
'string'
|
|
96
|
-
)!,
|
|
97
|
-
typeDirName: getEnvValue(
|
|
98
|
-
process.env.NEXT_PUBLIC_INTLAYER_TYPES_DIR_NAME,
|
|
99
|
-
'string'
|
|
100
|
-
)!,
|
|
101
|
-
typesDir: getEnvValue(process.env.NEXT_PUBLIC_INTLAYER_TYPES_DIR, 'string')!,
|
|
102
|
-
mainDirName: getEnvValue(
|
|
103
|
-
process.env.NEXT_PUBLIC_INTLAYER_MAIN_DIR_NAME,
|
|
104
|
-
'string'
|
|
105
|
-
)!,
|
|
106
|
-
mainDir: getEnvValue(process.env.NEXT_PUBLIC_INTLAYER_MAIN_DIR, 'string')!,
|
|
107
|
-
watchedFilesPattern: getEnvValue<string>(
|
|
108
|
-
process.env.NEXT_PUBLIC_INTLAYER_WATCHED_FILES_PATTERN,
|
|
109
|
-
'array'
|
|
110
|
-
)!,
|
|
111
|
-
watchedFilesPatternWithPath: getEnvValue<string>(
|
|
112
|
-
process.env.NEXT_PUBLIC_INTLAYER_WATCHED_FILES_PATTERN_WITH_PATH,
|
|
113
|
-
'array'
|
|
114
|
-
)!,
|
|
115
|
-
outputFilesPatternWithPath: getEnvValue(
|
|
116
|
-
process.env.NEXT_PUBLIC_INTLAYER_OUTPUT_FILES_PATTERN,
|
|
117
|
-
'string'
|
|
118
|
-
)!,
|
|
119
|
-
};
|
|
29
|
+
const intlayerMiddlewareConfiguration: MiddlewareConfig = {
|
|
30
|
+
headerName: getEnvValue(env.middleware.headerName, 'string')!,
|
|
31
|
+
cookieName: getEnvValue(env.middleware.cookieName, 'string')!,
|
|
32
|
+
prefixDefault: getEnvValue(env.middleware.prefixDefault, 'boolean')!,
|
|
33
|
+
basePath: getEnvValue(env.middleware.basePath, 'string')!,
|
|
34
|
+
serverSetCookie: getEnvValue<ServerSetCookieRule>(
|
|
35
|
+
env.middleware.serverSetCookie,
|
|
36
|
+
'string'
|
|
37
|
+
)!,
|
|
38
|
+
noPrefix: getEnvValue(env.middleware.noPrefix, 'boolean')!,
|
|
39
|
+
};
|
|
120
40
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
41
|
+
const intlayerContentConfiguration: ContentConfig = {
|
|
42
|
+
fileExtensions: getEnvValue<string>(env.content.fileExtensions, 'array')!,
|
|
43
|
+
baseDir: getEnvValue(env.content.baseDir, 'string')!,
|
|
44
|
+
contentDirName: getEnvValue(env.content.contentDirName, 'string')!,
|
|
45
|
+
contentDir: getEnvValue(env.content.contentDir, 'string')!,
|
|
46
|
+
excludedPath: getEnvValue<string>(env.content.excludedPath, 'array')!,
|
|
47
|
+
resultDirName: getEnvValue(env.content.resultDirName, 'string')!,
|
|
48
|
+
resultDir: getEnvValue(env.content.resultDir, 'string')!,
|
|
49
|
+
moduleAugmentationDirName: getEnvValue(
|
|
50
|
+
env.content.moduleAugmentationDirName,
|
|
51
|
+
'string'
|
|
52
|
+
)!,
|
|
53
|
+
moduleAugmentationDir: getEnvValue(
|
|
54
|
+
env.content.moduleAugmentationDir,
|
|
55
|
+
'string'
|
|
56
|
+
)!,
|
|
57
|
+
dictionaryOutput: getEnvValue<DictionaryOutput>(
|
|
58
|
+
env.content.dictionaryOutput,
|
|
59
|
+
'array'
|
|
60
|
+
)!,
|
|
61
|
+
dictionariesDirName: getEnvValue(
|
|
62
|
+
env.content.dictionariesDirName,
|
|
63
|
+
'string'
|
|
64
|
+
)!,
|
|
65
|
+
dictionariesDir: getEnvValue(env.content.dictionariesDir, 'string')!,
|
|
66
|
+
i18nDictionariesDirName: getEnvValue(
|
|
67
|
+
env.content.i18nDictionariesDirName,
|
|
68
|
+
'string'
|
|
69
|
+
)!,
|
|
70
|
+
i18nDictionariesDir: getEnvValue(
|
|
71
|
+
env.content.i18nDictionariesDir,
|
|
72
|
+
'string'
|
|
73
|
+
)!,
|
|
74
|
+
typeDirName: getEnvValue(env.content.typeDirName, 'string')!,
|
|
75
|
+
typesDir: getEnvValue(env.content.typesDir, 'string')!,
|
|
76
|
+
mainDirName: getEnvValue(env.content.mainDirName, 'string')!,
|
|
77
|
+
mainDir: getEnvValue(env.content.mainDir, 'string')!,
|
|
78
|
+
watchedFilesPattern: getEnvValue<string>(
|
|
79
|
+
env.content.watchedFilesPattern,
|
|
80
|
+
'array'
|
|
81
|
+
)!,
|
|
82
|
+
watchedFilesPatternWithPath: getEnvValue<string>(
|
|
83
|
+
env.content.watchedFilesPatternWithPath,
|
|
84
|
+
'array'
|
|
85
|
+
)!,
|
|
86
|
+
outputFilesPatternWithPath: getEnvValue(
|
|
87
|
+
env.content.outputFilesPatternWithPath,
|
|
88
|
+
'string'
|
|
89
|
+
)!,
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const intlayerConfiguration: IntlayerConfig = {
|
|
93
|
+
internationalization: intlayerIntlConfiguration,
|
|
94
|
+
middleware: intlayerMiddlewareConfiguration,
|
|
95
|
+
content: intlayerContentConfiguration,
|
|
96
|
+
};
|
|
126
97
|
|
|
127
|
-
|
|
98
|
+
return intlayerConfiguration;
|
|
99
|
+
};
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
intlayerIntlConfiguration,
|
|
3
|
-
intlayerMiddlewareConfiguration,
|
|
4
|
-
intlayerContentConfiguration,
|
|
5
|
-
intlayerConfiguration,
|
|
6
|
-
getConfiguration,
|
|
7
|
-
} from './getConfiguration';
|
|
1
|
+
export { getConfiguration } from './getConfiguration';
|
|
8
2
|
export { formatEnvVariable } from './formatEnvVariable';
|
|
@@ -1,14 +1,32 @@
|
|
|
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
|
|
6
15
|
): T | undefined;
|
|
7
|
-
function getEnvValue<T>(
|
|
8
|
-
|
|
16
|
+
function getEnvValue<T>(
|
|
17
|
+
value: unknown,
|
|
18
|
+
type: 'object',
|
|
19
|
+
verbose?: boolean
|
|
20
|
+
): T | undefined;
|
|
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
31
|
try {
|
|
14
32
|
switch (type) {
|
|
@@ -27,20 +45,18 @@ function getEnvValue(
|
|
|
27
45
|
case 'object':
|
|
28
46
|
case 'array':
|
|
29
47
|
// Attempt to parse the value as JSON
|
|
30
|
-
|
|
31
|
-
return JSON.parse(value as string);
|
|
32
|
-
} catch (error) {
|
|
33
|
-
// Log error and return undefined if any error occurs during parsing
|
|
34
|
-
console.error(`Error parsing environment variable`);
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
48
|
+
return JSON.parse(value as string);
|
|
37
49
|
|
|
38
50
|
default:
|
|
39
51
|
return undefined;
|
|
40
52
|
}
|
|
41
53
|
} catch (error) {
|
|
42
54
|
// Log error and return undefined if any error occurs during parsing
|
|
43
|
-
|
|
55
|
+
if (verbose) {
|
|
56
|
+
console.error(
|
|
57
|
+
`Error parsing environment variable, parsing : ${((value ?? '') as string).toString()}`
|
|
58
|
+
);
|
|
59
|
+
}
|
|
44
60
|
return undefined;
|
|
45
61
|
}
|
|
46
62
|
}
|
package/src/index.ts
CHANGED
|
@@ -16,9 +16,5 @@ export type { LocalesValues } from './types/locales';
|
|
|
16
16
|
export { Locales } from './types/locales';
|
|
17
17
|
export {
|
|
18
18
|
formatEnvVariable,
|
|
19
|
-
intlayerIntlConfiguration,
|
|
20
|
-
intlayerMiddlewareConfiguration,
|
|
21
|
-
intlayerContentConfiguration,
|
|
22
|
-
intlayerConfiguration,
|
|
23
19
|
getConfiguration as getClientConfiguration,
|
|
24
20
|
} from './envVariables/index';
|