@elsikora/eslint-config
Version:
ESLint configuration vision of ElsiKora
66 lines (63 loc) • 2.26 kB
JavaScript
import 'eslint/use-at-your-own-risk';
import { formatPluginName } from '../utility/format-plugin-name.utility.js';
import { formatRuleName } from '../utility/format-rule-name.utility.js';
import noSecretsPlugin from 'eslint-plugin-no-secrets';
import tseslint from 'typescript-eslint';
/**
* Loads the ESLint configuration to prevent secrets from being committed
* @param {IConfigOptions} _config - Configuration options
* @returns {Array<Linter.Config>} An array of ESLint configurations for preventing secrets
*/
function loadConfig(_config) {
return [
{
plugins: {
[]: noSecretsPlugin,
},
rules: {
[]: [
"error",
{
patterns: {
ApiKey: /(?:const|let|var)\s+API[-_]?KEY/i,
Password: /(?:const|let|var)\s+(?:PASSWORD|PASSWD|PWD)/i,
SecretKey: /(?:const|let|var)\s+SECRET[-_]?KEY/i,
Token: /(?:const|let|var)\s+(?:TOKEN|ACCESS[-_]?TOKEN)/i,
},
},
],
[]: [
"error",
{
ignoreModules: true,
// eslint-disable-next-line @elsikora/typescript/no-magic-numbers
tolerance: 5,
},
],
},
},
{
files: ["**/*.ts", "**/*.tsx"],
languageOptions: {
// @ts-ignore
parser: tseslint.parser,
parserOptions: {
projectService: true,
},
},
},
{
files: ["**/*.js", "**/*.jsx"],
languageOptions: {
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: "latest",
},
},
},
];
}
export { loadConfig as default };
//# sourceMappingURL=no-secrets.js.map