@intlayer/config
Version:
Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.
1 lines • 8.09 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/envVariables/getConfiguration.ts"],"sourcesContent":["import type {\n AiConfig,\n BuildConfig,\n ContentConfig,\n DictionaryOutput,\n InternationalizationConfig,\n IntlayerConfig,\n LogConfig,\n MiddlewareConfig,\n ServerSetCookieRule,\n StrictMode,\n} from '../types/config';\nimport type { Locales } from '../types/locales';\nimport {\n extractEnvVariable,\n type ExtractEnvVariableOptions,\n} from './extractEnvVariable/index';\nimport { getEnvValue } from './utils';\n\n/**\n * Get all configuration values using environment variables\n * Can be used in the client side as the server side\n * To use it, be sure to have the environment variables set\n */\nexport const getConfiguration = (\n options?: ExtractEnvVariableOptions\n): IntlayerConfig => {\n const env = extractEnvVariable(options);\n\n const intlayerIntlConfiguration: InternationalizationConfig = {\n locales: getEnvValue<Locales>(env.internationalization.locales, 'array')!,\n requiredLocales: getEnvValue<Locales>(\n env.internationalization.requiredLocales,\n 'array'\n )!,\n strictMode: getEnvValue<StrictMode>(\n env.internationalization.strictMode,\n 'string'\n )!,\n defaultLocale: getEnvValue<Locales>(\n env?.internationalization.defaultLocale,\n 'string'\n )!,\n };\n\n const intlayerMiddlewareConfiguration: MiddlewareConfig = {\n headerName: getEnvValue(env.middleware.headerName, 'string')!,\n cookieName: getEnvValue(env.middleware.cookieName, 'string')!,\n prefixDefault: getEnvValue(env.middleware.prefixDefault, 'boolean')!,\n basePath: getEnvValue(env.middleware.basePath, 'string')!,\n serverSetCookie: getEnvValue<ServerSetCookieRule>(\n env.middleware.serverSetCookie,\n 'string'\n )!,\n noPrefix: getEnvValue(env.middleware.noPrefix, 'boolean')!,\n };\n\n const intlayerContentConfiguration: ContentConfig = {\n fileExtensions: getEnvValue<string>(env.content.fileExtensions, 'array')!,\n baseDir: getEnvValue(env.content.baseDir, 'string')!,\n contentDir: getEnvValue<string>(env.content.contentDir, 'array')!,\n excludedPath: getEnvValue<string>(env.content.excludedPath, 'array')!,\n dictionariesDir: getEnvValue(env.content.dictionariesDir, 'string')!,\n moduleAugmentationDir: getEnvValue(\n env.content.moduleAugmentationDir,\n 'string'\n )!,\n dictionaryOutput: getEnvValue<DictionaryOutput>(\n env.content.dictionaryOutput,\n 'array'\n )!,\n unmergedDictionariesDir: getEnvValue(\n env.content.unmergedDictionariesDir,\n 'string'\n )!,\n dynamicDictionariesDir: getEnvValue(\n env.content.dynamicDictionariesDir,\n 'string'\n )!,\n i18nextResourcesDir: getEnvValue(\n env.content.i18nextResourcesDir,\n 'string'\n )!,\n reactIntlMessagesDir: getEnvValue(\n env.content.reactIntlMessagesDir,\n 'string'\n )!,\n typesDir: getEnvValue(env.content.typesDir, 'string')!,\n mainDir: getEnvValue(env.content.mainDir, 'string')!,\n configDir: getEnvValue(env.content.configDir, 'string')!,\n watchedFilesPattern: getEnvValue<string>(\n env.content.watchedFilesPattern,\n 'array'\n )!,\n watchedFilesPatternWithPath: getEnvValue<string>(\n env.content.watchedFilesPatternWithPath,\n 'array'\n )!,\n outputFilesPatternWithPath: getEnvValue(\n env.content.outputFilesPatternWithPath,\n 'string'\n )!,\n watch: getEnvValue(env.content.watch, 'boolean')!,\n };\n\n const intlayerEditorConfiguration = {\n applicationURL: getEnvValue(env.editor.applicationURL, 'string')!,\n editorURL: getEnvValue(env.editor.editorURL, 'string')!,\n cmsURL: getEnvValue(env.editor.cmsURL, 'string')!,\n backendURL: getEnvValue(env.editor.backendURL, 'string')!,\n port: getEnvValue(env.editor.port, 'number')!,\n enabled: getEnvValue(env.editor.enabled, 'boolean')!,\n clientId: getEnvValue(env.editor.clientId, 'string')!,\n clientSecret: getEnvValue(env.editor.clientSecret, 'string')!,\n dictionaryPriorityStrategy: getEnvValue(\n env.editor.dictionaryPriorityStrategy,\n 'string'\n )! as 'local_first' | 'distant_first',\n hotReload: getEnvValue(env.editor.hotReload, 'boolean')!,\n };\n\n const logConfiguration: LogConfig = {\n mode: getEnvValue(env.log.mode, 'string')!,\n prefix: getEnvValue(env.log.prefix, 'string')!,\n };\n\n const aiConfiguration: AiConfig = {\n provider: getEnvValue(env.ai?.provider, 'string')!,\n model: getEnvValue(env.ai?.model, 'string')!,\n temperature: getEnvValue(env.ai?.temperature, 'number')!,\n apiKey: getEnvValue(env.ai?.apiKey, 'string')!,\n };\n\n const buildConfiguration: BuildConfig = {\n optimize: getEnvValue(env.build.optimize, 'boolean')!,\n activateDynamicImport: getEnvValue(\n env.build.activateDynamicImport,\n 'boolean'\n )!,\n traversePattern: getEnvValue<string>(env.build.traversePattern, 'array')!,\n };\n\n const intlayerConfiguration: IntlayerConfig = {\n internationalization: intlayerIntlConfiguration,\n middleware: intlayerMiddlewareConfiguration,\n content: intlayerContentConfiguration,\n editor: intlayerEditorConfiguration,\n log: logConfiguration,\n ai: aiConfiguration,\n build: buildConfiguration,\n };\n\n return intlayerConfiguration;\n};\n"],"mappings":"AAaA;AAAA,EACE;AAAA,OAEK;AACP,SAAS,mBAAmB;AAOrB,MAAM,mBAAmB,CAC9B,YACmB;AACnB,QAAM,MAAM,mBAAmB,OAAO;AAEtC,QAAM,4BAAwD;AAAA,IAC5D,SAAS,YAAqB,IAAI,qBAAqB,SAAS,OAAO;AAAA,IACvE,iBAAiB;AAAA,MACf,IAAI,qBAAqB;AAAA,MACzB;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,IAAI,qBAAqB;AAAA,MACzB;AAAA,IACF;AAAA,IACA,eAAe;AAAA,MACb,KAAK,qBAAqB;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAEA,QAAM,kCAAoD;AAAA,IACxD,YAAY,YAAY,IAAI,WAAW,YAAY,QAAQ;AAAA,IAC3D,YAAY,YAAY,IAAI,WAAW,YAAY,QAAQ;AAAA,IAC3D,eAAe,YAAY,IAAI,WAAW,eAAe,SAAS;AAAA,IAClE,UAAU,YAAY,IAAI,WAAW,UAAU,QAAQ;AAAA,IACvD,iBAAiB;AAAA,MACf,IAAI,WAAW;AAAA,MACf;AAAA,IACF;AAAA,IACA,UAAU,YAAY,IAAI,WAAW,UAAU,SAAS;AAAA,EAC1D;AAEA,QAAM,+BAA8C;AAAA,IAClD,gBAAgB,YAAoB,IAAI,QAAQ,gBAAgB,OAAO;AAAA,IACvE,SAAS,YAAY,IAAI,QAAQ,SAAS,QAAQ;AAAA,IAClD,YAAY,YAAoB,IAAI,QAAQ,YAAY,OAAO;AAAA,IAC/D,cAAc,YAAoB,IAAI,QAAQ,cAAc,OAAO;AAAA,IACnE,iBAAiB,YAAY,IAAI,QAAQ,iBAAiB,QAAQ;AAAA,IAClE,uBAAuB;AAAA,MACrB,IAAI,QAAQ;AAAA,MACZ;AAAA,IACF;AAAA,IACA,kBAAkB;AAAA,MAChB,IAAI,QAAQ;AAAA,MACZ;AAAA,IACF;AAAA,IACA,yBAAyB;AAAA,MACvB,IAAI,QAAQ;AAAA,MACZ;AAAA,IACF;AAAA,IACA,wBAAwB;AAAA,MACtB,IAAI,QAAQ;AAAA,MACZ;AAAA,IACF;AAAA,IACA,qBAAqB;AAAA,MACnB,IAAI,QAAQ;AAAA,MACZ;AAAA,IACF;AAAA,IACA,sBAAsB;AAAA,MACpB,IAAI,QAAQ;AAAA,MACZ;AAAA,IACF;AAAA,IACA,UAAU,YAAY,IAAI,QAAQ,UAAU,QAAQ;AAAA,IACpD,SAAS,YAAY,IAAI,QAAQ,SAAS,QAAQ;AAAA,IAClD,WAAW,YAAY,IAAI,QAAQ,WAAW,QAAQ;AAAA,IACtD,qBAAqB;AAAA,MACnB,IAAI,QAAQ;AAAA,MACZ;AAAA,IACF;AAAA,IACA,6BAA6B;AAAA,MAC3B,IAAI,QAAQ;AAAA,MACZ;AAAA,IACF;AAAA,IACA,4BAA4B;AAAA,MAC1B,IAAI,QAAQ;AAAA,MACZ;AAAA,IACF;AAAA,IACA,OAAO,YAAY,IAAI,QAAQ,OAAO,SAAS;AAAA,EACjD;AAEA,QAAM,8BAA8B;AAAA,IAClC,gBAAgB,YAAY,IAAI,OAAO,gBAAgB,QAAQ;AAAA,IAC/D,WAAW,YAAY,IAAI,OAAO,WAAW,QAAQ;AAAA,IACrD,QAAQ,YAAY,IAAI,OAAO,QAAQ,QAAQ;AAAA,IAC/C,YAAY,YAAY,IAAI,OAAO,YAAY,QAAQ;AAAA,IACvD,MAAM,YAAY,IAAI,OAAO,MAAM,QAAQ;AAAA,IAC3C,SAAS,YAAY,IAAI,OAAO,SAAS,SAAS;AAAA,IAClD,UAAU,YAAY,IAAI,OAAO,UAAU,QAAQ;AAAA,IACnD,cAAc,YAAY,IAAI,OAAO,cAAc,QAAQ;AAAA,IAC3D,4BAA4B;AAAA,MAC1B,IAAI,OAAO;AAAA,MACX;AAAA,IACF;AAAA,IACA,WAAW,YAAY,IAAI,OAAO,WAAW,SAAS;AAAA,EACxD;AAEA,QAAM,mBAA8B;AAAA,IAClC,MAAM,YAAY,IAAI,IAAI,MAAM,QAAQ;AAAA,IACxC,QAAQ,YAAY,IAAI,IAAI,QAAQ,QAAQ;AAAA,EAC9C;AAEA,QAAM,kBAA4B;AAAA,IAChC,UAAU,YAAY,IAAI,IAAI,UAAU,QAAQ;AAAA,IAChD,OAAO,YAAY,IAAI,IAAI,OAAO,QAAQ;AAAA,IAC1C,aAAa,YAAY,IAAI,IAAI,aAAa,QAAQ;AAAA,IACtD,QAAQ,YAAY,IAAI,IAAI,QAAQ,QAAQ;AAAA,EAC9C;AAEA,QAAM,qBAAkC;AAAA,IACtC,UAAU,YAAY,IAAI,MAAM,UAAU,SAAS;AAAA,IACnD,uBAAuB;AAAA,MACrB,IAAI,MAAM;AAAA,MACV;AAAA,IACF;AAAA,IACA,iBAAiB,YAAoB,IAAI,MAAM,iBAAiB,OAAO;AAAA,EACzE;AAEA,QAAM,wBAAwC;AAAA,IAC5C,sBAAsB;AAAA,IACtB,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,OAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}