Skip to content

Commit 67b878a

Browse files
P1) Update typescript client to remove warnings (#7)
* ts-json-schema-generator used instead of outdated package + eslint upgrade * eslint hardcode * eslintignore removed * eslint.config.js renamed to eslint.config.mjs to prevent errors * lock file updated * fix complex types
1 parent 858fc89 commit 67b878a

File tree

6 files changed

+1833
-1315
lines changed

6 files changed

+1833
-1315
lines changed

.eslintignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

eslint.config.mjs

Lines changed: 294 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,294 @@
1+
import eslint from '@eslint/js';
2+
import tseslint from '@typescript-eslint/eslint-plugin';
3+
import tsParser from '@typescript-eslint/parser';
4+
import prettier from 'eslint-config-prettier';
5+
6+
const nodeGlobals = {
7+
process: 'readonly',
8+
console: 'readonly',
9+
__dirname: 'readonly',
10+
__filename: 'readonly',
11+
Buffer: 'readonly',
12+
global: 'readonly',
13+
URL: 'readonly',
14+
URLSearchParams: 'readonly',
15+
setTimeout: 'readonly',
16+
setInterval: 'readonly',
17+
clearTimeout: 'readonly',
18+
clearInterval: 'readonly',
19+
};
20+
21+
export default [
22+
eslint.configs.recommended,
23+
{
24+
files: ['**/*.ts'],
25+
languageOptions: {
26+
parser: tsParser,
27+
parserOptions: {
28+
project: 'tsconfig.json',
29+
tsconfigRootDir: '.',
30+
sourceType: 'module',
31+
},
32+
globals: {
33+
...nodeGlobals,
34+
jest: 'readonly',
35+
},
36+
},
37+
plugins: {
38+
'@typescript-eslint': tseslint,
39+
},
40+
rules: {
41+
...tseslint.configs.recommended.rules,
42+
'@typescript-eslint/no-explicit-any': 'off',
43+
'@typescript-eslint/no-unused-vars': 'off',
44+
'no-var': 'warn',
45+
'object-shorthand': ['warn', 'properties'],
46+
'accessor-pairs': ['error', { setWithoutGet: true, enforceForClassMembers: true }],
47+
'array-bracket-spacing': ['error', 'never'],
48+
'array-bracket-newline': ['error', { multiline: true }],
49+
'array-callback-return': ['error', {
50+
allowImplicit: false,
51+
checkForEach: false,
52+
}],
53+
'arrow-spacing': ['error', { before: true, after: true }],
54+
'block-spacing': ['error', 'always'],
55+
'brace-style': ['error', '1tbs', { allowSingleLine: true }],
56+
'camelcase': ['error', {
57+
allow: ['^UNSAFE_'],
58+
properties: 'never',
59+
ignoreGlobals: true,
60+
}],
61+
'comma-dangle': ['error', {
62+
arrays: 'always-multiline',
63+
objects: 'always-multiline',
64+
imports: 'always-multiline',
65+
exports: 'always-multiline',
66+
functions: 'always-multiline',
67+
}],
68+
'comma-spacing': ['error', { before: false, after: true }],
69+
'comma-style': ['error', 'last'],
70+
'computed-property-spacing': ['error', 'never', { enforceForClassMembers: true }],
71+
'constructor-super': 'error',
72+
'curly': ['error', 'multi-line'],
73+
'default-case-last': 'error',
74+
'dot-location': ['error', 'property'],
75+
'eol-last': 'error',
76+
'eqeqeq': ['error', 'always', { null: 'ignore' }],
77+
'func-call-spacing': ['error', 'never'],
78+
'func-style': ['error', 'expression', { allowArrowFunctions: true }],
79+
'generator-star-spacing': ['error', { before: true, after: true }],
80+
'indent': ['error', 2, {
81+
SwitchCase: 1,
82+
VariableDeclarator: 1,
83+
outerIIFEBody: 1,
84+
MemberExpression: 1,
85+
FunctionDeclaration: { parameters: 1, body: 1 },
86+
FunctionExpression: { parameters: 1, body: 1 },
87+
CallExpression: { arguments: 1 },
88+
ArrayExpression: 1,
89+
ObjectExpression: 1,
90+
ImportDeclaration: 1,
91+
flatTernaryExpressions: false,
92+
ignoreComments: false,
93+
ignoredNodes: [
94+
'TemplateLiteral *',
95+
'JSXElement',
96+
'JSXElement > *',
97+
'JSXAttribute',
98+
'JSXIdentifier',
99+
'JSXNamespacedName',
100+
'JSXMemberExpression',
101+
'JSXSpreadAttribute',
102+
'JSXExpressionContainer',
103+
'JSXOpeningElement',
104+
'JSXClosingElement',
105+
'JSXFragment',
106+
'JSXOpeningFragment',
107+
'JSXClosingFragment',
108+
'JSXText',
109+
'JSXEmptyExpression',
110+
'JSXSpreadChild',
111+
'PropertyDefinition[decorators]'
112+
],
113+
offsetTernaryExpressions: true,
114+
}],
115+
'key-spacing': ['error', { beforeColon: false, afterColon: true }],
116+
'keyword-spacing': ['error', { before: true, after: true }],
117+
'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }],
118+
'multiline-ternary': ['error', 'always-multiline'],
119+
'new-cap': ['error', { newIsCap: true, capIsNew: false, properties: true }],
120+
'new-parens': 'error',
121+
'no-array-constructor': 'error',
122+
'no-async-promise-executor': 'error',
123+
'no-caller': 'error',
124+
'no-case-declarations': 'error',
125+
'no-class-assign': 'error',
126+
'no-compare-neg-zero': 'error',
127+
'no-cond-assign': 'error',
128+
'no-const-assign': 'error',
129+
'no-constant-condition': ['error', { checkLoops: false }],
130+
'no-control-regex': 'error',
131+
'no-debugger': 'error',
132+
'no-delete-var': 'error',
133+
'no-dupe-args': 'error',
134+
'no-dupe-class-members': 'error',
135+
'no-dupe-keys': 'error',
136+
'no-duplicate-case': 'error',
137+
'no-useless-backreference': 'error',
138+
'no-empty': ['error', { allowEmptyCatch: true }],
139+
'no-empty-character-class': 'error',
140+
'no-empty-pattern': 'error',
141+
'no-eval': 'error',
142+
'no-ex-assign': 'error',
143+
'no-extend-native': 'error',
144+
'no-extra-bind': 'error',
145+
'no-extra-boolean-cast': 'error',
146+
'no-extra-parens': ['error', 'functions'],
147+
'no-fallthrough': 'error',
148+
'no-floating-decimal': 'error',
149+
'no-func-assign': 'error',
150+
'no-global-assign': 'error',
151+
'no-implied-eval': 'error',
152+
'no-import-assign': 'error',
153+
'no-invalid-regexp': 'error',
154+
'no-irregular-whitespace': 'error',
155+
'no-iterator': 'error',
156+
'no-labels': ['error', { allowLoop: false, allowSwitch: false }],
157+
'no-lone-blocks': 'error',
158+
'no-loss-of-precision': 'error',
159+
'no-misleading-character-class': 'error',
160+
'no-useless-catch': 'error',
161+
'no-mixed-operators': ['error', {
162+
groups: [
163+
['==', '!=', '===', '!==', '>', '>=', '<', '<='],
164+
['&&', '||'],
165+
['in', 'instanceof'],
166+
],
167+
allowSamePrecedence: true,
168+
}],
169+
'no-mixed-spaces-and-tabs': 'error',
170+
'no-multi-spaces': 'error',
171+
'no-multi-str': 'error',
172+
'no-multiple-empty-lines': ['error', { max: 1, maxBOF: 0, maxEOF: 0 }],
173+
'no-new': 'error',
174+
'no-new-func': 'error',
175+
'no-new-object': 'error',
176+
'no-new-symbol': 'error',
177+
'no-new-wrappers': 'error',
178+
'no-obj-calls': 'error',
179+
'no-octal': 'error',
180+
'no-octal-escape': 'error',
181+
'no-proto': 'error',
182+
'no-redeclare': ['error', { builtinGlobals: false }],
183+
'no-regex-spaces': 'error',
184+
'no-return-assign': ['error', 'except-parens'],
185+
'no-self-assign': ['error', { props: true }],
186+
'no-self-compare': 'error',
187+
'no-sequences': 'error',
188+
'no-shadow-restricted-names': 'error',
189+
'no-sparse-arrays': 'error',
190+
'no-tabs': 'error',
191+
'no-template-curly-in-string': 'error',
192+
'no-this-before-super': 'error',
193+
'no-throw-literal': 'error',
194+
'no-trailing-spaces': 'error',
195+
'no-undef': 'error',
196+
'no-undef-init': 'error',
197+
'no-unexpected-multiline': 'error',
198+
'no-unmodified-loop-condition': 'error',
199+
'no-unneeded-ternary': ['error', { defaultAssignment: false }],
200+
'no-unreachable': 'error',
201+
'no-unreachable-loop': 'error',
202+
'no-unsafe-finally': 'error',
203+
'no-unsafe-negation': 'error',
204+
'no-unused-expressions': ['error', {
205+
allowShortCircuit: true,
206+
allowTernary: true,
207+
allowTaggedTemplates: true,
208+
}],
209+
'no-useless-call': 'error',
210+
'no-useless-computed-key': 'error',
211+
'no-useless-rename': 'error',
212+
'no-useless-return': 'error',
213+
'no-void': ['error', { allowAsStatement: true }],
214+
'no-whitespace-before-property': 'error',
215+
'no-with': 'error',
216+
'object-curly-newline': ['error', { multiline: true, consistent: true }],
217+
'object-curly-spacing': ['error', 'always'],
218+
'object-property-newline': ['error', { allowMultiplePropertiesPerLine: true }],
219+
'one-var': ['error', { initialized: 'never' }],
220+
'operator-linebreak': ['error', 'after', { overrides: { '?': 'before', ':': 'before', '|>': 'before' } }],
221+
'padded-blocks': ['error', { blocks: 'never', switches: 'never', classes: 'never' }],
222+
'prefer-const': ['error', { destructuring: 'all' }],
223+
'prefer-promise-reject-errors': 'error',
224+
'prefer-regex-literals': ['error', { disallowRedundantWrapping: true }],
225+
'quote-props': ['error', 'as-needed'],
226+
'quotes': ['error', 'single', { avoidEscape: true, allowTemplateLiterals: false }],
227+
'rest-spread-spacing': ['error', 'never'],
228+
'semi': ['error', 'always'],
229+
'semi-spacing': ['error', { before: false, after: true }],
230+
'space-before-blocks': ['error', 'always'],
231+
'space-before-function-paren': ['error', {
232+
'anonymous': 'always',
233+
'named': 'never',
234+
'asyncArrow': 'always',
235+
}],
236+
'space-in-parens': ['error', 'never'],
237+
'space-infix-ops': 'error',
238+
'space-unary-ops': ['error', { words: true, nonwords: false }],
239+
'spaced-comment': ['error', 'always', {
240+
line: { markers: ['*package', '!', '/', ',', '='] },
241+
block: { balanced: true, markers: ['*package', '!', ',', ':', '::', 'flow-include'], exceptions: ['*'] },
242+
}],
243+
'symbol-description': 'error',
244+
'template-curly-spacing': ['error', 'never'],
245+
'template-tag-spacing': ['error', 'never'],
246+
'unicode-bom': ['error', 'never'],
247+
'use-isnan': ['error', {
248+
enforceForSwitchCase: true,
249+
enforceForIndexOf: true,
250+
}],
251+
'valid-typeof': ['error', { requireStringLiterals: true }],
252+
'wrap-iife': ['error', 'any', { functionPrototypeMethods: true }],
253+
'yield-star-spacing': ['error', 'both'],
254+
'@typescript-eslint/interface-name-prefix': 'off',
255+
'@typescript-eslint/explicit-function-return-type': 'off',
256+
'@typescript-eslint/explicit-module-boundary-types': 'off',
257+
'@typescript-eslint/no-non-null-assertion': 'off',
258+
'@typescript-eslint/naming-convention': [
259+
'error',
260+
{
261+
'selector': [
262+
'classProperty',
263+
'typeProperty',
264+
'classMethod',
265+
'objectLiteralMethod',
266+
'typeMethod',
267+
'accessor',
268+
'enumMember'
269+
],
270+
'format': ['strictCamelCase'],
271+
'modifiers': ['requiresQuotes'],
272+
'filter': {
273+
'regex': '^(x-poly-ref|x-unresolved)$',
274+
'match': false
275+
}
276+
}
277+
],
278+
279+
},
280+
settings: {},
281+
},
282+
{
283+
ignores: [
284+
'node_modules/**',
285+
'dist/**',
286+
'coverage/**',
287+
'*.js',
288+
'*.d.ts',
289+
'.eslintrc.js',
290+
'scripts/**'
291+
],
292+
},
293+
prettier,
294+
];

0 commit comments

Comments
 (0)