UNPKG

eslint-config-niieani

Version:

Reusable ESLint config for Beemo configured projects.

63 lines (52 loc) 2.1 kB
/* eslint-disable no-magic-numbers */ /* eslint-disable import/no-commonjs,import/no-import-module-exports */ import type eslint from 'eslint' import {getTargetNodeRuntime} from '@niieani/scaffold-config-constants' const nodeVersion = getTargetNodeRuntime() const config: eslint.Linter.Config = { plugins: ['node'], env: { browser: false, node: true, }, rules: { // Ensure proper error handling 'node/no-callback-literal': 'error', // Ensure NPM packages are valid and can be published to the target engine 'node/no-deprecated-api': 'error', 'node/no-unpublished-bin': 'error', 'node/no-unpublished-import': 'error', 'node/no-unpublished-require': 'error', 'node/no-unsupported-features/es-builtins': 'error', 'node/no-unsupported-features/node-builtins': 'error', 'node/shebang': 'error', // Prefer exitCode instead of exit as it doesnt abort the script 'no-process-exit': 'error', 'node/process-exit-as-throw': 'error', // Prefer globals when available 'node/prefer-global/buffer': 'error', 'node/prefer-global/console': 'error', 'node/prefer-global/process': 'error', 'node/prefer-global/text-decoder': 'error', 'node/prefer-global/text-encoder': 'error', 'node/prefer-global/url': 'error', 'node/prefer-global/url-search-params': 'error', // Prefer promises APIs when they are available 'node/prefer-promises/dns': nodeVersion >= 15 ? 'error' : 'off', 'node/prefer-promises/fs': nodeVersion >= 14 ? 'error' : 'off', // We use TypeScript/ES modules instead 'node/exports-style': 'off', 'node/no-exports-assign': 'off', 'node/no-unsupported-features/es-syntax': 'off', // Handled by the import plugin 'node/file-extension-in-import': 'off', 'node/no-extraneous-import': 'off', 'node/no-extraneous-require': 'off', 'node/no-missing-import': 'off', 'node/no-missing-require': 'off', // This is a common occurrence in node scripts 'global-require': 'off', 'import/no-dynamic-require': 'off', }, } module.exports = config