@plumeria/eslint-plugin 9.1.2 → 10.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,6 +7,7 @@ Below are the available rules and the recommended configuration.
7
7
 
8
8
  The `plugin:@plumeria/recommended` config enables the following:
9
9
 
10
+ - `@plumeria/style-name-requires-import`: **error**
10
11
  - `@plumeria/no-combinator`: **error**
11
12
  - `@plumeria/no-destructure`: **error**
12
13
  - `@plumeria/no-inner-call`: **error**
@@ -23,6 +24,11 @@ export default [plumeria.flatConfigs.recommended];
23
24
 
24
25
  ## Rules
25
26
 
27
+ ### style-name-requires-import
28
+
29
+ Disallow styleName prop in files without a @plumeria/core import.
30
+
31
+
26
32
  ### no-combinator
27
33
 
28
34
  Disallow combinators `>`, `+`, `~` and descendant combinator (space) unless inside functional pseudo-classes.
package/dist/index.js CHANGED
@@ -8,7 +8,9 @@ const no_unused_keys_1 = require("./rules/no-unused-keys");
8
8
  const sort_properties_1 = require("./rules/sort-properties");
9
9
  const format_properties_1 = require("./rules/format-properties");
10
10
  const validate_values_1 = require("./rules/validate-values");
11
+ const style_name_requires_import_1 = require("./rules/style-name-requires-import");
11
12
  const rules = {
13
+ 'style-name-requires-import': style_name_requires_import_1.styleNameRequiresImport,
12
14
  'no-combinator': no_combinator_1.noCombinator,
13
15
  'no-destructure': no_destructure_1.noDestructure,
14
16
  'no-inner-call': no_inner_call_1.noInnerCall,
@@ -21,6 +23,7 @@ const configs = {
21
23
  recommended: {
22
24
  plugins: ['@plumeria'],
23
25
  rules: {
26
+ '@plumeria/style-name-requires-import': 'error',
24
27
  '@plumeria/no-combinator': 'error',
25
28
  '@plumeria/no-destructure': 'error',
26
29
  '@plumeria/no-inner-call': 'error',
@@ -39,6 +42,7 @@ const flatConfigs = {
39
42
  },
40
43
  },
41
44
  rules: {
45
+ '@plumeria/style-name-requires-import': 'error',
42
46
  '@plumeria/no-combinator': 'error',
43
47
  '@plumeria/no-destructure': 'error',
44
48
  '@plumeria/no-inner-call': 'error',
@@ -0,0 +1,2 @@
1
+ import type { Rule } from 'eslint';
2
+ export declare const styleNameRequiresImport: Rule.RuleModule;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.styleNameRequiresImport = void 0;
4
+ exports.styleNameRequiresImport = {
5
+ meta: {
6
+ type: 'problem',
7
+ docs: {
8
+ description: 'Disallow styleName prop in files without a @plumeria/core import',
9
+ },
10
+ messages: {
11
+ styleNameError: 'styleName requires importing "@plumeria/core".',
12
+ },
13
+ schema: [],
14
+ },
15
+ create(context) {
16
+ let hasPlumeriaImport = false;
17
+ const styleNameNodes = [];
18
+ return {
19
+ ImportDeclaration(node) {
20
+ const source = node.source.value;
21
+ if (typeof source === 'string' && source.startsWith('@plumeria/core')) {
22
+ hasPlumeriaImport = true;
23
+ }
24
+ },
25
+ JSXAttribute(node) {
26
+ if (node.name && node.name.name === 'styleName') {
27
+ styleNameNodes.push(node);
28
+ }
29
+ },
30
+ 'Program:exit'() {
31
+ if (!hasPlumeriaImport) {
32
+ for (const node of styleNameNodes) {
33
+ context.report({
34
+ node,
35
+ messageId: 'styleNameError',
36
+ });
37
+ }
38
+ }
39
+ },
40
+ };
41
+ },
42
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/eslint-plugin",
3
- "version": "9.1.2",
3
+ "version": "10.0.1",
4
4
  "description": "Plumeria ESLint plugin",
5
5
  "author": "Refirst 11",
6
6
  "license": "MIT",