JSPM

  • Created
  • Published
  • Downloads 429
  • Score
    100M100P100Q94143F
  • License ISC

Merge configurations for ESLint 9

Package Exports

    Readme

    @sequencemedia/eslint-merge

    Merge Flat Config for ESLint v9

    Install

    npm i -D @sequencemedia/eslint-merge

    Use

    The merge function combines two objects and returns the result

    import merge from '@sequencemedia/eslint-merge'

    The first argument should be a config, and the second argument an object which contains your changes

    const result = merge(sharedConfig, changes)

    You can easily achieve this with the spread operator in your eslint.config.*

    /**
     *  You probably will use `import` to get this as a module!
     */
    const sharedConfig = {
      name: 'shared config',
      files: [
        '**/*.{js,mjs,cjs}'
      ]
    }
    
    export default [
      {
        ...sharedConfig,
        files: [
          'src/**/*.{mjs,cjs}'
        ]
      }
    ]

    But! Sometimes you need to make lots of changes, and many spreads is hard to manage, and hard to read

    @sequencemedia/eslint-merge enables you to merge just your changes

    /**
     *  Again, you will probably `import` this
     */
    const sharedConfig = {
      name: 'shared config',
      files: [
        '**/*.{js,mjs,cjs}'
      ]
    }
    
    export default [
      merge(sharedConfig, {
        files: [
          'src/**/*.{mjs,cjs}'
        ]
      })
    ]

    It's simpler to use spread for small projects, but for large or complex configurations (or for producing your own shared configs) use merge