-- Pure function returns options with all properties.

local function normalizeDiffOptions(options_: DiffOptions?): DiffOptionsNormalized
	-- ROBLOX FIXME Luau: needs a normalization fix to avoid Key 'compareKeys' is missing from '{  }' in the type 'DiffOptions | {  }'
	local options = if options_ then options_ else {} :: DiffOptions
	return Object.assign({}, OPTIONS_DEFAULT, options, {
		compareKeys = getCompareKeys(options.compareKeys),
		contextLines = getContextLines(options.contextLines),
	}) :: DiffOptionsNormalized
end

return {
	noColor = noColor,
	normalizeDiffOptions = normalizeDiffOptions,
}
