Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/vitest-dev/vitest. Next generation testing framework powered by Vite. vitest.dev
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */
import type { CompareKeys } from 'pretty-format'import { getColors } from '../colors'import type { DiffOptions, DiffOptionsNormalized } from './types'
export const noColor = (string: string): string => string
const DIFF_CONTEXT_DEFAULT = 5
function getDefaultOptions(): DiffOptionsNormalized { const c = getColors()
return { aAnnotation: 'Expected', aColor: c.green, aIndicator: '-', bAnnotation: 'Received', bColor: c.red, bIndicator: '+', changeColor: c.inverse, changeLineTrailingSpaceColor: noColor, commonColor: c.dim, commonIndicator: ' ', commonLineTrailingSpaceColor: noColor, compareKeys: undefined, contextLines: DIFF_CONTEXT_DEFAULT, emptyFirstOrLastLinePlaceholder: '', expand: true, includeChangeCounts: false, omitAnnotationLines: false, patchColor: c.yellow, }}
function getCompareKeys(compareKeys?: CompareKeys): CompareKeys { return (compareKeys && typeof compareKeys === 'function') ? compareKeys : undefined}
function getContextLines(contextLines?: number): number { return (typeof contextLines === 'number' && Number.isSafeInteger(contextLines) && contextLines >= 0) ? contextLines : DIFF_CONTEXT_DEFAULT}
// Pure function returns options with all properties.export function normalizeDiffOptions(options: DiffOptions = {}): DiffOptionsNormalized { return { ...getDefaultOptions(), ...options, compareKeys: getCompareKeys(options.compareKeys), contextLines: getContextLines(options.contextLines), }}