Skip to content

Commit ec48824

Browse files
committed
Initial commit
0 parents  commit ec48824

26 files changed

+11458
-0
lines changed

.babelrc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"presets": [
3+
"solid",
4+
"@babel/preset-typescript",
5+
[
6+
"@babel/preset-env",
7+
{
8+
"useBuiltIns": "entry",
9+
"corejs": "3.0.0"
10+
}
11+
]
12+
]
13+
}

.editorconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[*]
2+
charset = utf-8
3+
end_of_line = lf
4+
indent_style = space
5+
indent_size = 2
6+
insert_final_newline = true
7+
trim_trailing_whitespace = true
8+
max_line_length = 80
9+
10+
[*.md]
11+
max_line_length=off
12+
trim_trailing_whitespace = true
13+
insert_final_newline = true

.eslintplugin.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/**
2+
* @fileoverview Prevent variables used in JSX to be marked as unused
3+
* @author Yannick Croissant
4+
*/
5+
6+
'use strict';
7+
8+
// ------------------------------------------------------------------------------
9+
// Rule Definition
10+
// ------------------------------------------------------------------------------
11+
12+
module.exports.rules = {
13+
'jsx-uses-vars': {
14+
meta: {
15+
docs: {
16+
description: 'Prevent variables used in JSX to be marked as unused',
17+
category: 'Best Practices',
18+
recommended: true
19+
},
20+
schema: []
21+
},
22+
23+
create(context) {
24+
return {
25+
JSXOpeningElement(node) {
26+
let name;
27+
if (node.name.namespace && node.name.namespace.name) {
28+
// <Foo:Bar>
29+
name = node.name.namespace.name;
30+
} else if (node.name.name) {
31+
// <Foo>
32+
name = node.name.name;
33+
} else if (node.name.object) {
34+
// <Foo...Bar>
35+
let parent = node.name.object;
36+
while (parent.object) {
37+
parent = parent.object;
38+
}
39+
name = parent.name;
40+
} else {
41+
return;
42+
}
43+
44+
context.markVariableAsUsed(name);
45+
}
46+
47+
};
48+
}
49+
}
50+
};

.eslintrc

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
{
2+
"env": {
3+
"browser": true,
4+
"es6": true,
5+
"node": true
6+
},
7+
"extends": ["eslint:recommended"],
8+
"globals": {
9+
"Atomics": "readonly",
10+
"SharedArrayBuffer": "readonly"
11+
},
12+
"parser": "babel-eslint",
13+
"parserOptions": {
14+
"ecmaFeatures": {
15+
"jsx": true
16+
},
17+
"ecmaVersion": 2018,
18+
"sourceType": "module"
19+
},
20+
"rules": {
21+
"indent": [
22+
"error",
23+
2,
24+
{
25+
"SwitchCase": 1
26+
}
27+
],
28+
"linebreak-style": ["error", "unix"],
29+
"quotes": ["error", "single"],
30+
"comma-dangle": ["error", "always-multiline"],
31+
"semi": ["error", "always"]
32+
},
33+
"overrides": [
34+
{
35+
"files": ["**/*.ts", "**/*.tsx"],
36+
"parser": "@typescript-eslint/parser",
37+
"extends": [
38+
"eslint:recommended",
39+
"plugin:@typescript-eslint/eslint-recommended",
40+
"plugin:@typescript-eslint/recommended",
41+
"plugin:@typescript-eslint/recommended-requiring-type-checking",
42+
"plugin:jsx-a11y/recommended",
43+
"plugin:import/errors",
44+
"plugin:import/warnings",
45+
"plugin:import/typescript",
46+
"plugin:jest/recommended",
47+
"plugin:jest/style",
48+
"plugin:testing-library/recommended",
49+
"plugin:jest-dom/recommended",
50+
"plugin:prettier/recommended",
51+
"prettier/@typescript-eslint"
52+
],
53+
"plugins": ["local"],
54+
"rules": {
55+
"@typescript-eslint/explicit-function-return-type": [
56+
"warn",
57+
{
58+
"allowExpressions": true
59+
}
60+
],
61+
"local/jsx-uses-vars": "error"
62+
},
63+
"parserOptions": {
64+
"sourceType": "module",
65+
"ecmaFeatures": {
66+
"impliedStrict": true,
67+
"jsx": true
68+
},
69+
"project": "./tsconfig.json"
70+
},
71+
"settings": {
72+
"import/parsers": {
73+
"@typescript-eslint/parser": [".ts", ".tsx"]
74+
}
75+
},
76+
"env": {
77+
"es2020": true,
78+
"browser": true,
79+
"jest": true
80+
}
81+
}
82+
]
83+
}

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.DS_Store
2+
.cache
3+
node_modules
4+
coverage
5+
dist

.prettierrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"singleQuote": true,
3+
"printWidth": 100
4+
}

.vscode/settings.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"editor.rulers": [
3+
100
4+
],
5+
"editor.codeActionsOnSave": {
6+
"source.fixAll.eslint": true
7+
}
8+
}

__mocks__/fileMock.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "test-file-stub";

__mocks__/styleMock.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = {};

jest.setup.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import '@testing-library/jest-dom';

0 commit comments

Comments
 (0)