{"version":3,"file":"envVars.cjs","names":[],"sources":["../../../src/envVars/envVars.ts"],"sourcesContent":["import type { IntlayerConfig } from '@intlayer/types/config';\n\n/**\n * Converts a list of unused NodeType keys into env-var definitions.\n * Set to `\"false\"` so bundlers can eliminate the corresponding plugin code.\n *\n * @example\n * formatNodeTypeToEnvVar(['enumeration'])\n * // { 'INTLAYER_NODE_TYPE_ENUMERATION': '\"false\"' }\n *\n * formatNodeTypeToEnvVar(['enumeration'], true)\n * // { 'process.env.INTLAYER_NODE_TYPE_ENUMERATION': '\"false\"' }\n */\nexport const formatNodeTypeToEnvVar = (\n  nodeTypes: string[],\n  wrapKey = (key: string) => key,\n  wrapValue = (value: string) => value\n): Record<string, string> =>\n  nodeTypes.reduce(\n    (acc, nodeType) => {\n      acc[wrapKey(`INTLAYER_NODE_TYPE_${nodeType.toUpperCase()}`)] =\n        wrapValue('false');\n      return acc;\n    },\n    {} as Record<string, string>\n  );\n\n/**\n * Returns env-var definitions for the full Intlayer config to be injected at\n * build time. Allows bundlers to dead-code-eliminate unused routing modes,\n * rewrite logic, storage mechanisms, and editor code.\n *\n * @example\n * getConfigEnvVars(config)\n * // { INTLAYER_ROUTING_MODE: '\"prefix-no-default\"', INTLAYER_ROUTING_REWRITE_RULES: '\"false\"', ... }\n *\n * getConfigEnvVars(config, true)\n * // { 'process.env.INTLAYER_ROUTING_MODE': '\"prefix-no-default\"', ... }\n */\nexport const getConfigEnvVars = (\n  config: IntlayerConfig,\n  wrapKey = (key: string) => key,\n  wrapValue = (value: string) => value\n): Record<string, string> => {\n  const { routing, editor } = config;\n\n  const envVars: Record<string, string> = {\n    [wrapKey('INTLAYER_ROUTING_MODE')]: wrapValue(routing.mode),\n  };\n\n  if (!routing.rewrite) {\n    envVars[wrapKey('INTLAYER_ROUTING_REWRITE_RULES')] = wrapValue('false');\n  }\n\n  if (!routing.domains || Object.keys(routing.domains).length === 0) {\n    envVars[wrapKey('INTLAYER_ROUTING_DOMAINS')] = wrapValue('false');\n  }\n\n  if (!routing.storage.cookies || routing.storage.cookies.length === 0) {\n    envVars[wrapKey('INTLAYER_ROUTING_STORAGE_COOKIES')] = wrapValue('false');\n  }\n\n  if (\n    !routing.storage.localStorage ||\n    routing.storage.localStorage.length === 0\n  ) {\n    envVars[wrapKey('INTLAYER_ROUTING_STORAGE_LOCALSTORAGE')] =\n      wrapValue('false');\n  }\n\n  if (\n    !routing.storage.sessionStorage ||\n    routing.storage.sessionStorage.length === 0\n  ) {\n    envVars[wrapKey('INTLAYER_ROUTING_STORAGE_SESSIONSTORAGE')] =\n      wrapValue('false');\n  }\n\n  if (!routing.storage.headers || routing.storage.headers.length === 0) {\n    envVars[wrapKey('INTLAYER_ROUTING_STORAGE_HEADERS')] = wrapValue('false');\n  }\n\n  if (editor?.enabled === false) {\n    envVars[wrapKey('INTLAYER_EDITOR_ENABLED')] = wrapValue('false');\n  }\n\n  return envVars;\n};\n"],"mappings":";;;;;;;;;;;;;;AAaA,MAAa,0BACX,WACA,WAAW,QAAgB,KAC3B,aAAa,UAAkB,UAE/B,UAAU,QACP,KAAK,aAAa;AACjB,KAAI,QAAQ,sBAAsB,SAAS,aAAa,GAAG,IACzD,UAAU,QAAQ;AACpB,QAAO;GAET,EAAE,CACH;;;;;;;;;;;;;AAcH,MAAa,oBACX,QACA,WAAW,QAAgB,KAC3B,aAAa,UAAkB,UACJ;CAC3B,MAAM,EAAE,SAAS,WAAW;CAE5B,MAAM,UAAkC,GACrC,QAAQ,wBAAwB,GAAG,UAAU,QAAQ,KAAK,EAC5D;AAED,KAAI,CAAC,QAAQ,QACX,SAAQ,QAAQ,iCAAiC,IAAI,UAAU,QAAQ;AAGzE,KAAI,CAAC,QAAQ,WAAW,OAAO,KAAK,QAAQ,QAAQ,CAAC,WAAW,EAC9D,SAAQ,QAAQ,2BAA2B,IAAI,UAAU,QAAQ;AAGnE,KAAI,CAAC,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,QAAQ,WAAW,EACjE,SAAQ,QAAQ,mCAAmC,IAAI,UAAU,QAAQ;AAG3E,KACE,CAAC,QAAQ,QAAQ,gBACjB,QAAQ,QAAQ,aAAa,WAAW,EAExC,SAAQ,QAAQ,wCAAwC,IACtD,UAAU,QAAQ;AAGtB,KACE,CAAC,QAAQ,QAAQ,kBACjB,QAAQ,QAAQ,eAAe,WAAW,EAE1C,SAAQ,QAAQ,0CAA0C,IACxD,UAAU,QAAQ;AAGtB,KAAI,CAAC,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,QAAQ,WAAW,EACjE,SAAQ,QAAQ,mCAAmC,IAAI,UAAU,QAAQ;AAG3E,KAAI,QAAQ,YAAY,MACtB,SAAQ,QAAQ,0BAA0B,IAAI,UAAU,QAAQ;AAGlE,QAAO"}