@saasmakers/eslint 1.0.10 → 1.0.11

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.cjs CHANGED
@@ -139,6 +139,21 @@ const rule$b = {
139
139
  function collapseBlankLine(text) {
140
140
  return text.replace(/\n[^\S\n]*\n[^\S\n]*/, "\n");
141
141
  }
142
+ function expressionUsesThis(expression) {
143
+ if (expression.type === index$1.distExports.AST_NODE_TYPES.AssignmentExpression) {
144
+ return isThisReceiver(expression.left);
145
+ }
146
+ if (expression.type === index$1.distExports.AST_NODE_TYPES.CallExpression) {
147
+ return isThisReceiver(expression.callee);
148
+ }
149
+ if (expression.type === index$1.distExports.AST_NODE_TYPES.OptionalCallExpression) {
150
+ return isThisReceiver(expression.callee);
151
+ }
152
+ if (expression.type === index$1.distExports.AST_NODE_TYPES.UpdateExpression) {
153
+ return isThisReceiver(expression.argument);
154
+ }
155
+ return false;
156
+ }
142
157
  function getActualLastToken(node, sourceCode) {
143
158
  const semiToken = sourceCode.getLastToken(node);
144
159
  if (!semiToken) {
@@ -188,6 +203,9 @@ function getStatementKind(node) {
188
203
  if (isDirectivePrologue(node)) {
189
204
  return null;
190
205
  }
206
+ if (expressionUsesThis(node.expression)) {
207
+ return isSingleLine(node) ? "singleline-this" : "multiline-this";
208
+ }
191
209
  return isSingleLine(node) ? "singleline-expression" : "multiline-expression";
192
210
  }
193
211
  return null;
@@ -227,6 +245,18 @@ function isSingleLine(node) {
227
245
  function isSuperCall(node) {
228
246
  return node.expression.type === index$1.distExports.AST_NODE_TYPES.CallExpression && node.expression.callee.type === index$1.distExports.AST_NODE_TYPES.Super;
229
247
  }
248
+ function isThisReceiver(node) {
249
+ if (node.type === index$1.distExports.AST_NODE_TYPES.ThisExpression) {
250
+ return true;
251
+ }
252
+ if (node.type === index$1.distExports.AST_NODE_TYPES.MemberExpression || node.type === index$1.distExports.AST_NODE_TYPES.OptionalMemberExpression) {
253
+ return isThisReceiver(node.object);
254
+ }
255
+ if (node.type === index$1.distExports.AST_NODE_TYPES.ChainExpression) {
256
+ return isThisReceiver(node.expression);
257
+ }
258
+ return false;
259
+ }
230
260
  const rule$a = {
231
261
  defaultOptions: [],
232
262
  meta: {
package/dist/index.mjs CHANGED
@@ -137,6 +137,21 @@ const rule$b = {
137
137
  function collapseBlankLine(text) {
138
138
  return text.replace(/\n[^\S\n]*\n[^\S\n]*/, "\n");
139
139
  }
140
+ function expressionUsesThis(expression) {
141
+ if (expression.type === distExports.AST_NODE_TYPES.AssignmentExpression) {
142
+ return isThisReceiver(expression.left);
143
+ }
144
+ if (expression.type === distExports.AST_NODE_TYPES.CallExpression) {
145
+ return isThisReceiver(expression.callee);
146
+ }
147
+ if (expression.type === distExports.AST_NODE_TYPES.OptionalCallExpression) {
148
+ return isThisReceiver(expression.callee);
149
+ }
150
+ if (expression.type === distExports.AST_NODE_TYPES.UpdateExpression) {
151
+ return isThisReceiver(expression.argument);
152
+ }
153
+ return false;
154
+ }
140
155
  function getActualLastToken(node, sourceCode) {
141
156
  const semiToken = sourceCode.getLastToken(node);
142
157
  if (!semiToken) {
@@ -186,6 +201,9 @@ function getStatementKind(node) {
186
201
  if (isDirectivePrologue(node)) {
187
202
  return null;
188
203
  }
204
+ if (expressionUsesThis(node.expression)) {
205
+ return isSingleLine(node) ? "singleline-this" : "multiline-this";
206
+ }
189
207
  return isSingleLine(node) ? "singleline-expression" : "multiline-expression";
190
208
  }
191
209
  return null;
@@ -225,6 +243,18 @@ function isSingleLine(node) {
225
243
  function isSuperCall(node) {
226
244
  return node.expression.type === distExports.AST_NODE_TYPES.CallExpression && node.expression.callee.type === distExports.AST_NODE_TYPES.Super;
227
245
  }
246
+ function isThisReceiver(node) {
247
+ if (node.type === distExports.AST_NODE_TYPES.ThisExpression) {
248
+ return true;
249
+ }
250
+ if (node.type === distExports.AST_NODE_TYPES.MemberExpression || node.type === distExports.AST_NODE_TYPES.OptionalMemberExpression) {
251
+ return isThisReceiver(node.object);
252
+ }
253
+ if (node.type === distExports.AST_NODE_TYPES.ChainExpression) {
254
+ return isThisReceiver(node.expression);
255
+ }
256
+ return false;
257
+ }
228
258
  const rule$a = {
229
259
  defaultOptions: [],
230
260
  meta: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saasmakers/eslint",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
4
4
  "private": false,
5
5
  "description": "Shared ESLint config and rules for SaaS Makers projects",
6
6
  "license": "MIT",