@ryans-technology/eslint-config
v0.1.1
Published
Shared ESLint v9 flat-config helpers for Ryan's Technology monorepos.
Readme
@ryans-technology/eslint-config
Shared ESLint v9 flat-config helpers for Ryan's Technology monorepos.
These helpers are dependency-free and expect each project to pass in its locally installed ESLint modules/plugins. This avoids resolution issues with local file dependencies.
Usage
Backend (Azure Functions)
In packages/backend/eslint.config.mjs:
import eslint from '@eslint/js';
import eslintConfigPrettier from 'eslint-config-prettier';
import globals from 'globals';
import tseslint from 'typescript-eslint';
import backendConfig from '@ryans-technology/eslint-config/backend';
export default backendConfig({
eslint,
tseslint,
eslintConfigPrettier,
globals,
tsconfigPath: './tsconfig.json',
tsconfigRootDir: import.meta.dirname,
extraIgnores: ['src/generated/**'],
});Expo / React Native mobile app
In packages/mobile-app/eslint.config.mjs:
import eslint from '@eslint/js';
import globals from 'globals';
import importPlugin from 'eslint-plugin-import';
import reactHooksPlugin from 'eslint-plugin-react-hooks';
import reactNativePlugin from 'eslint-plugin-react-native';
import reactPlugin from 'eslint-plugin-react';
import tseslint from 'typescript-eslint';
import expoConfig from '@ryans-technology/eslint-config/expo';
export default expoConfig({
eslint,
tseslint,
globals,
reactPlugin,
reactHooksPlugin,
reactNativePlugin,
importPlugin,
tsconfigPath: './tsconfig.json',
tsconfigRootDir: import.meta.dirname,
});Notes
- Configs assume ESLint 9 and flat-config mode.
- Projects should clear any
ESLINT_USE_FLAT_CONFIG=falseshell export when running lint. backendConfigscopes typed TypeScript rules to*.ts/tsxfiles.
