@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
JavaScript
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 };