Skip to content

Commit 9d9e4c3

Browse files
chore: initial release
1 parent 25eb868 commit 9d9e4c3

29 files changed

+13968
-1
lines changed

.editorconfig

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# http://editorconfig.org/
2+
# https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties
3+
root = true
4+
5+
6+
# recommended settings; DO NOT CHANGE!
7+
[*]
8+
end_of_line = lf
9+
charset = utf-8
10+
trim_trailing_whitespace = true
11+
insert_final_newline = true
12+
13+
14+
# common settings
15+
[*]
16+
indent_style = tab
17+
indent_size = 4
18+
tab_width = 4
19+
max_line_length = off
20+
21+
quote_type = double
22+
curly_bracket_next_line = true
23+
spaces_around_operators = true
24+
spaces_around_brackets = none
25+
indent_brace_style = allman
26+
27+
28+
# JavaScript/TypeScript
29+
[*.{js,ts}]
30+
indent_style = space
31+
curly_bracket_next_line = false
32+
indent_brace_style = K&R
33+
34+
35+
# JSON/YAML
36+
[*.{json,babelrc,code-workspace,yml,yaml}]
37+
indent_style = space
38+
indent_size = 2
39+
tab_width = 2
40+
41+
42+
# markdown
43+
[*.md]
44+
indent_style = space

.eslintrc.yml

Lines changed: 320 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,320 @@
1+
# https://eslint.org/
2+
env: # https://eslint.org/docs/user-guide/configuring#specifying-environments
3+
es6: true
4+
node: true
5+
extends:
6+
- eslint:recommended
7+
- plugin:@typescript-eslint/eslint-recommended
8+
- plugin:@typescript-eslint/recommended
9+
plugins:
10+
- "@typescript-eslint"
11+
parser: "@typescript-eslint/parser"
12+
parserOptions:
13+
sourceType: module
14+
project: ./tsconfig.json
15+
rules: # https://eslint.org/docs/rules/
16+
accessor-pairs: error
17+
array-bracket-newline:
18+
- error
19+
- consistent
20+
array-bracket-spacing:
21+
- error
22+
- never
23+
array-callback-return: error
24+
arrow-body-style: 'off'
25+
arrow-parens:
26+
- error
27+
- always
28+
arrow-spacing:
29+
- error
30+
- after: true
31+
before: true
32+
block-scoped-var: error
33+
block-spacing: error
34+
brace-style: 'off' # see "@typescript-eslint/brace-style"
35+
callback-return: error
36+
capitalized-comments: 'off'
37+
class-methods-use-this: error
38+
comma-dangle:
39+
- error
40+
- always-multiline
41+
comma-spacing:
42+
- error
43+
- after: true
44+
before: false
45+
comma-style:
46+
- error
47+
- last
48+
complexity:
49+
- error
50+
computed-property-spacing:
51+
- error
52+
- never
53+
consistent-return: 'off'
54+
consistent-this: error
55+
curly: error
56+
default-case: 'off'
57+
dot-location:
58+
- error
59+
- property
60+
dot-notation:
61+
- error
62+
- allowPattern: "^_"
63+
eol-last: error
64+
eqeqeq: error
65+
for-direction: error
66+
func-call-spacing: error
67+
func-name-matching: error
68+
func-names:
69+
- error
70+
- never
71+
func-style:
72+
- error
73+
- declaration
74+
function-paren-newline:
75+
- error
76+
- multiline-arguments
77+
generator-star-spacing: error
78+
getter-return: error
79+
global-require: error
80+
guard-for-in: error
81+
handle-callback-err: error
82+
id-blacklist: error
83+
id-length: error
84+
id-match: error
85+
implicit-arrow-linebreak:
86+
- error
87+
- below
88+
indent:
89+
- error
90+
- 4
91+
- SwitchCase: 1
92+
indent-legacy: 'off'
93+
init-declarations: error
94+
jsx-quotes: error
95+
key-spacing: error
96+
keyword-spacing:
97+
- error
98+
line-comment-position: 'off'
99+
linebreak-style:
100+
- error
101+
- unix
102+
lines-around-comment: 'off'
103+
lines-around-directive: error
104+
lines-between-class-members:
105+
- error
106+
- always
107+
- exceptAfterSingleLine: true
108+
max-depth: error
109+
max-len: 'off'
110+
max-lines: 'off'
111+
max-nested-callbacks: error
112+
max-params: 'off'
113+
max-statements: 'off'
114+
max-statements-per-line: error
115+
multiline-comment-style:
116+
- error
117+
- separate-lines
118+
multiline-ternary: error
119+
new-cap: error
120+
new-parens: error
121+
newline-after-var: 'off'
122+
newline-before-return: 'off'
123+
no-alert: error
124+
no-array-constructor: error
125+
no-await-in-loop: error
126+
no-bitwise: error
127+
no-buffer-constructor: error
128+
no-caller: error
129+
no-catch-shadow: error
130+
no-confusing-arrow: error
131+
no-continue: 'off'
132+
no-div-regex: error
133+
no-duplicate-imports: error
134+
no-else-return: 'off'
135+
no-empty-function: 'off'
136+
no-eq-null: error
137+
no-eval: error
138+
no-extend-native: error
139+
no-extra-bind: error
140+
no-extra-label: error
141+
no-extra-parens: error
142+
no-extra-semi: error
143+
no-floating-decimal: error
144+
no-implicit-coercion: error
145+
no-implicit-globals: error
146+
no-implied-eval: error
147+
no-inline-comments: 'off'
148+
no-invalid-this: error
149+
no-iterator: error
150+
no-label-var: error
151+
no-labels: error
152+
no-lonely-if: error
153+
no-loop-func: error
154+
no-magic-numbers: 'off'
155+
no-mixed-operators: error
156+
no-mixed-requires: error
157+
no-multi-assign: error
158+
no-multi-spaces: error
159+
no-multi-str: error
160+
no-multiple-empty-lines:
161+
- error
162+
- max: 1
163+
no-native-reassign: error
164+
no-negated-condition: 'off'
165+
no-negated-in-lhs: error
166+
no-nested-ternary: error
167+
no-new: error
168+
no-new-func: error
169+
no-new-object: error
170+
no-new-require: error
171+
no-new-wrappers: error
172+
no-octal-escape: error
173+
no-param-reassign: 'off'
174+
no-path-concat: error
175+
no-plusplus: 'off'
176+
no-process-env: 'off'
177+
no-process-exit: error
178+
no-proto: error
179+
no-prototype-builtins: 'off'
180+
no-restricted-globals: error
181+
no-restricted-imports: error
182+
no-restricted-modules: error
183+
no-restricted-properties: error
184+
no-restricted-syntax: error
185+
no-return-assign: error
186+
no-return-await: error
187+
no-script-url: error
188+
no-self-compare: error
189+
no-sequences: error
190+
no-shadow: error
191+
no-shadow-restricted-names: error
192+
no-spaced-func: error
193+
no-sync: 'off'
194+
no-tabs: 'off'
195+
no-template-curly-in-string: error
196+
no-ternary: error
197+
no-throw-literal: error
198+
no-trailing-spaces: error
199+
no-undef-init: error
200+
no-undefined: 'off'
201+
no-underscore-dangle: 'off'
202+
no-unmodified-loop-condition: error
203+
no-unneeded-ternary: error
204+
no-unused-expressions: error
205+
no-use-before-define: 'off'
206+
no-useless-call: error
207+
no-useless-computed-key: error
208+
no-useless-concat: error
209+
no-useless-constructor: error
210+
no-useless-rename: error
211+
no-useless-return: error
212+
no-var: error
213+
no-void: error
214+
no-warning-comments: error
215+
no-whitespace-before-property: error
216+
no-with: error
217+
nonblock-statement-body-position: error
218+
object-curly-newline: 'off'
219+
object-curly-spacing:
220+
- error
221+
- never
222+
object-property-newline: error
223+
object-shorthand: 'off'
224+
one-var: 'off'
225+
one-var-declaration-per-line: error
226+
operator-assignment: error
227+
operator-linebreak: error
228+
padded-blocks: 'off'
229+
padding-line-between-statements: error
230+
prefer-arrow-callback: error
231+
prefer-const: error
232+
prefer-destructuring: error
233+
prefer-numeric-literals: error
234+
prefer-promise-reject-errors: error
235+
prefer-reflect: error
236+
prefer-rest-params: error
237+
prefer-spread: error
238+
prefer-template: error
239+
quote-props: 'off'
240+
quotes: 'off'
241+
radix: error
242+
require-await: error
243+
require-jsdoc: error
244+
rest-spread-spacing:
245+
- error
246+
- never
247+
semi: 'off' # see "@typescript-eslint/semi"
248+
semi-spacing: error
249+
semi-style:
250+
- error
251+
- last
252+
sort-imports:
253+
- error
254+
- ignoreCase: false
255+
ignoreDeclarationSort: true
256+
sort-keys: 'off'
257+
sort-vars: error
258+
space-before-blocks: error
259+
space-before-function-paren: 'off'
260+
space-in-parens:
261+
- error
262+
- never
263+
space-infix-ops: error
264+
space-unary-ops: error
265+
spaced-comment:
266+
- error
267+
- always
268+
strict: error
269+
switch-colon-spacing: error
270+
symbol-description: error
271+
template-curly-spacing:
272+
- error
273+
- never
274+
template-tag-spacing: error
275+
unicode-bom:
276+
- error
277+
- never
278+
valid-jsdoc:
279+
- error
280+
- prefer:
281+
arg: param
282+
argument: param
283+
return: returns
284+
yield: yields
285+
exception: throws
286+
requireReturn: false
287+
requireParamType: false
288+
requireReturnType: false
289+
vars-on-top: error
290+
wrap-iife: error
291+
wrap-regex: error
292+
yield-star-spacing: error
293+
yoda:
294+
- error
295+
- never
296+
297+
# @typescript-eslint plugin
298+
"@typescript-eslint/ban-ts-ignore": 'off'
299+
"@typescript-eslint/brace-style":
300+
- error
301+
- 1tbs
302+
"@typescript-eslint/member-delimiter-style":
303+
- error
304+
- multiline:
305+
delimiter: semi
306+
requireLast: true
307+
singleline:
308+
delimiter: semi
309+
requireLast: true
310+
"@typescript-eslint/no-empty-interface": 'off'
311+
"@typescript-eslint/no-floating-promises": error
312+
"@typescript-eslint/no-use-before-define":
313+
- error
314+
- functions: false
315+
"@typescript-eslint/semi": error
316+
"@typescript-eslint/strict-boolean-expressions":
317+
- error
318+
- allowString: false
319+
allowNumber: false
320+
allowNullableObject: false

.github/actions/cache-npm/action.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# https://docs.github.com/en/actions/creating-actions/creating-a-composite-action
2+
name: Cache NPM
3+
description: Composite action (cache NPM)
4+
5+
runs:
6+
using: composite
7+
steps:
8+
# https://github.com/actions/cache/blob/master/examples.md#node---npm
9+
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter
10+
- name: Get NPM cache directory
11+
run: echo "NPM_CACHE_DIRECTORY=$(npm config get cache)" >> ${{ github.env }} # use "github.env" instead of "github.output"; if use "github.output", "Warning: Input required and not supplied: path" is displayed on post-process
12+
shell: pwsh # use PowerShell; Bash doesn't work on Windows because the value of "github.env" is like "D:\a\_temp\_runner_file_commands\set_env_XXX".
13+
14+
- name: Get Node.js version
15+
run: echo "NODEJS_VERSION=$(node -v)" >> ${{ github.env }}
16+
shell: pwsh
17+
18+
- name: Cache NPM modules
19+
uses: actions/cache@v3
20+
with:
21+
path: ${{ env.NPM_CACHE_DIRECTORY }}
22+
key: npm-${{ runner.os }}-${{ runner.arch }}-${{ env.NODEJS_VERSION }}-${{ hashFiles('package-lock.json') }}
23+
restore-keys: |
24+
npm-${{ runner.os }}-${{ runner.arch }}-${{ env.NODEJS_VERSION }}-
25+
npm-${{ runner.os }}-${{ runner.arch }}

0 commit comments

Comments
 (0)