@plumeria/eslint-plugin 9.1.2 → 10.0.0

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/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 import',
9
+ },
10
+ messages: {
11
+ styleNameError: 'styleName requires importing from "@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')) {
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.0",
4
4
  "description": "Plumeria ESLint plugin",
5
5
  "author": "Refirst 11",
6
6
  "license": "MIT",