@putout/operator-declare

putout operator adds ability to declare referenced variables that wan not defined

Usage no npm install needed!

<script type="module">
  import putoutOperatorDeclare from 'https://cdn.skypack.dev/@putout/operator-declare';
</script>

README

@putout/operator-declare NPM version

putout operator adds ability to declare variable that was not defined before:

Install

npm i putout @putout/operator-declare

API

If you want to create 🐊Putout plugin that will declare variables according to your needs just:

const {
    operator,
    declare,
} = require('putout');

module.exports = declare({
    fs: `import fs from 'fs/promises'`,
});

Dual packages

When you need different declarations for ESM and CommonJS you can use:

const {
    operator,
    declare,
} = require('putout');

module.exports = declare({
    fs: {
        esm: `import fs from 'fs/promises'`,
        comomnjs: `const fs = require('fs')`, // drop when not neaded
    },
});

Configuration

Plugin supports options, so you can pass it in .putout.json:

{
    "rules": {
        "putout/declare-undefined-variables": ["on", {
            "declarations": {
                "fs": "import fs from 'fs/promises'"
            }
        }]
    }
}

Evaluate

Can be used with eslint-plugin-putout/evaluate:

{
    "rules": {
        "putout/declare-undefined-variables": ["on", {
            "declarations": {
                "superMethod": "import superMethod from '__putout_evaluate: join(`./`, basename(__filename), `.js`)'"
            }
        }]
    }
}

If you have a file index.spec.js:

+ import superMethod from './index.js'
superMethod();

License

MIT