import Diff from './base.js'; import type {ChangeObject, DiffArraysOptionsNonabortable, CallbackOptionNonabortable, DiffArraysOptionsAbortable, DiffCallbackNonabortable, CallbackOptionAbortable} from '../types.js'; class ArrayDiff extends Diff> { tokenize(value: Array) { return value.slice(); } join(value: Array) { return value; } removeEmpty(value: Array) { return value; } } export const arrayDiff = new ArrayDiff(); /** * diffs two arrays of tokens, comparing each item for strict equality (===). * @returns a list of change objects. */ export function diffArrays( oldArr: T[], newArr: T[], options: DiffCallbackNonabortable ): undefined; export function diffArrays( oldArr: T[], newArr: T[], options: DiffArraysOptionsAbortable & CallbackOptionAbortable ): undefined export function diffArrays( oldArr: T[], newArr: T[], options: DiffArraysOptionsNonabortable & CallbackOptionNonabortable ): undefined export function diffArrays( oldArr: T[], newArr: T[], options: DiffArraysOptionsAbortable ): ChangeObject[] | undefined export function diffArrays( oldArr: T[], newArr: T[], options?: DiffArraysOptionsNonabortable ): ChangeObject[] export function diffArrays( oldArr: T[], newArr: T[], options?: any ): undefined | ChangeObject[] { return arrayDiff.diff(oldArr, newArr, options); }