Skip to content

Fix: Validate options after applying defaults, not before

Open

Description

Coming over from eslint/eslint#17656 (comment): right now, eslintrc validates options and then validates defaults. Copying the example from @mdjermanovic's comment, if this is a rule:

{
    meta: {
        defaultOptions: [{
            foo: 42
        }],
        schema: [{
            type: "object",
            maxProperties: 2 // allows one or two in addition to "foo"?
        }]
    },
    create() {
        return {};
    }
}

...then the configuration ["error", { bar: 6, baz: 7 }] is still considered valid.

This is different from the new ESLint flat config format.

Technically this proposed stricter behavior could be considered a breaking change and out of scope given this package's feature freeze. However, I'd propose we consider it a bugfix, as IMO the invalid options should not have been allowed to begin with.

Filing a tracking issue for my reference. I plan on sending a PR for this soon, unless directed otherwise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    • Status

      Implementing

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions