Skip to content

Commit 5a8361b

Browse files
committed
Upgrade @typescript-eslint/*
1 parent 700047b commit 5a8361b

File tree

8 files changed

+109
-85
lines changed

8 files changed

+109
-85
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
"@types/jest-in-case": "^1.0.2",
2020
"@types/mkdirp": "1.0.2",
2121
"@types/node": "^20.12.7",
22-
"@typescript-eslint/eslint-plugin": "^7.10.0",
23-
"@typescript-eslint/parser": "^7.10.0",
22+
"@typescript-eslint/eslint-plugin": "^8.35.0",
23+
"@typescript-eslint/parser": "^8.35.0",
2424
"copyfiles": "^2.4.1",
2525
"eslint": "^9.30.0",
2626
"eslint-config-prettier": "^10.1.5",

packages/ts-codegen/scripts/cmds.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
const fs = require('fs');
2-
const path = require('path');
3-
const { globSync: glob } = require('glob');
4-
const Case = require('case');
5-
const srcDir = path.resolve(`${__dirname}/../src/commands`);
1+
import { kebab, snake } from 'case';
2+
import { writeFileSync } from 'fs';
3+
import { globSync as glob } from 'glob';
4+
import { basename, resolve } from 'path';
5+
6+
const srcDir = resolve(`${__dirname}/../src/commands`);
67

78
interface PathObj {
89
name: string;
@@ -15,9 +16,9 @@ const paths: PathObj[] = glob(`${srcDir}/**.[j|t]s`)
1516
.map((file: string) => {
1617
const [, name] = file.match(/\/(.*)\.[j|t]s$/);
1718
return {
18-
name: path.basename(name),
19-
param: Case.kebab(path.basename(name)),
20-
safe: Case.snake(path.basename(name)),
19+
name: basename(name),
20+
param: kebab(basename(name)),
21+
safe: snake(basename(name)),
2122
path: file
2223
.replace(srcDir, './commands')
2324
.replace(/\.js$/, '')
@@ -43,4 +44,4 @@ ${paths
4344
4445
`;
4546

46-
fs.writeFileSync(`${__dirname}/../src/cmds.ts`, out);
47+
writeFileSync(`${__dirname}/../src/cmds.ts`, out);

packages/ts-codegen/src/commands/create-boilerplate.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import { MinimistArgs } from '@cosmwasm/ts-codegen-types';
22
import dargs from 'dargs';
3+
import * as fs from 'fs';
4+
import { globSync as glob } from 'glob';
5+
import * as path from 'path';
36
import * as shell from 'shelljs';
47

58
import { prompt } from '../utils/prompt';
69

7-
const { globSync: glob } = require('glob');
8-
const fs = require('fs');
9-
const path = require('path');
10-
1110
const repo = 'https://github.com/hyperweb-io/ts-codegen-module-boilerplate';
1211
export default async (argv: MinimistArgs) => {
1312
if (!shell.which('git')) {

packages/ts-codegen/src/commands/install.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export default async (argv: MinimistArgs) => {
3535
let thisPackage;
3636
try {
3737
thisPackage = JSON.parse(readFileSync(join(cur, 'package.json'), 'utf-8'));
38-
} catch (e) {
38+
} catch {
3939
throw new Error('make sure you are inside of a telescope package!');
4040
}
4141

packages/ts-codegen/src/file.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
#!/usr/bin/env node
22
import { readFileSync } from 'fs';
3+
import minimist from 'minimist';
34

45
import { cli } from './cli';
56
import { prompt } from './utils/prompt';
67

7-
const argv = require('minimist')(process.argv.slice(2));
8+
const argv = minimist(process.argv.slice(2));
89

910
const question = [
1011
{

packages/ts-codegen/src/plugins/react-query.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export class ReactQueryPlugin extends BuilderPluginBase<RenderOptions> {
5656

5757
const clientImports = [];
5858

59-
QueryMsg && clientImports.push(QueryClient);
59+
if (QueryMsg) clientImports.push(QueryClient);
6060

6161
// check that there are commands within the exec msg
6262
const shouldGenerateMutationHooks =

packages/ts-codegen/src/ts-codegen.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
#!/usr/bin/env node
2+
import minimist from 'minimist';
3+
24
import { cli } from './cli';
35

4-
let argv = require('minimist')(process.argv.slice(2));
6+
let argv = minimist(process.argv.slice(2));
57

68
(async () => {
79
await cli(argv);

yarn.lock

Lines changed: 87 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,7 @@
599599
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz#7fc114af5f6563f19f73324b5d5ff36ece0803d1"
600600
integrity sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==
601601

602-
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
602+
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.7.0":
603603
version "4.7.0"
604604
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz#607084630c6c033992a082de6e6fbc1a8b52175a"
605605
integrity sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==
@@ -1880,86 +1880,102 @@
18801880
dependencies:
18811881
"@types/yargs-parser" "*"
18821882

1883-
"@typescript-eslint/eslint-plugin@^7.10.0":
1884-
version "7.18.0"
1885-
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3"
1886-
integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==
1883+
"@typescript-eslint/eslint-plugin@^8.35.0":
1884+
version "8.35.0"
1885+
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.0.tgz#515170100ff867445fe0a17ce05c14fc5fd9ca63"
1886+
integrity sha512-ijItUYaiWuce0N1SoSMrEd0b6b6lYkYt99pqCPfybd+HKVXtEvYhICfLdwp42MhiI5mp0oq7PKEL+g1cNiz/Eg==
18871887
dependencies:
18881888
"@eslint-community/regexpp" "^4.10.0"
1889-
"@typescript-eslint/scope-manager" "7.18.0"
1890-
"@typescript-eslint/type-utils" "7.18.0"
1891-
"@typescript-eslint/utils" "7.18.0"
1892-
"@typescript-eslint/visitor-keys" "7.18.0"
1889+
"@typescript-eslint/scope-manager" "8.35.0"
1890+
"@typescript-eslint/type-utils" "8.35.0"
1891+
"@typescript-eslint/utils" "8.35.0"
1892+
"@typescript-eslint/visitor-keys" "8.35.0"
18931893
graphemer "^1.4.0"
1894-
ignore "^5.3.1"
1894+
ignore "^7.0.0"
18951895
natural-compare "^1.4.0"
1896-
ts-api-utils "^1.3.0"
1896+
ts-api-utils "^2.1.0"
18971897

1898-
"@typescript-eslint/parser@^7.10.0":
1899-
version "7.18.0"
1900-
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0"
1901-
integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==
1898+
"@typescript-eslint/parser@^8.35.0":
1899+
version "8.35.0"
1900+
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.35.0.tgz#20a0e17778a329a6072722f5ac418d4376b767d2"
1901+
integrity sha512-6sMvZePQrnZH2/cJkwRpkT7DxoAWh+g6+GFRK6bV3YQo7ogi3SX5rgF6099r5Q53Ma5qeT7LGmOmuIutF4t3lA==
19021902
dependencies:
1903-
"@typescript-eslint/scope-manager" "7.18.0"
1904-
"@typescript-eslint/types" "7.18.0"
1905-
"@typescript-eslint/typescript-estree" "7.18.0"
1906-
"@typescript-eslint/visitor-keys" "7.18.0"
1903+
"@typescript-eslint/scope-manager" "8.35.0"
1904+
"@typescript-eslint/types" "8.35.0"
1905+
"@typescript-eslint/typescript-estree" "8.35.0"
1906+
"@typescript-eslint/visitor-keys" "8.35.0"
19071907
debug "^4.3.4"
19081908

1909-
"@typescript-eslint/[email protected].0":
1910-
version "7.18.0"
1911-
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83"
1912-
integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==
1909+
"@typescript-eslint/[email protected].0":
1910+
version "8.35.0"
1911+
resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.35.0.tgz#00bd77e6845fbdb5684c6ab2d8a400a58dcfb07b"
1912+
integrity sha512-41xatqRwWZuhUMF/aZm2fcUsOFKNcG28xqRSS6ZVr9BVJtGExosLAm5A1OxTjRMagx8nJqva+P5zNIGt8RIgbQ==
19131913
dependencies:
1914-
"@typescript-eslint/types" "7.18.0"
1915-
"@typescript-eslint/visitor-keys" "7.18.0"
1914+
"@typescript-eslint/tsconfig-utils" "^8.35.0"
1915+
"@typescript-eslint/types" "^8.35.0"
1916+
debug "^4.3.4"
19161917

1917-
"@typescript-eslint/[email protected].0":
1918-
version "7.18.0"
1919-
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b"
1920-
integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==
1918+
"@typescript-eslint/[email protected].0":
1919+
version "8.35.0"
1920+
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.35.0.tgz#8ccb2ab63383544fab98fc4b542d8d141259ff4f"
1921+
integrity sha512-+AgL5+mcoLxl1vGjwNfiWq5fLDZM1TmTPYs2UkyHfFhgERxBbqHlNjRzhThJqz+ktBqTChRYY6zwbMwy0591AA==
19211922
dependencies:
1922-
"@typescript-eslint/typescript-estree" "7.18.0"
1923-
"@typescript-eslint/utils" "7.18.0"
1924-
debug "^4.3.4"
1925-
ts-api-utils "^1.3.0"
1923+
"@typescript-eslint/types" "8.35.0"
1924+
"@typescript-eslint/visitor-keys" "8.35.0"
19261925

1927-
"@typescript-eslint/[email protected].0":
1928-
version "7.18.0"
1929-
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9"
1930-
integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==
1926+
"@typescript-eslint/[email protected]", "@typescript-eslint/tsconfig-utils@^8.35.0":
1927+
version "8.35.0"
1928+
resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.0.tgz#6e05aeb999999e31d562ceb4fe144f3cbfbd670e"
1929+
integrity sha512-04k/7247kZzFraweuEirmvUj+W3bJLI9fX6fbo1Qm2YykuBvEhRTPl8tcxlYO8kZZW+HIXfkZNoasVb8EV4jpA==
19311930

1932-
"@typescript-eslint/[email protected].0":
1933-
version "7.18.0"
1934-
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931"
1935-
integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==
1931+
"@typescript-eslint/[email protected].0":
1932+
version "8.35.0"
1933+
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.35.0.tgz#0201eae9d83ffcc3451ef8c94f53ecfbf2319ecc"
1934+
integrity sha512-ceNNttjfmSEoM9PW87bWLDEIaLAyR+E6BoYJQ5PfaDau37UGca9Nyq3lBk8Bw2ad0AKvYabz6wxc7DMTO2jnNA==
19361935
dependencies:
1937-
"@typescript-eslint/types" "7.18.0"
1938-
"@typescript-eslint/visitor-keys" "7.18.0"
1936+
"@typescript-eslint/typescript-estree" "8.35.0"
1937+
"@typescript-eslint/utils" "8.35.0"
19391938
debug "^4.3.4"
1940-
globby "^11.1.0"
1939+
ts-api-utils "^2.1.0"
1940+
1941+
"@typescript-eslint/[email protected]", "@typescript-eslint/types@^8.35.0":
1942+
version "8.35.0"
1943+
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.35.0.tgz#e60d062907930e30008d796de5c4170f02618a93"
1944+
integrity sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==
1945+
1946+
"@typescript-eslint/[email protected]":
1947+
version "8.35.0"
1948+
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.0.tgz#86141e6c55b75bc1eaecc0781bd39704de14e52a"
1949+
integrity sha512-F+BhnaBemgu1Qf8oHrxyw14wq6vbL8xwWKKMwTMwYIRmFFY/1n/9T/jpbobZL8vp7QyEUcC6xGrnAO4ua8Kp7w==
1950+
dependencies:
1951+
"@typescript-eslint/project-service" "8.35.0"
1952+
"@typescript-eslint/tsconfig-utils" "8.35.0"
1953+
"@typescript-eslint/types" "8.35.0"
1954+
"@typescript-eslint/visitor-keys" "8.35.0"
1955+
debug "^4.3.4"
1956+
fast-glob "^3.3.2"
19411957
is-glob "^4.0.3"
19421958
minimatch "^9.0.4"
19431959
semver "^7.6.0"
1944-
ts-api-utils "^1.3.0"
1960+
ts-api-utils "^2.1.0"
19451961

1946-
"@typescript-eslint/utils@7.18.0":
1947-
version "7.18.0"
1948-
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f"
1949-
integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==
1962+
"@typescript-eslint/utils@8.35.0":
1963+
version "8.35.0"
1964+
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.35.0.tgz#aaf0afab5ab51ea2f1897002907eacd9834606d5"
1965+
integrity sha512-nqoMu7WWM7ki5tPgLVsmPM8CkqtoPUG6xXGeefM5t4x3XumOEKMoUZPdi+7F+/EotukN4R9OWdmDxN80fqoZeg==
19501966
dependencies:
1951-
"@eslint-community/eslint-utils" "^4.4.0"
1952-
"@typescript-eslint/scope-manager" "7.18.0"
1953-
"@typescript-eslint/types" "7.18.0"
1954-
"@typescript-eslint/typescript-estree" "7.18.0"
1967+
"@eslint-community/eslint-utils" "^4.7.0"
1968+
"@typescript-eslint/scope-manager" "8.35.0"
1969+
"@typescript-eslint/types" "8.35.0"
1970+
"@typescript-eslint/typescript-estree" "8.35.0"
19551971

1956-
"@typescript-eslint/visitor-keys@7.18.0":
1957-
version "7.18.0"
1958-
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7"
1959-
integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==
1972+
"@typescript-eslint/visitor-keys@8.35.0":
1973+
version "8.35.0"
1974+
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.0.tgz#93e905e7f1e94d26a79771d1b1eb0024cb159dbf"
1975+
integrity sha512-zTh2+1Y8ZpmeQaQVIc/ZZxsx8UzgKJyNg1PTvjzC7WMhPSVS8bfDX34k1SrwOf016qd5RU3az2UxUNue3IfQ5g==
19601976
dependencies:
1961-
"@typescript-eslint/types" "7.18.0"
1962-
eslint-visitor-keys "^3.4.3"
1977+
"@typescript-eslint/types" "8.35.0"
1978+
eslint-visitor-keys "^4.2.1"
19631979

19641980
"@yarnpkg/lockfile@^1.1.0":
19651981
version "1.1.0"
@@ -3543,7 +3559,7 @@ [email protected]:
35433559
merge2 "^1.3.0"
35443560
micromatch "^4.0.4"
35453561

3546-
fast-glob@^3.2.9:
3562+
fast-glob@^3.2.9, fast-glob@^3.3.2:
35473563
version "3.3.3"
35483564
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
35493565
integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
@@ -3995,7 +4011,7 @@ globalthis@^1.0.1:
39954011
define-properties "^1.2.1"
39964012
gopd "^1.0.1"
39974013

3998-
[email protected], globby@^11.0.1, globby@^11.1.0:
4014+
[email protected], globby@^11.0.1:
39994015
version "11.1.0"
40004016
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
40014017
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
@@ -4214,11 +4230,16 @@ ignore-walk@^6.0.0:
42144230
dependencies:
42154231
minimatch "^9.0.0"
42164232

4217-
ignore@^5.0.4, ignore@^5.2.0, ignore@^5.3.1:
4233+
ignore@^5.0.4, ignore@^5.2.0:
42184234
version "5.3.2"
42194235
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
42204236
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
42214237

4238+
ignore@^7.0.0:
4239+
version "7.0.5"
4240+
resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9"
4241+
integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==
4242+
42224243
import-fresh@^3.2.1:
42234244
version "3.3.1"
42244245
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf"
@@ -7562,10 +7583,10 @@ trim-newlines@^3.0.0:
75627583
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
75637584
integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==
75647585

7565-
ts-api-utils@^1.3.0:
7566-
version "1.4.3"
7567-
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064"
7568-
integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==
7586+
ts-api-utils@^2.1.0:
7587+
version "2.1.0"
7588+
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91"
7589+
integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==
75697590

75707591
ts-jest@^29.1.1:
75717592
version "29.4.0"

0 commit comments

Comments
 (0)