az-linter-configs
v1.2.5
Published
Shared linter and prettier configs, widely used in projects.
Readme
Linter configs
This package provides a set of ESLint configurations designed to enforce consistent coding styles and best practices across your JavaScript or TypeScript projects.
Installation:
You can install the package via npm or yarn:
npm install --save-dev az-linter-configsor
yarn add --dev az-linter-configsUsage:
This package provides two main ESLint configuration generators: generateServerEslintConfig for Nest.js/server projects and generateWebEslintConfig for React/web projects.
Basic Usage:
For Server/Node.js projects:
import tseslint from 'typescript-eslint';
import { generateServerEslintConfig } from 'az-linter-configs';
export default tseslint.config(generateServerEslintConfig());For Web/React projects:
import tseslint from 'typescript-eslint';
import { generateWebEslintConfig } from 'az-linter-configs';
export default tseslint.config(generateWebEslintConfig());Advanced Usage with Custom Naming Conventions and Monorepo Support:
Both functions accept an optional options object with the following properties:
regex: exclude certain naming patterns from linting rulesmonorepo: disable certain import rules that might conflict in monorepo setups (e.g., turns offimport-x/no-extraneous-dependencies)
import tseslint from 'typescript-eslint';
import {
createExcludeRegex,
generateServerEslintConfig,
} from 'az-linter-configs';
// Define custom naming patterns to exclude
const namingConventionRegexps = ['^LEGACY_', '^OLD_API_'];
const namingConventionWords = ['deprecated', 'legacy'];
const regex = createExcludeRegex({
namingConventionRegexps,
namingConventionWords,
});
export default tseslint.config(
generateServerEslintConfig({
regex,
monorepo: true, // Enable monorepo-friendly import rules
}),
);Server Configuration with Additional Options:
The server configuration accepts the following options:
import tseslint from 'typescript-eslint';
import { generateServerEslintConfig } from 'az-linter-configs';
// Define custom naming patterns to exclude
const namingConventionRegexps = ['^LEGACY_', '^OLD_API_'];
const namingConventionWords = ['deprecated', 'legacy'];
const regex = createExcludeRegex({
namingConventionRegexps,
namingConventionWords,
});
export default tseslint.config(
generateServerEslintConfig({
swagger: true, // Enable Swagger specific rules
monorepo: true, // Enable monorepo-friendly import rules
regex, // Optional naming convention exclusions
}),
);Options explained:
swagger: Enable Swagger-specific rules for API documentationregex: Exclude certain naming patterns from linting rulesmonorepo: Disable certain import rules (likeimport-x/no-extraneous-dependencies) that might conflict in monorepo setups
Commit Convention
Before you create a Pull Request, please check whether your commits comply with the commit conventions used in this repository.
When you create a commit you should follow the convention category(scope or module): message in your commit message while using one of the following categories:
feat / feature: all changes that introduce completely new code or new featuresfix: changes that fix a bug (ideally you will additionally reference an issue if present)refactor: any code related change that is not a fix nor a featuredocs: changing existing or creating new documentation (i.e. README, docs for usage of a lib or cli usage)build: all changes regarding the build of the software, changes to dependencies or the addition of new dependenciestest: all changes regarding tests (adding new tests or changing existing ones)ci: all changes regarding the configuration of continuous integration (i.e. github actions, ci system)revert: for reverting Pull Requests and commitschore: all changes to the repository that do not fit into any of the above categoriese.g.
refactor(server-config): remove deprecated rules
