UNPKG

@shayanthenerd/eslint-config

Version:

A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style

21 lines (19 loc) 829 B
import { defaultOptions } from "./defaultOptions.js"; import { isEmptyString } from "../isEmptyString.js"; import { enableDetectedConfigs } from "./enableDetectedConfigs.js"; import { createDefu } from "defu"; //#region src/utils/options/mergeWithDefaults.ts const mergeOptions = createDefu((object, key, value) => { const isValueTrue = value === true; const isDefaultValueFalse = object[key] === false; const isValueEmptyString = isEmptyString(value); const fallBackToDefault = isValueEmptyString || isValueTrue && !isDefaultValueFalse; return fallBackToDefault; }); function mergeWithDefaults(options) { const optionsWithDetectedConfigs = enableDetectedConfigs(options); const mergedOptions = mergeOptions(optionsWithDetectedConfigs, defaultOptions); return mergedOptions; } //#endregion export { mergeWithDefaults };