Skip to content

Commit 39180f9

Browse files
mathiasbynensDevtools-frontend LUCI CQ
authored andcommitted
Convert prefer-private-class-members to TypeScript
Bug: chromium:397586315 Change-Id: I1c935513be3067972430ae3ce429c00768ce2106 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6441160 Commit-Queue: Mathias Bynens <[email protected]> Reviewed-by: Nikolay Vitkov <[email protected]>
1 parent 084694f commit 39180f9

File tree

3 files changed

+41
-52
lines changed

3 files changed

+41
-52
lines changed

scripts/eslint_rules/lib/prefer-private-class-members.js

Lines changed: 0 additions & 49 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Copyright 2021 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import {createRule} from './tsUtils.ts';
6+
7+
export default createRule({
8+
name: 'prefer-private-class-members',
9+
meta: {
10+
type: 'problem',
11+
docs: {
12+
description: 'Prefer private properties over regular properties with `private` modifier',
13+
category: 'Possible Errors',
14+
},
15+
schema: [], // no options
16+
messages: {do_not_use_private: 'Use private properties (starting with `#`) rather than the `private` modifier.'},
17+
},
18+
defaultOptions: [],
19+
create: function(context) {
20+
function isTypeScriptPrivate(node) {
21+
if (node.accessibility === 'private' && node.kind !== 'constructor') {
22+
context.report({
23+
node: node.key,
24+
messageId: 'do_not_use_private',
25+
});
26+
}
27+
}
28+
29+
return {
30+
MethodDefinition(node) {
31+
isTypeScriptPrivate(node);
32+
},
33+
PropertyDefinition(node) {
34+
isTypeScriptPrivate(node);
35+
}
36+
};
37+
}
38+
});

scripts/eslint_rules/tests/prefer-private-class-members.test.js renamed to scripts/eslint_rules/tests/prefer-private-class-members.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
// Copyright 2020 The Chromium Authors. All rights reserved.
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
4-
'use strict';
5-
const rule = require('../lib/prefer-private-class-members.js');
64

7-
const {RuleTester} = require('./utils/utils.js');
5+
import rule from '../lib/prefer-private-class-members.ts';
6+
7+
import {RuleTester} from './utils/tsUtils.ts';
88

99
new RuleTester().run('prefer-private-class-members', rule, {
1010
valid: [

0 commit comments

Comments
 (0)