Skip to content

Conversation

conarti
Copy link
Owner

@conarti conarti commented Dec 7, 2024

Hi! If you’d like to test the new version of the plugin with me, you’re welcome to join. Feel free to report any issues in this PR.

Usage:

  1. Install the new package:
    npm i -D @conarti/eslint-plugin-feature-sliced@next
  2. Set up in eslint.config.js:
import featureSliced from '@conarti/eslint-plugin-feature-sliced';

export default [
  featureSliced(), // By default, uses the "recommended" config from v1. Please refer to the "README" for detailed setup.
];

Planned tasks before publishing the stable version:

  • Add support for eslint v9
  • Add factory function for simpler usage
  • Add @x support
  • Add documentation for the new setup
  • Add documentation for the old setup
  • Add notes about steiger in docs
  • Use better build flow (use any builder)
  • Use better eslint config
  • Set up a better publishing flow, remove unnecessary 'scripts', try to use github releases and github ci for tests, publish and releases
  • Specify correct eslint versions in peerDependencies and check other fields in package.json
  • Ensure that the new version cannot be installed on projects using eslint <=8
  • Fix usage with the tseslint.config(...) factory
  • Test the package in as many projects as possible and fix newly discovered issues

This was linked to issues Dec 7, 2024
@conarti conarti mentioned this pull request Dec 7, 2024
@iksent
Copy link

iksent commented Jul 4, 2025

Hello! How to solve this issue?

ESLint: 9.30.1 - TypeError: featureSliced is not a function

esling.config.js:

const js = require('@eslint/js');
const { FlatCompat } = require('@eslint/eslintrc');
const { defineConfig } = require('eslint/config');
const featureSliced = require('@conarti/eslint-plugin-feature-sliced');

const compat = new FlatCompat({
  recommendedConfig: js.configs.recommended,
  allConfig: js.configs.all,
});

module.exports = defineConfig([
  featureSliced(),
  {
    ignores: ['config/**/*', '**/*.stories.tsx', 'openapi-typescript/**/*'],
  },
  ...

@conarti
Copy link
Owner Author

conarti commented Sep 17, 2025

@iksent Hello. You have to use @next version

conarti and others added 4 commits September 17, 2025 14:21
- Add RULE_NAMES constants to config for better maintainability
- Remove utils.ts and move rule naming to config
- Simplify create-plugin by removing enhanceWithImportOrder
- Remove mergeConfigs dependency
- Add import-order rule to main plugin rules
- Update all import-order configs to use RULE_NAMES constants
- Improve type safety and developer experience

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Create rules/import-order/configs.ts with centralized rule configurations
- Remove duplicate configurations from configs/import-order files
- Update create-plugin to use direct rule configs instead of extracting from configs
- Remove shared.ts as it's no longer needed
- Improve DRY principle and maintainability
- Ensure single source of truth for import-order rule configurations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Update import-order config names to use proper plugin namespace
- Change from @conarti/sort-imports/* to @conarti/feature-sliced/import-order/*
- Maintain consistency with plugin naming convention

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

eslint v9 config support Eslint flat config

2 participants