@daldalso/eslint-plugin 1.2.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.
@@ -0,0 +1,411 @@
1
+ "use strict";
2
+ var __generator = (this && this.__generator) || function (thisArg, body) {
3
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
4
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
5
+ function verb(n) { return function (v) { return step([n, v]); }; }
6
+ function step(op) {
7
+ if (f) throw new TypeError("Generator is already executing.");
8
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
9
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
10
+ if (y = 0, t) op = [op[0] & 2, t.value];
11
+ switch (op[0]) {
12
+ case 0: case 1: t = op; break;
13
+ case 4: _.label++; return { value: op[1], done: false };
14
+ case 5: _.label++; y = op[1]; op = [0]; continue;
15
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
16
+ default:
17
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
18
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
19
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
20
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
21
+ if (t[2]) _.ops.pop();
22
+ _.trys.pop(); continue;
23
+ }
24
+ op = body.call(thisArg, _);
25
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
26
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
27
+ }
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ var utils_1 = require("@typescript-eslint/utils");
31
+ var code_1 = require("../utils/code");
32
+ var text_1 = require("../utils/text");
33
+ var staticBlock = Symbol("static block");
34
+ var indexSignature = Symbol("index signature");
35
+ exports.default = utils_1.ESLintUtils.RuleCreator.withoutDocs({
36
+ meta: {
37
+ fixable: "whitespace",
38
+ hasSuggestions: true,
39
+ type: "layout",
40
+ messages: {
41
+ 'empty-line': "One empty line should appear between `{{base}}` and `{{target}}`.",
42
+ 'interorder': "`{{target}}` node should appear prior to any `{{base}}` node.",
43
+ 'intraorder': "`{{target}}` should appear prior to `{{base}}`.",
44
+ 'no-literal-member': "Name of a class member cannot be a string literal.",
45
+ 'default/suggest/0': "Sort {{length}} keys",
46
+ 'default/suggest/1': "Sort {{length}} keys (⚠️ Be aware of spreads and comments!)"
47
+ },
48
+ schema: [{
49
+ type: "object",
50
+ properties: {
51
+ minPropertyCount: { type: "integer" }
52
+ }
53
+ }]
54
+ },
55
+ defaultOptions: [{
56
+ minPropertyCount: 10
57
+ }],
58
+ create: function (context, _a) {
59
+ var minPropertyCount = _a[0].minPropertyCount;
60
+ var sourceCode = context.getSourceCode();
61
+ var checkElements = function (list, checkEmptyLine) {
62
+ if (list.length < minPropertyCount) {
63
+ return;
64
+ }
65
+ var orderTable = getDefinitionOrderTable(list);
66
+ var prevLine;
67
+ var prevScore;
68
+ var prevKey;
69
+ var _loop_1 = function (v) {
70
+ if (!v.parent)
71
+ return "continue";
72
+ var key = getDefinitionIdentifier(v);
73
+ if (!key)
74
+ return "continue";
75
+ var score = orderTable[key];
76
+ if (prevScore !== undefined) {
77
+ if (prevScore < score) {
78
+ context.report({
79
+ node: v,
80
+ messageId: "interorder",
81
+ data: { target: getScoreString(score), base: getScoreString(prevScore) },
82
+ suggest: suggest(list.length, v.parent)
83
+ });
84
+ }
85
+ else if (checkEmptyLine && Math.floor(0.01 * prevScore) - Math.floor(0.01 * score) > 0) {
86
+ if (!(0, code_1.hasEmptyLineBefore)(sourceCode, v)) {
87
+ context.report({
88
+ node: v,
89
+ messageId: "empty-line",
90
+ data: { target: getScoreString(score), base: getScoreString(prevScore) },
91
+ fix: function (fixer) {
92
+ return __generator(this, function (_a) {
93
+ switch (_a.label) {
94
+ case 0: return [4 /*yield*/, fixer.insertTextBefore(v, "\n")];
95
+ case 1:
96
+ _a.sent();
97
+ return [2 /*return*/];
98
+ }
99
+ });
100
+ }
101
+ });
102
+ }
103
+ }
104
+ }
105
+ if (typeof key !== "symbol") {
106
+ var comments = sourceCode.getCommentsBefore(v);
107
+ var isGroupHead = prevLine === undefined || prevLine + comments.length + 1 < v.loc.start.line;
108
+ if (prevKey && !isGroupHead && prevScore === score && compareString(prevKey, key) > 0) {
109
+ context.report({
110
+ node: v,
111
+ messageId: "intraorder",
112
+ data: { target: key, base: prevKey },
113
+ suggest: suggest(list.length, v.parent)
114
+ });
115
+ }
116
+ prevKey = key;
117
+ }
118
+ prevLine = v.loc.end.line;
119
+ prevScore = score;
120
+ };
121
+ for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
122
+ var v = list_1[_i];
123
+ _loop_1(v);
124
+ }
125
+ function suggest(length, parent) {
126
+ var hasNontarget = list.some(function (v) { return !getDefinitionIdentifier(v); })
127
+ || sourceCode.getCommentsInside(parent).length > 0;
128
+ return [{
129
+ messageId: hasNontarget ? "default/suggest/1" : "default/suggest/0",
130
+ data: { length: length },
131
+ fix: function (fixer) {
132
+ return __generator(this, function (_a) {
133
+ switch (_a.label) {
134
+ case 0: return [4 /*yield*/, fixer.replaceText(parent, sortKeys(parent))];
135
+ case 1:
136
+ _a.sent();
137
+ return [2 /*return*/];
138
+ }
139
+ });
140
+ }
141
+ }];
142
+ }
143
+ };
144
+ var sortKeys = function (node) {
145
+ var R = [];
146
+ var groups = [];
147
+ var indentation = (0, code_1.getIndentation)(sourceCode, node.loc.start.line) + text_1.INDENTATION_UNIT;
148
+ var group = [];
149
+ var lastNode;
150
+ var prevLine;
151
+ switch (node.type) {
152
+ case utils_1.AST_NODE_TYPES.ObjectExpression:
153
+ for (var _i = 0, _a = node.properties; _i < _a.length; _i++) {
154
+ var v = _a[_i];
155
+ runner(v, ",");
156
+ }
157
+ break;
158
+ case utils_1.AST_NODE_TYPES.TSTypeLiteral:
159
+ for (var _b = 0, _c = node.members; _b < _c.length; _b++) {
160
+ var v = _c[_b];
161
+ runner(v, "");
162
+ }
163
+ break;
164
+ case utils_1.AST_NODE_TYPES.ClassBody:
165
+ case utils_1.AST_NODE_TYPES.TSInterfaceBody:
166
+ for (var _d = 0, _e = node.body; _d < _e.length; _d++) {
167
+ var v = _e[_d];
168
+ runner(v, "");
169
+ }
170
+ break;
171
+ }
172
+ if (group.length)
173
+ flush();
174
+ if (lastNode) {
175
+ var comments = sourceCode.getCommentsAfter(lastNode);
176
+ if (comments.length)
177
+ groups.push([0, comments.map(function (v) { return sourceCode.getText(v); })]);
178
+ }
179
+ groups.sort(function (_a, _b) {
180
+ var a = _a[0];
181
+ var b = _b[0];
182
+ return b - a;
183
+ });
184
+ R.push("{", groups.map(function (_a) {
185
+ var v = _a[1];
186
+ return v.map(function (w) { return indentation + w; }).join('\n');
187
+ }).join('\n\n'), "}");
188
+ return R.join('\n');
189
+ function runner(target, nextToken) {
190
+ var _a, _b;
191
+ var comments = sourceCode.getCommentsBefore(target);
192
+ lastNode = target;
193
+ if (!getDefinitionIdentifier(target) || !('key' in target)) {
194
+ var payload = sourceCode.getText(target) + nextToken;
195
+ group.push([((_b = (_a = group.at(-1)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : 0) + 0.001, payload, payload, comments]);
196
+ return;
197
+ }
198
+ var continued = prevLine !== undefined && prevLine + comments.length + 1 >= target.loc.start.line;
199
+ if (!continued && group.length) {
200
+ flush();
201
+ }
202
+ group.push([getScore(target), unescape(sourceCode.getText(target.key)), sourceCode.getText(target) + nextToken, comments]);
203
+ prevLine = target.loc.end.line;
204
+ }
205
+ function flush() {
206
+ var sortedGroup = group
207
+ .sort(function (_a, _b) {
208
+ var aScore = _a[0], aKey = _a[1];
209
+ var bScore = _b[0], bKey = _b[1];
210
+ return bScore - aScore || compareString(aKey, bKey);
211
+ });
212
+ groups.push([
213
+ sortedGroup[0][0],
214
+ sortedGroup.map(function (_a) {
215
+ var payload = _a[2], comments = _a[3];
216
+ if (comments === null || comments === void 0 ? void 0 : comments.length) {
217
+ return "".concat(comments.map(function (w) { return sourceCode.getText(w); }).join('\n'), "\n").concat(indentation).concat(payload);
218
+ }
219
+ return payload;
220
+ })
221
+ ]);
222
+ group = [];
223
+ }
224
+ };
225
+ return {
226
+ ClassBody: function (node) {
227
+ checkElements(node.body, true);
228
+ },
229
+ TSTypeLiteral: function (node) {
230
+ checkElements(node.members);
231
+ },
232
+ TSInterfaceDeclaration: function (node) {
233
+ checkElements(node.body.body, true);
234
+ },
235
+ ObjectExpression: function (node) {
236
+ checkElements(node.properties);
237
+ }
238
+ };
239
+ }
240
+ });
241
+ function getDefinitionOrderTable(items) {
242
+ var R = {};
243
+ for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
244
+ var v = items_1[_i];
245
+ var key = getDefinitionIdentifier(v);
246
+ if (!key)
247
+ continue;
248
+ R[key] = getScore(v);
249
+ }
250
+ return R;
251
+ }
252
+ function getDefinitionIdentifier(item) {
253
+ switch (item.type) {
254
+ case utils_1.AST_NODE_TYPES.Property:
255
+ case utils_1.AST_NODE_TYPES.PropertyDefinition:
256
+ case utils_1.AST_NODE_TYPES.MethodDefinition:
257
+ case utils_1.AST_NODE_TYPES.TSPropertySignature:
258
+ case utils_1.AST_NODE_TYPES.TSMethodSignature:
259
+ if (item.key.type === utils_1.AST_NODE_TYPES.Identifier) {
260
+ return item.key.name;
261
+ }
262
+ if (item.key.type === utils_1.AST_NODE_TYPES.Literal) {
263
+ return String(item.key.value);
264
+ }
265
+ return null;
266
+ case utils_1.AST_NODE_TYPES.StaticBlock:
267
+ return staticBlock;
268
+ case utils_1.AST_NODE_TYPES.TSIndexSignature:
269
+ return indexSignature;
270
+ }
271
+ return null;
272
+ }
273
+ // NOTE Node with higher score should appear first
274
+ function getScore(node) {
275
+ var _a, _b;
276
+ var R = 0;
277
+ var accessModifierScore;
278
+ var invertedAccessModifierOrder = false;
279
+ if ('static' in node && node.static)
280
+ R += 1000 /* ScoreValue.STATIC */;
281
+ switch (node.type) {
282
+ case utils_1.AST_NODE_TYPES.MethodDefinition:
283
+ case utils_1.AST_NODE_TYPES.TSMethodSignature:
284
+ switch (node.kind) {
285
+ case "get":
286
+ case "set":
287
+ R += 220 /* ScoreValue.GETTER_SETTER */;
288
+ break;
289
+ case "constructor":
290
+ R += 140 /* ScoreValue.CONSTRUCTOR */;
291
+ break;
292
+ default:
293
+ invertedAccessModifierOrder = node.static ? false : true;
294
+ R += 120 /* ScoreValue.METHOD */;
295
+ }
296
+ break;
297
+ case utils_1.AST_NODE_TYPES.PropertyDefinition:
298
+ if (((_a = node.value) === null || _a === void 0 ? void 0 : _a.type) === utils_1.AST_NODE_TYPES.ArrowFunctionExpression)
299
+ R += 130 /* ScoreValue.ARROW_FUNCTION */;
300
+ else
301
+ R += 230 /* ScoreValue.PROPERTY */;
302
+ break;
303
+ case utils_1.AST_NODE_TYPES.TSPropertySignature:
304
+ if (((_b = node.typeAnnotation) === null || _b === void 0 ? void 0 : _b.typeAnnotation.type) === utils_1.AST_NODE_TYPES.TSFunctionType)
305
+ R += 130 /* ScoreValue.ARROW_FUNCTION */;
306
+ else
307
+ R += 230 /* ScoreValue.PROPERTY */;
308
+ break;
309
+ case utils_1.AST_NODE_TYPES.StaticBlock:
310
+ R += 1000 /* ScoreValue.STATIC */ + 110 /* ScoreValue.STATIC_BLOCK */;
311
+ break;
312
+ case utils_1.AST_NODE_TYPES.TSIndexSignature:
313
+ R += 210 /* ScoreValue.INDEX_SIGNATURE */;
314
+ break;
315
+ }
316
+ if ('accessibility' in node)
317
+ switch (node.accessibility) {
318
+ case "public":
319
+ accessModifierScore = 3 /* ScoreValue.PUBLIC */;
320
+ break;
321
+ case "protected":
322
+ accessModifierScore = 2 /* ScoreValue.PROTECTED */;
323
+ break;
324
+ case "private":
325
+ accessModifierScore = 1 /* ScoreValue.PRIVATE */;
326
+ break;
327
+ default: throw Error("Unhandled accessibility: ".concat(node.accessibility));
328
+ }
329
+ else
330
+ accessModifierScore = 4 /* ScoreValue.IMPLICITLY_PUBLIC */;
331
+ if (invertedAccessModifierOrder) {
332
+ R += 5 - accessModifierScore;
333
+ }
334
+ else {
335
+ R += accessModifierScore;
336
+ }
337
+ if ('readonly' in node && node.readonly) {
338
+ R += 5 /* ScoreValue.READONLY */;
339
+ }
340
+ return R;
341
+ }
342
+ function getScoreString(score) {
343
+ var R = [];
344
+ var rest = score;
345
+ var accessModifierScore = rest % 10;
346
+ rest -= accessModifierScore;
347
+ if (rest >= 1000 /* ScoreValue.STATIC */) {
348
+ rest -= 1000 /* ScoreValue.STATIC */;
349
+ R.push("static");
350
+ }
351
+ switch (rest) {
352
+ case 230 /* ScoreValue.PROPERTY */:
353
+ rest -= 230 /* ScoreValue.PROPERTY */;
354
+ R.push("property");
355
+ break;
356
+ case 220 /* ScoreValue.GETTER_SETTER */:
357
+ rest -= 220 /* ScoreValue.GETTER_SETTER */;
358
+ R.push("getter or setter");
359
+ break;
360
+ case 210 /* ScoreValue.INDEX_SIGNATURE */:
361
+ rest -= 210 /* ScoreValue.INDEX_SIGNATURE */;
362
+ R.push("index signature");
363
+ break;
364
+ case 140 /* ScoreValue.CONSTRUCTOR */:
365
+ rest -= 140 /* ScoreValue.CONSTRUCTOR */;
366
+ R.push("constructor");
367
+ break;
368
+ case 130 /* ScoreValue.ARROW_FUNCTION */:
369
+ rest -= 130 /* ScoreValue.ARROW_FUNCTION */;
370
+ R.push("arrow function");
371
+ break;
372
+ case 120 /* ScoreValue.METHOD */:
373
+ rest -= 120 /* ScoreValue.METHOD */;
374
+ R.push("method");
375
+ break;
376
+ case 110 /* ScoreValue.STATIC_BLOCK */:
377
+ rest -= 110 /* ScoreValue.STATIC_BLOCK */;
378
+ R.push("static block");
379
+ break;
380
+ }
381
+ if (accessModifierScore >= 5 /* ScoreValue.READONLY */) {
382
+ accessModifierScore -= 5 /* ScoreValue.READONLY */;
383
+ R.push("readonly");
384
+ }
385
+ if (R.join(' ').startsWith("static method")) {
386
+ accessModifierScore = 5 - accessModifierScore;
387
+ }
388
+ switch (accessModifierScore) {
389
+ case 4 /* ScoreValue.IMPLICITLY_PUBLIC */: break;
390
+ case 3 /* ScoreValue.PUBLIC */:
391
+ R.push("public");
392
+ break;
393
+ case 2 /* ScoreValue.PROTECTED */:
394
+ R.push("protected");
395
+ break;
396
+ case 1 /* ScoreValue.PRIVATE */:
397
+ R.push("private");
398
+ break;
399
+ }
400
+ if (rest) {
401
+ throw Error("Unhandled rest: ".concat(rest));
402
+ }
403
+ R[0] = R[0][0].toUpperCase() + R[0].slice(1);
404
+ return R.join(' ');
405
+ }
406
+ function compareString(a, b) {
407
+ return a.localeCompare(b, undefined, { numeric: true });
408
+ }
409
+ function unescape(text) {
410
+ return text.replace(/^'"|'"$/g, "");
411
+ }
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ var __generator = (this && this.__generator) || function (thisArg, body) {
3
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
4
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
5
+ function verb(n) { return function (v) { return step([n, v]); }; }
6
+ function step(op) {
7
+ if (f) throw new TypeError("Generator is already executing.");
8
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
9
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
10
+ if (y = 0, t) op = [op[0] & 2, t.value];
11
+ switch (op[0]) {
12
+ case 0: case 1: t = op; break;
13
+ case 4: _.label++; return { value: op[1], done: false };
14
+ case 5: _.label++; y = op[1]; op = [0]; continue;
15
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
16
+ default:
17
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
18
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
19
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
20
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
21
+ if (t[2]) _.ops.pop();
22
+ _.trys.pop(); continue;
23
+ }
24
+ op = body.call(thisArg, _);
25
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
26
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
27
+ }
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ var utils_1 = require("@typescript-eslint/utils");
31
+ var code_1 = require("../utils/code");
32
+ var text_1 = require("../utils/text");
33
+ exports.default = utils_1.ESLintUtils.RuleCreator.withoutDocs({
34
+ meta: {
35
+ type: "layout",
36
+ fixable: "whitespace",
37
+ messages: {
38
+ 'default': "Ternary operator should be the first token of its line.",
39
+ 'indent': "Ternary operator should be indented.",
40
+ 'no-indent': "Else-if-like ternary operator should not be indented."
41
+ },
42
+ schema: []
43
+ },
44
+ defaultOptions: [],
45
+ create: function (context) {
46
+ var sourceCode = context.getSourceCode();
47
+ return {
48
+ ConditionalExpression: function (node) {
49
+ var _a;
50
+ if (node.loc.start.line === node.loc.end.line) {
51
+ return;
52
+ }
53
+ var indentation = (0, code_1.getIndentation)(sourceCode, node.loc.start.line);
54
+ var _b = sourceCode.getTokensBefore(node.consequent, { count: 2 }), prevQuestionMark = _b[0], questionMark = _b[1];
55
+ var _c = sourceCode.getTokensBefore(node.alternate, { count: 2 }), prevColon = _c[0], colon = _c[1];
56
+ var aIndentation = (0, code_1.getIndentation)(sourceCode, questionMark.loc.start.line);
57
+ if (prevQuestionMark.loc.end.line === questionMark.loc.start.line) {
58
+ context.report({
59
+ node: questionMark,
60
+ messageId: "default",
61
+ fix: function (fixer) {
62
+ return __generator(this, function (_a) {
63
+ switch (_a.label) {
64
+ case 0: return [4 /*yield*/, fixer.insertTextBefore(questionMark, "\n" + indentation + text_1.INDENTATION_UNIT)];
65
+ case 1:
66
+ _a.sent();
67
+ return [2 /*return*/];
68
+ }
69
+ });
70
+ }
71
+ });
72
+ }
73
+ else {
74
+ var elseIfLike = ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === utils_1.AST_NODE_TYPES.ConditionalExpression && node.parent.alternate === node;
75
+ if (elseIfLike && aIndentation.length !== indentation.length) {
76
+ context.report({
77
+ node: questionMark,
78
+ messageId: "no-indent",
79
+ fix: function (fixer) {
80
+ return __generator(this, function (_a) {
81
+ switch (_a.label) {
82
+ case 0: return [4 /*yield*/, fixer.replaceTextRange([
83
+ sourceCode.lineStartIndices[questionMark.loc.start.line - 1],
84
+ questionMark.range[0]
85
+ ], indentation)];
86
+ case 1:
87
+ _a.sent();
88
+ return [2 /*return*/];
89
+ }
90
+ });
91
+ }
92
+ });
93
+ }
94
+ if (!elseIfLike && aIndentation.length <= indentation.length) {
95
+ context.report({
96
+ node: questionMark,
97
+ messageId: "indent",
98
+ fix: function (fixer) {
99
+ return __generator(this, function (_a) {
100
+ switch (_a.label) {
101
+ case 0: return [4 /*yield*/, fixer.replaceTextRange([
102
+ sourceCode.lineStartIndices[questionMark.loc.start.line - 1],
103
+ questionMark.range[0]
104
+ ], aIndentation + text_1.INDENTATION_UNIT)];
105
+ case 1:
106
+ _a.sent();
107
+ return [2 /*return*/];
108
+ }
109
+ });
110
+ }
111
+ });
112
+ }
113
+ }
114
+ if (prevColon.loc.end.line === colon.loc.start.line) {
115
+ context.report({
116
+ node: colon,
117
+ messageId: "default",
118
+ fix: function (fixer) {
119
+ return __generator(this, function (_a) {
120
+ switch (_a.label) {
121
+ case 0: return [4 /*yield*/, fixer.insertTextBefore(colon, "\n" + indentation + text_1.INDENTATION_UNIT)];
122
+ case 1:
123
+ _a.sent();
124
+ return [2 /*return*/];
125
+ }
126
+ });
127
+ }
128
+ });
129
+ }
130
+ else {
131
+ var bIndentation = (0, code_1.getIndentation)(sourceCode, colon.loc.start.line);
132
+ if (aIndentation.length !== bIndentation.length) {
133
+ context.report({
134
+ node: colon,
135
+ messageId: "indent",
136
+ fix: function (fixer) {
137
+ return __generator(this, function (_a) {
138
+ switch (_a.label) {
139
+ case 0: return [4 /*yield*/, fixer.replaceTextRange([
140
+ sourceCode.lineStartIndices[colon.loc.start.line - 1],
141
+ colon.range[0]
142
+ ], aIndentation)];
143
+ case 1:
144
+ _a.sent();
145
+ return [2 /*return*/];
146
+ }
147
+ });
148
+ }
149
+ });
150
+ }
151
+ }
152
+ }
153
+ };
154
+ }
155
+ });