{"version":3,"file":"define.mjs","names":[],"sources":["../../src/functions/define.ts"],"sourcesContent":["import type { OxlintConfig } from \"oxlint\";\n\nimport type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { cloneDeep } from \"es-toolkit\";\n\nimport { CONFIG_DEFAULT } from \"#/constants/default\";\nimport { mergePresetConfig, mergeUserConfig } from \"#/functions/merge\";\n\nconst defineConfigFn = (\n    userConfig?: OxlintConfig,\n    presets?: Preset[],\n): OxlintConfig => {\n    let config: OxlintConfig = mergeUserConfig(\n        cloneDeep(CONFIG_DEFAULT),\n        userConfig,\n    );\n\n    if (!presets) return config;\n\n    for (const preset of presets) {\n        const presetResult: PresetResult = preset({\n            config,\n        });\n\n        config = mergePresetConfig(config, presetResult.config);\n    }\n\n    return config;\n};\n\n/**\n * Define Oxlint configuration.\n *\n * ### Example\n *\n * ```ts\n * import { defineConfig } from \"@apst/oxlint\";\n * import { commonPreset } from \"@apst/oxlint/presets/common\";\n * import { reactPreset } from \"@apst/oxlint/presets/react\";\n *\n * export default defineConfig([\n *     commonPreset(),\n *     reactPreset(),\n * ]);\n * ```\n */\nfunction defineConfig(presets?: Preset[]): OxlintConfig;\n\n/**\n * Define Oxlint configuration.\n *\n * All arrays will not be merged, adding new values will replace existing values.\n *\n * ### Example\n *\n * ```ts\n * import { defineConfig } from \"@apst/oxlint\";\n * import { IGNORE_PATTERNS_DEFAULT } from \"@apst/oxlint/constants/ignore-patterns\";\n * import { commonPreset } from \"@apst/oxlint/presets/common\";\n * import { reactPreset } from \"@apst/oxlint/presets/react\";\n *\n * export default defineConfig({\n *     ignorePatterns: [\n *         ...IGNORE_PATTERNS_DEFAULT,\n *         // ...\n *     ],\n * }, [\n *     commonPreset(),\n *     reactPreset(),\n * ]);\n * ```\n */\nfunction defineConfig(config?: OxlintConfig, presets?: Preset[]): OxlintConfig;\n\nfunction defineConfig(\n    presetsOrConfig?: Preset[] | OxlintConfig,\n    optionalPresets?: Preset[],\n): OxlintConfig {\n    const config: OxlintConfig | undefined = Array.isArray(presetsOrConfig)\n        ? void 0\n        : presetsOrConfig;\n\n    const presets: Preset[] | undefined = Array.isArray(presetsOrConfig)\n        ? presetsOrConfig\n        : optionalPresets;\n\n    return defineConfigFn(config, presets);\n}\n\nexport { defineConfig };\n"],"mappings":";;;;AASA,MAAM,kBACF,YACA,YACe;CACf,IAAI,SAAuB,gBACvB,UAAU,cAAc,GACxB,UACJ;CAEA,IAAI,CAAC,SAAS,OAAO;CAErB,KAAK,MAAM,UAAU,SAAS;EAC1B,MAAM,eAA6B,OAAO,EACtC,OACJ,CAAC;EAED,SAAS,kBAAkB,QAAQ,aAAa,MAAM;CAC1D;CAEA,OAAO;AACX;AA8CA,SAAS,aACL,iBACA,iBACY;CASZ,OAAO,eARkC,MAAM,QAAQ,eAAe,IAChE,KAAK,IACL,iBAEgC,MAAM,QAAQ,eAAe,IAC7D,kBACA,eAE+B;AACzC"}