{"version":3,"file":"getMultilingualUrls.mjs","names":[],"sources":["../../../src/localization/getMultilingualUrls.ts"],"sourcesContent":["import type { StrictModeLocaleMap } from '@intlayer/types/module_augmentation';\nimport { getLocalizedUrl } from './getLocalizedUrl';\nimport { type RoutingOptions, resolveRoutingConfig } from './getPrefix';\n\n/**\n * Generates multilingual URLs by prefixing the given URL with each supported locale\n * or adding search parameters based on the routing mode.\n * Handles both absolute and relative URLs appropriately.\n *\n * This function gets the locales, default locale, and routing mode from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n *  // prefix-no-default mode\n *  getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-no-default' })\n *     // Returns { en: '/dashboard', fr: '/fr/dashboard' }\n *\n *  // prefix-all mode\n *  getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-all' })\n *     // Returns { en: '/en/dashboard', fr: '/fr/dashboard' }\n *\n *  // search-params mode\n *  getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'search-params' })\n *     // Returns { en: '/dashboard?locale=en', fr: '/dashboard?locale=fr' }\n *\n *  // no-prefix mode\n *  getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'no-prefix' })\n *     // Returns { en: '/dashboard', fr: '/dashboard' }\n * ```\n *\n * @param url - The original URL string to be processed.\n * @param options - Configuration options\n * @param options.locales - Optional array of supported locales. Defaults to configured locales.\n * @param options.defaultLocale - The default locale. Defaults to configured default locale.\n * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.\n * @returns An object mapping each locale to its corresponding multilingual URL.\n */\nexport const getMultilingualUrls = (\n  url: string,\n  options: RoutingOptions = {}\n): StrictModeLocaleMap<string> => {\n  const resolved = resolveRoutingConfig(options);\n\n  return Object.fromEntries(\n    (resolved.locales ?? []).map((locale) => [\n      locale,\n      getLocalizedUrl(url, locale, resolved),\n    ])\n  ) as StrictModeLocaleMap<string>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,MAAa,uBACX,KACA,UAA0B,EAAE,KACI;CAChC,MAAM,WAAW,qBAAqB,QAAQ;AAE9C,QAAO,OAAO,aACX,SAAS,WAAW,EAAE,EAAE,KAAK,WAAW,CACvC,QACA,gBAAgB,KAAK,QAAQ,SAAS,CACvC,CAAC,CACH"}