Skip to content

Added new jsx-ban-elements rule to ban jsx elements#137

Merged
adidahiya merged 2 commits intopalantir:masterfrom
dryganets:sergeyd/banJsxElementsRule
Jan 11, 2018
Merged

Added new jsx-ban-elements rule to ban jsx elements#137
adidahiya merged 2 commits intopalantir:masterfrom
dryganets:sergeyd/banJsxElementsRule

Conversation

@dryganets
Copy link
Contributor

No description provided.

@dryganets
Copy link
Contributor Author

dryganets commented Jan 10, 2018

@adidahiya,
am I missing something here?
The checks seem to be hanging.

@adidahiya
Copy link
Contributor

@dryganets did you enable CircleCI on your fork? https://circleci.com/projects

@dryganets dryganets force-pushed the sergeyd/banJsxElementsRule branch from 7700599 to 631acb6 Compare January 11, 2018 18:35
@dryganets dryganets force-pushed the sergeyd/banJsxElementsRule branch from 631acb6 to fba4066 Compare January 11, 2018 18:40
@dryganets
Copy link
Contributor Author

Thank you.
Didn't realize I need to enable it for my fork.

package.json Outdated
{
"name": "tslint-react",
"version": "3.3.3",
"version": "3.3.4",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please don't bump the version in this commit. that will be done during the release process.

public static metadata: Lint.IRuleMetadata = {
ruleName: "jsx-ban-elements",
description: Lint.Utils.dedent`
Bans specific jsx elements from being used.`,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: "JSX", not "jsx"

}

function parseOption([pattern, message]: [string, string | undefined]): IOption {
return {message, pattern: new RegExp(`^${pattern}$`)};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we surround the configured pattern with ^$? Why not leave that up to the user?

const typeName = node.tagName.getText();
for (const ban of ctx.options) {
if (ban.pattern.test(typeName)) {
ctx.addFailureAtNode(node, Rule.FAILURE_STRING_FACTORY(typeName, ban.message));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we highlight the failure on just the tag name rather than the whole tag expression? that way, if there are other lint errors in the tag expression, they're less likely to overlap, which makes it easier to read in your editor.

@@ -0,0 +1,7 @@
{
"rules": {
"jsx-ban-elements": [true,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use the newer options syntax please.

"jsx-ban-elements": {
    "options": [
        ["span", "Use div instead."]
    ]
}

@dryganets
Copy link
Contributor Author

Fixed all you asked.

@adidahiya
Copy link
Contributor

thanks!

@adidahiya adidahiya merged commit 9cb1347 into palantir:master Jan 11, 2018
@adidahiya adidahiya mentioned this pull request Jan 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants