Skip to content

Commit a9a62e7

Browse files
committed
WIP - react helpers following bulletproof react
1 parent fd9ff3d commit a9a62e7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+20349
-19
lines changed

.devcontainer/devcontainer.json

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"build": {
3+
"dockerfile": "../Dockerfile",
4+
"context": ".."
5+
},
6+
"customizations": {
7+
"vscode": {
8+
"settings": {
9+
"terminal.integrated.shell.linux": "/bin/bash"
10+
}
11+
}
12+
},
13+
"forwardPorts": [],
14+
"name": "Ergonomic React Dev Container",
15+
"postStartCommand": "npm install"
16+
}

.eslintignore

+205
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
lerna-debug.log*
8+
.pnpm-debug.log*
9+
10+
# Diagnostic reports (https://nodejs.org/api/report.html)
11+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12+
13+
# Runtime data
14+
pids
15+
*.pid
16+
*.seed
17+
*.pid.lock
18+
19+
# Directory for instrumented libs generated by jscoverage/JSCover
20+
lib-cov
21+
22+
# Coverage directory used by tools like istanbul
23+
coverage
24+
*.lcov
25+
26+
# nyc test coverage
27+
.nyc_output
28+
29+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30+
.grunt
31+
32+
# Bower dependency directory (https://bower.io/)
33+
bower_components
34+
35+
# node-waf configuration
36+
.lock-wscript
37+
38+
# Compiled binary addons (https://nodejs.org/api/addons.html)
39+
build/Release
40+
41+
# Dependency directories
42+
node_modules/
43+
jspm_packages/
44+
45+
# Snowpack dependency directory (https://snowpack.dev/)
46+
web_modules/
47+
48+
# TypeScript cache
49+
*.tsbuildinfo
50+
51+
# Optional npm cache directory
52+
.npm
53+
54+
# Optional eslint cache
55+
.eslintcache
56+
57+
# Optional stylelint cache
58+
.stylelintcache
59+
60+
# Microbundle cache
61+
.rpt2_cache/
62+
.rts2_cache_cjs/
63+
.rts2_cache_es/
64+
.rts2_cache_umd/
65+
66+
# Optional REPL history
67+
.node_repl_history
68+
69+
# Output of 'npm pack'
70+
*.tgz
71+
72+
# Yarn Integrity file
73+
.yarn-integrity
74+
75+
# dotenv environment variable files
76+
.env
77+
.env.development.local
78+
.env.test.local
79+
.env.production.local
80+
.env.local
81+
82+
# parcel-bundler cache (https://parceljs.org/)
83+
.cache
84+
.parcel-cache
85+
86+
# Next.js build output
87+
.next
88+
out
89+
90+
# Nuxt.js build / generate output
91+
.nuxt
92+
dist
93+
94+
# Gatsby files
95+
.cache/
96+
# Comment in the public line in if your project uses Gatsby and not Next.js
97+
# https://nextjs.org/blog/next-9-1#public-directory-support
98+
# public
99+
100+
# vuepress build output
101+
.vuepress/dist
102+
103+
# vuepress v2.x temp and cache directory
104+
.temp
105+
.cache
106+
107+
# Docusaurus cache and generated files
108+
.docusaurus
109+
110+
# Serverless directories
111+
.serverless/
112+
113+
# FuseBox cache
114+
.fusebox/
115+
116+
# DynamoDB Local files
117+
.dynamodb/
118+
119+
# TernJS port file
120+
.tern-port
121+
122+
# Stores VSCode versions used for testing VSCode extensions
123+
.vscode-test
124+
125+
# yarn v2
126+
.yarn/cache
127+
.yarn/unplugged
128+
.yarn/build-state.yml
129+
.yarn/install-state.gz
130+
.pnp.*
131+
132+
# MacOS
133+
.DS_Store
134+
135+
#### React Native ####
136+
137+
# OSX
138+
#
139+
.DS_Store
140+
141+
# Xcode
142+
#
143+
build/
144+
*.pbxuser
145+
!default.pbxuser
146+
*.mode1v3
147+
!default.mode1v3
148+
*.mode2v3
149+
!default.mode2v3
150+
*.perspectivev3
151+
!default.perspectivev3
152+
xcuserdata
153+
*.xccheckout
154+
*.moved-aside
155+
DerivedData
156+
*.hmap
157+
*.ipa
158+
*.xcuserstate
159+
ios/.xcode.env.local
160+
161+
# Android/IntelliJ
162+
#
163+
build/
164+
.idea
165+
.gradle
166+
local.properties
167+
*.iml
168+
*.hprof
169+
.cxx/
170+
*.keystore
171+
!debug.keystore
172+
173+
# node.js
174+
#
175+
node_modules/
176+
npm-debug.log
177+
yarn-error.log
178+
179+
# fastlane
180+
#
181+
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
182+
# screenshots whenever they are needed.
183+
# For more information about the recommended setup visit:
184+
# https://docs.fastlane.tools/best-practices/source-control/
185+
186+
**/fastlane/report.xml
187+
**/fastlane/Preview.html
188+
**/fastlane/screenshots
189+
**/fastlane/test_output
190+
191+
# Bundle artifact
192+
*.jsbundle
193+
194+
# Ruby / CocoaPods
195+
/ios/Pods/
196+
/vendor/bundle/
197+
198+
# Temporary files created by Metro to check the health of the file watcher
199+
.metro-health-check*
200+
201+
# testing
202+
/coverage
203+
204+
# Local Resources
205+
___local_resources/

.eslintrc.json

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
{
2+
"extends": [
3+
"eslint:recommended",
4+
"plugin:@typescript-eslint/recommended",
5+
"plugin:@typescript-eslint/recommended-requiring-type-checking",
6+
"plugin:import/recommended",
7+
"plugin:import/typescript",
8+
"plugin:jest/style",
9+
"plugin:node/recommended",
10+
"plugin:promise/recommended",
11+
"prettier"
12+
],
13+
"ignorePatterns": [
14+
"**/*.test.js",
15+
"**/*.test.jsx",
16+
"**/*.test.ts",
17+
"**/*.test.tsx"
18+
],
19+
"overrides": [],
20+
"parser": "@typescript-eslint/parser",
21+
"parserOptions": {
22+
"tsconfigRootDir": ".",
23+
"project": ["./tsconfig.json"]
24+
},
25+
"plugins": ["@typescript-eslint"],
26+
"root": true,
27+
"rules": {
28+
"@typescript-eslint/no-inferrable-types": ["off"],
29+
"@typescript-eslint/no-unnecessary-type-assertions": ["off"],
30+
"@typescript-eslint/no-unsafe-assignment": ["error"],
31+
"@typescript-eslint/no-unsafe-return": ["error"],
32+
"@typescript-eslint/no-unused-vars": [
33+
"error",
34+
{
35+
"args": "all",
36+
"argsIgnorePattern": "^_",
37+
"vars": "all",
38+
"varsIgnorePattern": "^_"
39+
}
40+
],
41+
"@typescript-eslint/restrict-template-expressions": ["error"],
42+
"@typescript-eslint/switch-exhaustiveness-check": ["error"],
43+
"import/export": ["warn"],
44+
"import/namespace": ["warn"],
45+
"jest/no-disabled-tests": ["warn"],
46+
"no-global-assign": ["warn"],
47+
"node/no-missing-import": ["off"],
48+
"node/no-unpublished-import": ["warn"],
49+
"node/no-extraneous-import": ["off"],
50+
"node/no-unsupported-features/es-syntax": ["off"]
51+
},
52+
"settings": {
53+
"import/parsers": {
54+
"@typescript-eslint/parser": [".ts", ".tsx"]
55+
},
56+
"import/resolver": {
57+
"typescript": {
58+
"alwaysTryTypes": true,
59+
"project": ["./tsconfig.json"]
60+
}
61+
},
62+
"node": {
63+
"tryExtensions": [".ts", ".tsx", ".js", ".jsx", ".json", ".node"]
64+
}
65+
}
66+
}

.gitattributes

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto

.github/workflows/npm-publish-merge.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: Publish to npm on merge
2-
"on":
2+
'on':
33
push:
44
branches:
55
- master
@@ -10,8 +10,8 @@ jobs:
1010
- uses: actions/checkout@v3
1111
- uses: actions/setup-node@v2
1212
with:
13-
node-version: "18"
14-
registry-url: "https://registry.npmjs.org"
13+
node-version: '18'
14+
registry-url: 'https://registry.npmjs.org'
1515
- name: Build project
1616
run: npm install && echo 'tsc --build ./tsconfig.json'
1717
- name: Publish package

0 commit comments

Comments
 (0)