@salty-css/eslint-plugin-core 0.0.1-alpha.186 → 0.0.1-alpha.187

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.
Files changed (3) hide show
  1. package/index.cjs +1 -1
  2. package/index.js +62 -55
  3. package/package.json +2 -2
package/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";require("esbuild");require("child_process");require("path");require("fs");require("fs/promises");const l=require("winston");l.createLogger({level:"debug",format:l.format.combine(l.format.colorize(),l.format.cli()),transports:[new l.transports.Console({})]});const h=["salty","css","styles","styled"],I=(r=[])=>new RegExp(`\\.(${[...h,...r].join("|")})\\.`),x=(r,c=[])=>I(c).test(r),P={meta:{type:"problem",fixable:"code",docs:{description:"Ensure `variants` are not nested inside `base` in styled calls",category:"Errors",recommended:!0},messages:{nestedVariants:"`variants` should not be nested inside `base`."}},create(r){return x(r.filename)?{CallExpression:u=>{try{const{callee:i,arguments:t}=u;if(!(i.type==="Identifier"&&i.name==="styled"))return;const e=t[1];if(!e||!(e.type==="ObjectExpression"))return;const o=e.properties.find(s=>s.type==="Property"&&s.key.type==="Identifier"&&s.key.name==="base");if(!o)return;const{value:f}=o;if(!(f.type==="ObjectExpression"))return;const a=f.properties.find(s=>s.type==="Property"&&s.key.type==="Identifier"&&s.key.name==="variants");if(!a)return;r.report({node:a,messageId:"nestedVariants",fix:s=>{if(!a.range)return null;const{sourceCode:y}=r,b=y.getText(a),E=e.properties.indexOf(o),d=e.properties[E];if(!d.range)return null;const v=[d.range[1],d.range[1]],m=[a.range[0]-1,a.range[1]];if(f.properties.at(-1)===a){const g=y.text.slice(a.range[1]).match(/^\s*,/);g&&(m[1]+=g[0].length)}return[s.removeRange(m),s.insertTextAfterRange(v,`, ${b}`)]}})}catch(i){console.log("ESlint error",i);return}}}:{}}},S={meta:{type:"problem",fixable:"code",docs:{description:"Salty CSS related function calls or other values must be exported",category:"Errors",recommended:!0},messages:{mustBeExported:"Salty CSS related function calls or other values must be exported"}},create(r){if(!x(r.filename))return{};function u(t){if(t.type==="VariableDeclaration"){const n=t.declarations[0];if(n.type!=="VariableDeclarator")return;const e=n.init;if((e==null?void 0:e.type)!=="CallExpression")return;const p=["styled","keyframes"];if(e.callee.type==="Identifier"&&p.includes(e.callee.name))return!0;const o=/^define[A-Z]/;if(e.callee.type==="Identifier"&&o.test(e.callee.name))return!0}return!1}function i(t){const n=t.parent;return n.type==="ExportNamedDeclaration"||n.type==="ExportDefaultDeclaration"}return{VariableDeclaration:t=>{u(t)&&(i(t)||r.report({node:t,messageId:"mustBeExported",fix:n=>n.insertTextBefore(t,"export ")}))}}}},F={rules:{"no-variants-in-base":P,"must-be-exported":S}};module.exports=F;
1
+ "use strict";require("esbuild");require("child_process");require("path");require("fs");require("fs/promises");const o=require("winston");o.createLogger({level:"debug",format:o.format.combine(o.format.colorize(),o.format.cli()),transports:[new o.transports.Console({})]});const F=["salty","css","styles","styled"],S=(r=[])=>new RegExp(`\\.(${[...F,...r].join("|")})\\.`),x=(r,c=[])=>S(c).test(r),E={meta:{type:"problem",fixable:"code",docs:{description:"Ensure `variants` are not nested inside `base` in styled calls",category:"Errors",recommended:!0},messages:{nestedVariants:"`variants` should not be nested inside `base`."}},create(r){return x(r.filename)?{CallExpression:l=>{try{const{callee:a,arguments:u}=l;if(!(a.type==="Identifier"&&a.name==="styled"))return;const t=u[1];if(!t||!(t.type==="ObjectExpression"))return;const i=t.properties.find(n=>n.type==="Property"&&n.key.type==="Identifier"&&n.key.name==="base");if(!i)return;const{value:y}=i;if(!(y.type==="ObjectExpression"))return;const s=y.properties.find(n=>n.type==="Property"&&n.key.type==="Identifier"&&n.key.name==="variants");if(!s)return;r.report({node:s,messageId:"nestedVariants",fix:n=>{if(!s.range)return null;const{sourceCode:m}=r,b=m.getText(s),I=t.properties.indexOf(i),p=t.properties[I];if(!p.range)return null;const v=[p.range[1],p.range[1]],d=[s.range[0]-1,s.range[1]];if(y.properties.at(-1)===s){const g=m.text.slice(s.range[1]).match(/^\s*,/);g&&(d[1]+=g[0].length)}return[n.removeRange(d),n.insertTextAfterRange(v,`, ${b}`)]}})}catch(a){console.log("ESlint error",a);return}}}:{}}},P={meta:{type:"problem",fixable:"code",docs:{description:"Salty CSS related function calls or other values must be exported",category:"Errors",recommended:!0},messages:{mustBeExported:"ipsum"}},create(r){if(!x(r.filename))return{};function l(e){if(!e)return!1;if((e==null?void 0:e.type)!=="CallExpression")return;const t=["styled","keyframes","className"];if(e.callee.type==="Identifier"&&t.includes(e.callee.name))return!0;const f=/^define[A-Z]/;return!!(e.callee.type==="Identifier"&&f.test(e.callee.name))}function a(e){if(e.type==="VariableDeclaration"){const t=e.declarations[0];return t.type!=="VariableDeclarator"?void 0:l(t.init)}return!1}function u(e){const t=e.parent;return t.type==="ExportNamedDeclaration"||t.type==="ExportDefaultDeclaration"}return{VariableDeclaration:e=>{a(e)&&(u(e)||r.report({node:e,messageId:"mustBeExported",fix:t=>t.insertTextBefore(e,"export ")}))},ExpressionStatement(e){e.type!=="ExpressionStatement"||!l(e.expression)||!(e.parent.type==="Program")||r.report({node:e,messageId:"mustBeExported",fix:i=>i.insertTextBefore(e,"export default ")})}}}},h={rules:{"no-variants-in-base":E,"must-be-exported":P}};module.exports=h;
package/index.js CHANGED
@@ -3,13 +3,13 @@ import "child_process";
3
3
  import "path";
4
4
  import "fs";
5
5
  import "fs/promises";
6
- import { createLogger as h, format as f, transports as I } from "winston";
7
- h({
6
+ import { createLogger as F, format as m, transports as S } from "winston";
7
+ F({
8
8
  level: "debug",
9
- format: f.combine(f.colorize(), f.cli()),
10
- transports: [new I.Console({})]
9
+ format: m.combine(m.colorize(), m.cli()),
10
+ transports: [new S.Console({})]
11
11
  });
12
- const P = ["salty", "css", "styles", "styled"], S = (r = []) => new RegExp(`\\.(${[...P, ...r].join("|")})\\.`), x = (r, l = []) => S(l).test(r), F = {
12
+ const E = ["salty", "css", "styles", "styled"], P = (r = []) => new RegExp(`\\.(${[...E, ...r].join("|")})\\.`), x = (r, l = []) => P(l).test(r), h = {
13
13
  meta: {
14
14
  type: "problem",
15
15
  fixable: "code",
@@ -24,47 +24,47 @@ const P = ["salty", "css", "styles", "styled"], S = (r = []) => new RegExp(`\\.(
24
24
  },
25
25
  create(r) {
26
26
  return x(r.filename) ? {
27
- CallExpression: (c) => {
27
+ CallExpression: (o) => {
28
28
  try {
29
- const { callee: i, arguments: t } = c;
30
- if (!(i.type === "Identifier" && i.name === "styled")) return;
31
- const e = t[1];
32
- if (!e || !(e.type === "ObjectExpression")) return;
33
- const o = e.properties.find((s) => s.type === "Property" && s.key.type === "Identifier" && s.key.name === "base");
34
- if (!o) return;
35
- const { value: u } = o;
36
- if (!(u.type === "ObjectExpression")) return;
37
- const a = u.properties.find(
38
- (s) => s.type === "Property" && s.key.type === "Identifier" && s.key.name === "variants"
29
+ const { callee: a, arguments: c } = o;
30
+ if (!(a.type === "Identifier" && a.name === "styled")) return;
31
+ const t = c[1];
32
+ if (!t || !(t.type === "ObjectExpression")) return;
33
+ const i = t.properties.find((n) => n.type === "Property" && n.key.type === "Identifier" && n.key.name === "base");
34
+ if (!i) return;
35
+ const { value: f } = i;
36
+ if (!(f.type === "ObjectExpression")) return;
37
+ const s = f.properties.find(
38
+ (n) => n.type === "Property" && n.key.type === "Identifier" && n.key.name === "variants"
39
39
  );
40
- if (!a) return;
40
+ if (!s) return;
41
41
  r.report({
42
- node: a,
42
+ node: s,
43
43
  messageId: "nestedVariants",
44
- fix: (s) => {
45
- if (!a.range) return null;
46
- const { sourceCode: m } = r, b = m.getText(a), E = e.properties.indexOf(o), p = e.properties[E];
44
+ fix: (n) => {
45
+ if (!s.range) return null;
46
+ const { sourceCode: y } = r, b = y.getText(s), I = t.properties.indexOf(i), p = t.properties[I];
47
47
  if (!p.range) return null;
48
- const v = [p.range[1], p.range[1]], y = [
49
- a.range[0] - 1,
48
+ const v = [p.range[1], p.range[1]], d = [
49
+ s.range[0] - 1,
50
50
  // Include the preceding comma (if any)
51
- a.range[1]
51
+ s.range[1]
52
52
  ];
53
- if (u.properties.at(-1) === a) {
54
- const g = m.text.slice(a.range[1]).match(/^\s*,/);
55
- g && (y[1] += g[0].length);
53
+ if (f.properties.at(-1) === s) {
54
+ const g = y.text.slice(s.range[1]).match(/^\s*,/);
55
+ g && (d[1] += g[0].length);
56
56
  }
57
- return [s.removeRange(y), s.insertTextAfterRange(v, `, ${b}`)];
57
+ return [n.removeRange(d), n.insertTextAfterRange(v, `, ${b}`)];
58
58
  }
59
59
  });
60
- } catch (i) {
61
- console.log("ESlint error", i);
60
+ } catch (a) {
61
+ console.log("ESlint error", a);
62
62
  return;
63
63
  }
64
64
  }
65
65
  } : {};
66
66
  }
67
- }, V = {
67
+ }, C = {
68
68
  meta: {
69
69
  type: "problem",
70
70
  fixable: "code",
@@ -74,46 +74,53 @@ const P = ["salty", "css", "styles", "styled"], S = (r = []) => new RegExp(`\\.(
74
74
  recommended: !0
75
75
  },
76
76
  messages: {
77
- mustBeExported: "Salty CSS related function calls or other values must be exported"
77
+ mustBeExported: "ipsum"
78
78
  }
79
79
  },
80
80
  create(r) {
81
81
  if (!x(r.filename)) return {};
82
- function c(t) {
83
- if (t.type === "VariableDeclaration") {
84
- const n = t.declarations[0];
85
- if (n.type !== "VariableDeclarator") return;
86
- const e = n.init;
87
- if ((e == null ? void 0 : e.type) !== "CallExpression") return;
88
- const d = ["styled", "keyframes"];
89
- if (e.callee.type === "Identifier" && d.includes(e.callee.name))
90
- return !0;
91
- const o = /^define[A-Z]/;
92
- if (e.callee.type === "Identifier" && o.test(e.callee.name))
93
- return !0;
82
+ function o(e) {
83
+ if (!e) return !1;
84
+ if ((e == null ? void 0 : e.type) !== "CallExpression") return;
85
+ const t = ["styled", "keyframes", "className"];
86
+ if (e.callee.type === "Identifier" && t.includes(e.callee.name)) return !0;
87
+ const u = /^define[A-Z]/;
88
+ return !!(e.callee.type === "Identifier" && u.test(e.callee.name));
89
+ }
90
+ function a(e) {
91
+ if (e.type === "VariableDeclaration") {
92
+ const t = e.declarations[0];
93
+ return t.type !== "VariableDeclarator" ? void 0 : o(t.init);
94
94
  }
95
95
  return !1;
96
96
  }
97
- function i(t) {
98
- const n = t.parent;
99
- return n.type === "ExportNamedDeclaration" || n.type === "ExportDefaultDeclaration";
97
+ function c(e) {
98
+ const t = e.parent;
99
+ return t.type === "ExportNamedDeclaration" || t.type === "ExportDefaultDeclaration";
100
100
  }
101
101
  return {
102
- VariableDeclaration: (t) => {
103
- c(t) && (i(t) || r.report({
104
- node: t,
102
+ VariableDeclaration: (e) => {
103
+ a(e) && (c(e) || r.report({
104
+ node: e,
105
105
  messageId: "mustBeExported",
106
- fix: (n) => n.insertTextBefore(t, "export ")
106
+ fix: (t) => t.insertTextBefore(e, "export ")
107
107
  }));
108
+ },
109
+ ExpressionStatement(e) {
110
+ e.type !== "ExpressionStatement" || !o(e.expression) || !(e.parent.type === "Program") || r.report({
111
+ node: e,
112
+ messageId: "mustBeExported",
113
+ fix: (i) => i.insertTextBefore(e, "export default ")
114
+ });
108
115
  }
109
116
  };
110
117
  }
111
- }, L = {
118
+ }, j = {
112
119
  rules: {
113
- "no-variants-in-base": F,
114
- "must-be-exported": V
120
+ "no-variants-in-base": h,
121
+ "must-be-exported": C
115
122
  }
116
123
  };
117
124
  export {
118
- L as default
125
+ j as default
119
126
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salty-css/eslint-plugin-core",
3
- "version": "0.0.1-alpha.186",
3
+ "version": "0.0.1-alpha.187",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "typings": "./dist/index.d.ts",
@@ -34,7 +34,7 @@
34
34
  }
35
35
  },
36
36
  "dependencies": {
37
- "@salty-css/core": "^0.0.1-alpha.186",
37
+ "@salty-css/core": "^0.0.1-alpha.187",
38
38
  "eslint": ">=9.x || >=8.x || >=7.x"
39
39
  }
40
40
  }