@intlayer/config
Version:
Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.
127 lines • 4.37 kB
JavaScript
import {
extractEnvVariable
} from "./extractEnvVariable/index.mjs";
import { getEnvValue } from "./utils.mjs";
const getConfiguration = (options) => {
const env = extractEnvVariable(options);
const intlayerIntlConfiguration = {
locales: getEnvValue(env.internationalization.locales, "array"),
requiredLocales: getEnvValue(
env.internationalization.requiredLocales,
"array"
),
strictMode: getEnvValue(
env.internationalization.strictMode,
"string"
),
defaultLocale: getEnvValue(
env?.internationalization.defaultLocale,
"string"
)
};
const intlayerMiddlewareConfiguration = {
headerName: getEnvValue(env.middleware.headerName, "string"),
cookieName: getEnvValue(env.middleware.cookieName, "string"),
prefixDefault: getEnvValue(env.middleware.prefixDefault, "boolean"),
basePath: getEnvValue(env.middleware.basePath, "string"),
serverSetCookie: getEnvValue(
env.middleware.serverSetCookie,
"string"
),
noPrefix: getEnvValue(env.middleware.noPrefix, "boolean")
};
const intlayerContentConfiguration = {
fileExtensions: getEnvValue(env.content.fileExtensions, "array"),
baseDir: getEnvValue(env.content.baseDir, "string"),
contentDir: getEnvValue(env.content.contentDir, "array"),
excludedPath: getEnvValue(env.content.excludedPath, "array"),
dictionariesDir: getEnvValue(env.content.dictionariesDir, "string"),
moduleAugmentationDir: getEnvValue(
env.content.moduleAugmentationDir,
"string"
),
dictionaryOutput: getEnvValue(
env.content.dictionaryOutput,
"array"
),
unmergedDictionariesDir: getEnvValue(
env.content.unmergedDictionariesDir,
"string"
),
dynamicDictionariesDir: getEnvValue(
env.content.dynamicDictionariesDir,
"string"
),
i18nextResourcesDir: getEnvValue(
env.content.i18nextResourcesDir,
"string"
),
reactIntlMessagesDir: getEnvValue(
env.content.reactIntlMessagesDir,
"string"
),
typesDir: getEnvValue(env.content.typesDir, "string"),
mainDir: getEnvValue(env.content.mainDir, "string"),
configDir: getEnvValue(env.content.configDir, "string"),
watchedFilesPattern: getEnvValue(
env.content.watchedFilesPattern,
"array"
),
watchedFilesPatternWithPath: getEnvValue(
env.content.watchedFilesPatternWithPath,
"array"
),
outputFilesPatternWithPath: getEnvValue(
env.content.outputFilesPatternWithPath,
"string"
),
watch: getEnvValue(env.content.watch, "boolean")
};
const intlayerEditorConfiguration = {
applicationURL: getEnvValue(env.editor.applicationURL, "string"),
editorURL: getEnvValue(env.editor.editorURL, "string"),
cmsURL: getEnvValue(env.editor.cmsURL, "string"),
backendURL: getEnvValue(env.editor.backendURL, "string"),
port: getEnvValue(env.editor.port, "number"),
enabled: getEnvValue(env.editor.enabled, "boolean"),
clientId: getEnvValue(env.editor.clientId, "string"),
clientSecret: getEnvValue(env.editor.clientSecret, "string"),
dictionaryPriorityStrategy: getEnvValue(
env.editor.dictionaryPriorityStrategy,
"string"
),
hotReload: getEnvValue(env.editor.hotReload, "boolean")
};
const logConfiguration = {
mode: getEnvValue(env.log.mode, "string"),
prefix: getEnvValue(env.log.prefix, "string")
};
const aiConfiguration = {
provider: getEnvValue(env.ai?.provider, "string"),
model: getEnvValue(env.ai?.model, "string"),
temperature: getEnvValue(env.ai?.temperature, "number"),
apiKey: getEnvValue(env.ai?.apiKey, "string")
};
const buildConfiguration = {
optimize: getEnvValue(env.build.optimize, "boolean"),
activateDynamicImport: getEnvValue(
env.build.activateDynamicImport,
"boolean"
),
traversePattern: getEnvValue(env.build.traversePattern, "array")
};
const intlayerConfiguration = {
internationalization: intlayerIntlConfiguration,
middleware: intlayerMiddlewareConfiguration,
content: intlayerContentConfiguration,
editor: intlayerEditorConfiguration,
log: logConfiguration,
ai: aiConfiguration,
build: buildConfiguration
};
return intlayerConfiguration;
};
export {
getConfiguration
};
//# sourceMappingURL=getConfiguration.mjs.map