3.13.2 • Published 11 months ago

eslint-plugin-project-structure v3.13.2

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

npm npm downloads Check, test, build Sponsor GitHub Repo stars

📋 General information

🎮 Playground for eslint-plugin-project-structure rules.

Check the latest releases and stay updated with new features and changes.

Become part of the community! Leave a ⭐ and share the link with your friends.

  • If you have any questions or need help creating a configuration that meets your requirements, help.
  • If you have found a bug or an error in the documentation, report issues.
  • If you have an idea for a new feature or an improvement to an existing one, ideas.
  • If you're interested in discussing project structures across different frameworks or want to vote on a proposed idea, discussions.

📚 Documentation

  • Validation of folder structure. Any files/folders outside the structure will be considered an error.
  • File/Folder name regex validation with features like wildcard * and treating . as a character, along with other conveniences.
  • Build in case validation.
  • Inheriting the folder's name. The file/folder inherits the name of the folder in which it is located. Option of adding your own prefixes/suffixes or changing the case.
  • Enforcing the existence of a files/folders when a specific file/folder exists. For example, if ./src/Component.tsx exists, then ./src/Component.test.tsx and ./src/stories/Component.stories.tsx must also exist.
  • Reusable rules for folder structures.
  • An option to create a separate configuration file with TypeScript support.
  • Forcing a nested/flat structure for a given folder.
  • Support for all file extensions.
  • Folder recursion. You can repeatedly nest a folder structure and set a limit on the nesting depth. There is also an option to change the rule at the final level, such as flattening the folder structure.
  • Fewer repetitions and precise error messages, even for deeply nested folders (recursion), by representing the folder structure as a tree.
  • Checking the length of paths and notifying when the limit is exceeded.
  • Creating modules in which you control what can be imported (e.g. types, functions, components of one functionality cannot be imported into another functionality).
  • The ability to create very detailed rules, even for nested folder structures. Whether it's a large module, a sub-module, or a single file, there are no limitations.
  • Support for all types of imports, including require(), import(), jest.mock(), and jest.requireActual(), as well as ExportAllDeclaration and ExportNamedDeclaration.
  • Disabling external imports (node_modules) for a given module (Option to add exceptions).
  • Non-relative/relative imports support.
  • Built-in import resolver, so you don’t need to install any additional plugins. It also includes built-in configuration for the most popular file extensions, so you don’t have to configure anything manually.
  • Reusable import patterns.
  • Support for path aliases. The plugin will automatically detect your tsconfig.json and use your settings. There is also an option to enter them manually.
  • An option to create a separate configuration file with TypeScript support.
  • File composition validation.
  • Supported selectors: class, function, arrowFunction, type, interface, enum, variable, variableExpression, propertyDefinition.
  • Inheriting the filename as the selector name. Option to add your own prefixes/suffixes, change the case, or remove parts of the filename.
  • Prohibit the use of given selectors in a given file. For example, **/*.consts.ts files can only contain variables, **/*.types.ts files can only contain interfaces and types.
  • Define the order in which your selectors should appear in a given file. Support for --fix to automatically correct the order.
  • Rules for exported selectors, selectors in the root of the file and nested/all selectors in the file. They can be used together in combination.
  • Enforcing a maximum of one main component/function/class per file.
  • The ability to set a specific limit on the occurrence of certain selectors in the root of a given file.
  • Selector name regex validation.
  • Build in case validation.
  • Different rules for different files.
  • An option to create a separate configuration file with TypeScript support.
3.13.2

11 months ago

3.13.1

12 months ago

3.10.10

1 year ago

3.10.11

1 year ago

3.12.0

1 year ago

3.10.7

1 year ago

3.10.9

1 year ago

3.10.8

1 year ago

3.13.0

1 year ago

3.11.0

1 year ago

3.10.5

1 year ago

3.10.6

1 year ago

3.10.4

1 year ago

3.10.3

1 year ago

3.10.2

1 year ago

3.10.1

1 year ago

3.10.0

1 year ago

3.9.2

1 year ago

3.9.1

1 year ago

3.9.0

1 year ago

3.8.0

1 year ago

3.8.1

1 year ago

3.7.2

1 year ago

2.4.1

1 year ago

2.4.0

1 year ago

2.4.3

1 year ago

2.4.2

1 year ago

2.4.5

1 year ago

2.4.4

1 year ago

3.2.1

1 year ago

3.2.0

1 year ago

3.6.0

1 year ago

2.3.0

1 year ago

2.3.2

1 year ago

2.3.1

1 year ago

2.7.0

1 year ago

2.3.3

1 year ago

2.7.2

1 year ago

2.7.1

1 year ago

3.1.0

1 year ago

3.5.3

1 year ago

3.5.2

1 year ago

3.5.1

1 year ago

3.5.0

1 year ago

2.4.6

1 year ago

2.2.1

1 year ago

2.2.3

1 year ago

2.2.2

1 year ago

2.6.1

1 year ago

2.2.5

1 year ago

2.6.0

1 year ago

2.2.4

1 year ago

2.6.3

1 year ago

2.2.11

1 year ago

2.2.7

1 year ago

2.6.2

1 year ago

2.2.12

1 year ago

2.2.6

1 year ago

2.2.10

1 year ago

3.4.0

1 year ago

3.0.1

1 year ago

2.7.4

1 year ago

2.7.3

1 year ago

3.0.0

1 year ago

2.5.0

1 year ago

2.5.1

1 year ago

3.3.0

1 year ago

3.7.1

1 year ago

3.7.0

1 year ago

2.2.9

1 year ago

2.2.8

1 year ago

2.2.0

1 year ago

2.1.18

1 year ago

2.1.19

1 year ago

2.1.9

1 year ago

2.1.16

1 year ago

2.1.17

1 year ago

2.1.14

1 year ago

2.1.15

1 year ago

2.1.12

1 year ago

2.1.13

1 year ago

2.1.10

1 year ago

2.1.11

1 year ago

2.1.6

1 year ago

2.1.8

1 year ago

2.1.7

1 year ago

2.1.5

1 year ago

2.1.2

1 year ago

2.1.1

1 year ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.0

1 year ago

2.0.17

1 year ago

2.0.9

1 year ago

2.0.8

1 year ago

2.0.15

1 year ago

2.0.16

1 year ago

2.0.13

1 year ago

2.0.14

1 year ago

2.0.11

1 year ago

2.0.12

1 year ago

2.0.10

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.5

1 year ago

2.0.4

1 year ago

2.0.7

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.4.6

2 years ago

1.3.7

2 years ago

1.4.5

2 years ago

1.3.6

2 years ago

1.4.4

2 years ago

1.3.5

2 years ago

1.4.3

2 years ago

1.3.4

2 years ago

1.4.2

2 years ago

1.3.3

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.3.9

2 years ago

1.4.7

2 years ago

1.3.8

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.1

2 years ago