UNPKG

@lingui/swc-plugin

Version:
34 lines (33 loc) 1.1 kB
import { getConfig } from "@lingui/conf"; /** * Loads the Lingui config, maps relevant options to the SWC plugin format, * and returns a ready-to-use `["@lingui/swc-plugin", options]` tuple. * * @example * ```js * // next.config.js * const nextConfig = { * experimental: { * swcPlugins: [linguiMacroSwcPlugin()], * }, * }; * ``` * * @param overrides - Plugin options merged over values derived from the Lingui config. * @param configOptions - Controls how the Lingui config is discovered or loaded. */ export function linguiMacroSwcPlugin(overrides, configOptions = {}) { const config = getConfig(configOptions); const macroOptions = { corePackage: config.macro.corePackage, jsxPackage: config.macro.jsxPackage, jsxPlaceholderAttribute: config.macro.jsxPlaceholderAttribute, jsxPlaceholderDefaults: config.macro.jsxPlaceholderDefaults, ...overrides, runtimeModules: { ...config.runtimeConfigModule, ...overrides?.runtimeModules, }, }; return ["@lingui/swc-plugin", macroOptions]; }