{"version":3,"file":"index.cjs","names":["defaultUnocssConfig: AntFuUnocssConfig","defaultVueConfig: AntFuVueConfig","defaultJsConfig: AntFuJsConfig","defaultTsConfig: AntFuTsConfig","defaultFormatterConfig: AntFuFormatterConfig","defaultStrictTsConfig: AntFuTsConfig","defaultStylisticConfig: AntFuStylisticConfig","defaultTestConfig: AntFuTestConfig","value?: boolean | T | null","defaults?: boolean | T | null"],"sources":["../../src/defaults/index.ts"],"sourcesContent":["import type { AntFuFormatterConfig, AntFuJsConfig, AntFuStylisticConfig, AntFuTestConfig, AntFuTsConfig, AntFuUnocssConfig, AntFuVueConfig } from '../types'\n\nexport const defaultUnocssConfig: AntFuUnocssConfig = {\n  attributify: true,\n  strict: true,\n}\n\nexport const defaultVueConfig: AntFuVueConfig = {\n  vueVersion: 3,\n  overrides: {\n    'vue/html-self-closing': ['error', {\n      html: {\n        void: 'always',\n        normal: 'always',\n        component: 'always',\n      },\n    }],\n    'vue/html-comment-content-spacing': ['error', 'always', { exceptions: [] }],\n    'vue/html-comment-indent': ['error', 2],\n    'vue/html-indent': ['error', 2, {\n      baseIndent: 0,\n      alignAttributesVertically: true,\n    }],\n    'vue/define-emits-declaration': ['error', 'type-literal'],\n    'vue/define-props-declaration': ['error', 'type-based'],\n    'vue/define-macros-order': [\n      'error',\n      {\n        order: [\n          'defineProps',\n          'defineEmits',\n          'defineModel',\n          'defineSlots',\n        ],\n        defineExposeLast: true,\n      },\n    ],\n    'vue/block-order': [\n      'error',\n      {\n        order: ['script', 'template', 'style'],\n      },\n    ],\n    'vue/attributes-order': [\n      'error',\n      {\n        order: ['DEFINITION', 'LIST_RENDERING', 'CONDITIONALS', 'RENDER_MODIFIERS', 'GLOBAL', 'UNIQUE', 'TWO_WAY_BINDING', 'OTHER_DIRECTIVES', 'OTHER_ATTR', 'EVENTS', 'CONTENT'],\n      },\n    ],\n    'vue/v-on-event-hyphenation': [\n      'error',\n      'never',\n      {\n        autofix: true,\n      },\n    ],\n    'vue/attribute-hyphenation': [\n      'error',\n      'never',\n      {\n        ignoreTags: ['i-', 'v-', 'v-bind'],\n      },\n    ],\n    'vue/prop-name-casing': ['error', 'camelCase'],\n    'vue/component-name-in-template-casing': [\n      'error',\n      'PascalCase',\n      {\n        ignores: ['router-view', 'router-link', 'scroll-view'],\n        registeredComponentsOnly: false,\n      },\n    ],\n  },\n}\n\nexport const defaultJsConfig: AntFuJsConfig = {\n  overrides: {\n    'no-inline-comments': 'error',\n    'unicorn/no-useless-spread': 'error',\n\n    'curly': ['error', 'all'],\n    'no-undefined': 'error',\n    'no-cond-assign': ['error', 'always'],\n    'no-constant-condition': 'error',\n    'no-restricted-syntax': 'error',\n    'no-global-assign': 'error',\n    'no-unused-vars': 'error',\n    'no-var': 'error',\n    'prefer-const': [\n      'error',\n      {\n        destructuring: 'any',\n        ignoreReadBeforeAssign: false,\n      },\n    ],\n  },\n}\n\nexport const defaultTsConfig: AntFuTsConfig = {\n  overrides: {\n    'ts/no-unsafe-assignment': 'off',\n    'ts/no-unsafe-call': 'off',\n    'ts/no-unsafe-argument': 'off',\n    'ts/no-unsafe-return': 'off',\n    'ts/member-ordering': ['error'],\n    'ts/no-extra-non-null-assertion': 'error',\n    'ts/no-non-null-assertion': 'error',\n    'ts/no-explicit-any': ['error', {\n      fixToUnknown: true,\n      ignoreRestArgs: true,\n    }],\n    'ts/no-namespace': 'error',\n    'ts/no-unused-vars': [\n      'error',\n      {\n        vars: 'all',\n        args: 'after-used',\n        ignoreRestSiblings: false,\n      },\n    ],\n  },\n}\n\nexport const defaultFormatterConfig: AntFuFormatterConfig = {\n  css: 'prettier',\n  html: 'prettier',\n  prettierOptions: {\n    printWidth: 160,\n    tabWidth: 2,\n    arrowParens: 'always',\n    vueIndentScriptAndStyle: true,\n    useTabs: false,\n    singleQuote: true,\n    jsxSingleQuote: true,\n    trailingComma: 'all',\n    bracketSpacing: true,\n  },\n}\n\n/**\n * 严格 ts 模式 的默认配置\n *\n * 这些配置需要 配置 parserOptions 和 tsconfigPath 等\n * @see https://typescript-eslint.io/getting-started/typed-linting\n */\nexport const defaultStrictTsConfig: AntFuTsConfig = {\n  overrides: {\n    'ts/no-unsafe-assignment': 'off',\n    'ts/no-unsafe-call': 'off',\n    'ts/no-unsafe-argument': 'off',\n    'ts/no-unsafe-return': 'off',\n    'ts/no-floating-promises': 'error',\n  },\n}\n\nexport const defaultStylisticConfig: AntFuStylisticConfig = {\n  jsx: true,\n  indent: 2,\n  quotes: 'single',\n  semi: false,\n  overrides: {\n    'style/no-multiple-empty-lines': ['error', { max: 1, maxBOF: 0, maxEOF: 0 }],\n    'style/brace-style': ['error', '1tbs'],\n    'style/arrow-parens': ['error', 'always'],\n  },\n}\n\nexport const defaultTestConfig: AntFuTestConfig = {\n  overrides: {\n    'no-console': 'off',\n    'ts/unbound-method': 'off',\n    'ts/no-unsafe-argument': 'off',\n    'ts/no-unsafe-assignment': 'off',\n    'ts/no-unsafe-member-access': 'off',\n    'ts/no-unsafe-call': 'off',\n    'ts/no-unsafe-return': 'off',\n  },\n}\n\n/**\n * 合并配置项，支持以下场景：\n * 1. 布尔值与对象配置的混合\n * 2. 使用 vite 的 mergeConfig 进行对象合并\n * 3. 处理 undefined 和 null 的默认值\n *\n * @example\n * ```ts\n * // 场景1: 布尔值转换为默认对象\n * mergeWithDefaults(true, { foo: 'bar' }) // => { foo: 'bar' }\n *\n * // 场景2: vite配置合并\n * mergeWithDefaults({ plugins: [vue()] }, { plugins: [unocss()] })\n *\n * // 场景3: undefined/null/false 处理\n * mergeWithDefaults(false, true) // => false\n * ```\n */\nexport function mergeWithDefaults<T extends object>(\n  value?: boolean | T | null,\n  defaults?: T\n): T\nexport function mergeWithDefaults<T extends object>(\n  value?: boolean | T | null,\n  defaults?: boolean\n): boolean | T\nexport function mergeWithDefaults<T extends object>(\n  value?: boolean | T | null,\n  defaults?: boolean | T | null,\n): boolean | T {\n  // 处理无默认值的情况\n  if (defaults === false || defaults === null || defaults === void 0) {\n    if (value === true) {\n      return true\n    }\n    if (value === false || value === null) {\n      return false\n    }\n    return value as T\n  }\n\n  // 处理 value 为 undefined 的情况\n  if (value === void 0) {\n    return defaults\n  }\n\n  // 处理 value 为 false/null 的情况\n  if (value === false || value === null) {\n    return false\n  }\n\n  // 处理 value 为 true 的情况\n  if (value === true) {\n    return defaults\n  }\n\n  // 如果都是对象，使用 vite 的 mergeConfig 进行合并\n  if (typeof value === 'object' && typeof defaults === 'object') {\n    return {\n      ...defaults,\n      ...value,\n    }\n  }\n\n  // 其他情况返回 value\n  return value\n}\n"],"mappings":"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"}