import { Options } from '../Options'; import { ScalarRule, isScalarRule } from '../ScalarRule'; import { Envs, EsLintRule } from '../../enums'; export type CompoundRule = { readonly [K in Envs]: ScalarRule; }; export const isCompoundRule = ( value: unknown, specificRule?: EsLintRule, ): value is CompoundRule => { return ( typeof value === 'object' && value !== null && Object.entries(Envs) .filter(([key]) => typeof key === 'string') .every( ([env, rule]) => Object.keys(value).includes(env) && isScalarRule(rule, specificRule), ) ); };