import type { UserWorkspaceConfig, ViteUserConfig } from './external.js' import { mergeConfig } from './external.js' import { vitestConfig, vitestProject } from './shareableConfigs.js' /** * A function that returns {@linkcode vitestConfig} * along with optional additional overrides. * * @param [additionalOverrides={}] - **Optional** additional overrides to apply to the configuration. * @returns An augmented version of the default {@linkcode vitestConfig}, incorporating any provided overrides. * * @example * #### __ECMAScript Modules (ESM) usage inside a file like `vitest.config.mts` or `vitest.config.mjs`__ * * ```ts * import { createVitestConfig } from '@aryaemami59/vitest-config' * * export default createVitestConfig({ * test: { * environment: 'jsdom', * // Other additional overrides * }, * }) * ``` * * @example * #### __CommonJS (CJS) usage inside a file like `vitest.config.cts` or `vitest.config.cjs` (using `require`)__ * * ```ts * const { createVitestConfig } = require('@aryaemami59/vitest-config') * * module.exports = createVitestConfig({ * test: { * environment: 'jsdom', * // Other additional overrides * }, * }) * ``` * * @example * #### __CommonJS (CJS) usage inside a file like `vitest.config.cts` or `vitest.config.cjs` (using dynamic import)__ * * ```ts * module.exports = (async () => * (await import('@aryaemami59/vitest-config')).createVitestConfig({ * test: { * environment: 'jsdom', * // Other additional overrides * }, * }))() * ``` * * @example * #### __CommonJS (CJS) usage inside a file like `vitest.config.cts` (using import and export assignment)__ * * ```ts * import vitestConfigModule = require('@aryaemami59/vitest-config') * import createVitestConfig = vitestConfigModule.createVitestConfig * * export = createVitestConfig({ * test: { * environment: 'jsdom', * // Other additional overrides * }, * }) * ``` * * @since 0.0.3 * @public */ export const createVitestConfig = ( additionalOverrides: ViteUserConfig = {}, ): ViteUserConfig => /* @__PURE__ */ mergeConfig(vitestConfig, additionalOverrides) /** * A function that returns {@linkcode vitestProject} * along with optional additional overrides. * * @param [additionalOverrides={}] - **Optional** additional overrides to apply to the configuration. * @returns An augmented version of the default {@linkcode vitestProject}, incorporating any provided overrides. * * @example * #### __ECMAScript Modules (ESM) usage inside a file like `vitest.config.mts` or `vitest.config.mjs`__ * * ```ts * import { createVitestProject } from '@aryaemami59/vitest-config' * * export default createVitestProject({ * test: { * environment: 'jsdom', * // Other additional overrides * }, * }) * ``` * * @example * #### __CommonJS (CJS) usage inside a file like `vitest.config.cts` or `vitest.config.cjs` (using `require`)__ * * ```ts * const { createVitestProject } = require('@aryaemami59/vitest-config') * * module.exports = createVitestProject({ * test: { * environment: 'jsdom', * // Other additional overrides * }, * }) * ``` * * @example * #### __CommonJS (CJS) usage inside a file like `vitest.config.cts` or `vitest.config.cjs` (using dynamic import)__ * * ```ts * module.exports = (async () => * (await import('@aryaemami59/vitest-config')).createVitestProject({ * test: { * environment: 'jsdom', * // Other additional overrides * }, * }))() * ``` * * @example * #### __CommonJS (CJS) usage inside a file like `vitest.config.cts` (using import and export assignment)__ * * ```ts * import vitestConfigModule = require('@aryaemami59/vitest-config') * import createVitestProject = vitestConfigModule.createVitestProject * * export = createVitestProject({ * test: { * environment: 'jsdom', * // Other additional overrides * }, * }) * ``` * * @since 0.0.5 * @public */ export const createVitestProject = ( additionalOverrides: UserWorkspaceConfig = {}, ): UserWorkspaceConfig => /* @__PURE__ */ mergeConfig(vitestProject, additionalOverrides)