@putout/operator-match-files
🐊Putout operator adds ability to match files to plugins
Last updated 20 days ago by coderaiser .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ npm install @putout/operator-match-files 
SYNC missed versions from official npm registry.

@putout/operator-match-files NPM version

🐊Putout operator adds ability to match files to plugins.

Install

npm i putout @putout/operator-match-files

API

If you want to create 🐊Putout plugin that will match files according to your needs just:

const {operator} = require('putout');
const {matchFiles} = operator;
const updateTSConfig = require('../update-tsconfig');

module.exports = matchFiles({
    'tsconfig.json': updateTSConfig,
});

This will help in case when update-tsconfig is disabled by default:

const updateTSConfig = require('./update-tsconfig');

module.exports.rules = {
    'update-tsconfig': ['off', updateTSConfig],
};

And you want to help users avoid updating .putout.json config with:

{
    "match": {
        "tsconfig.json": {
            "nextjs/update-tsconfig": "on"
        }
    },
    "plugins": ["nextjs"]
}

If you want to pass options use:

{
    "match": {
        "tsconfig.json": {
            "nextjs/update-tsconfig": ["on", {
                "ignore": []
            }]
        }
    },
    "plugins": ["nextjs"]
}

Instead of this, redlint can be used, it will generate .filesystem.json which can be processed by 🐊Putout.

Rename

If you want to save with other name use ->:

const {operator} = require('putout');
const {matchFiles} = operator;
const updateTSConfig = require('../update-tsconfig');

module.exports = matchFiles({
    'tsconfig.json -> hello.json': updateTSConfig,
});

Matcher

You can even use file matchers:

{
    "rules": {
        "filesystem/convert-json-to-js": ["on", {
            "filename": "package.json"
        }]
    }
}

Matchers: __filename = __name.__ext

module.exports = matchFiles({
    '__name.json -> __name.js': updateTSConfig,
});

Exclude

If you want to exclude some files, use:

const {operator} = require('putout');
const {matchFiles} = operator;
const updateTSConfig = require('../update-tsconfig');

module.exports = matchFiles({
    files: {
        '__name.ts -> __name.js': updateTSConfig,
    },
    exclude: ['*.d.ts'],
});

Options

You can also pass options:

module.exports = matchFiles({
    '.eslintrc.json -> eslint.config.js': {
        rules: {
            'eslint/declare': {
                type: 'esm',
            },
        },
        plugins: [
            ['eslint/convert-rc-to-flat', rcToFlat],
            ['eslint/declare', declare],
        ],
    },
});

License

MIT

Current Tags

  • 5.1.0                                ...           latest (20 days ago)

25 Versions

  • 5.1.0                                ...           20 days ago
  • 5.0.0                                ...           a month ago
  • 4.0.0                                ...           2 months ago
  • 3.5.0                                ...           7 months ago
  • 3.4.0                                ...           7 months ago
  • 3.3.0                                ...           8 months ago
  • 3.2.2                                ...           8 months ago
  • 3.2.1                                ...           8 months ago
  • 3.2.0                                ...           8 months ago
  • 3.1.0                                ...           8 months ago
  • 3.0.1                                ...           a year ago
  • 3.0.0                                ...           a year ago
  • 2.4.1                                ...           a year ago
  • 2.4.0                                ...           a year ago
  • 2.3.0                                ...           a year ago
  • 2.2.0                                ...           a year ago
  • 2.1.0                                ...           a year ago
  • 2.0.1                                ...           a year ago
  • 2.0.0                                ...           a year ago
  • 1.3.1                                ...           a year ago
  • 1.3.0                                ...           a year ago
  • 1.2.0                                ...           a year ago
  • 1.1.0                                ...           a year ago
  • 1.0.1                                ...           a year ago
  • 1.0.0                                ...           a year ago
Maintainers (1)
Downloads
Total 0
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dev Dependencies (11)
Dependents (1)

© 2010 - cnpmjs.org x YWFE | Home | YWFE