From 7068c4f4b3d5aaf735c6cfd1f0e42f078af323b0 Mon Sep 17 00:00:00 2001 From: Anton Golub Date: Fri, 10 Oct 2025 16:30:02 +0300 Subject: [PATCH 1/3] ci: enable oxlint --- .github/workflows/ci.yaml | 2 +- package-lock.json | 148 ++++++++++++++++++++++++++++++++++++++ package.json | 3 +- src/main/ts/core.ts | 2 +- src/test/ts/core.test.ts | 2 +- target/esm/core.mjs | 2 +- 6 files changed, 154 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e62e53d..26954cb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -112,7 +112,7 @@ jobs: GIT_COMMITTER_EMAIL: ${{ vars.GIT_COMMITTER_EMAIL }} run: | npx ggcp target/coverage/lcov.info target/coverage/${{ github.sha }}.lcov.info - npx ggcp target/coverage/*.info https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git/coverage/ --message='chore: add coverage for ${{ github.sha }}' + npx ggcp target/coverage/*.info https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git/coverage/./ --message='chore: add coverage for ${{ github.sha }}' npx ggcp target/docs https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git/gh-pages --message='chore: update docs' smoke-node: diff --git a/package-lock.json b/package-lock.json index 830a5ee..4cef7cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "fast-glob": "^3.3.3", "jsr": "^0.13.5", "minimist": "^1.2.8", + "oxlint": "^1.22.0", "playwright": "^1.55.0", "size-limit": "^11.2.0", "typedoc": "^0.28.13", @@ -693,6 +694,118 @@ "node": ">= 8" } }, + "node_modules/@oxlint/darwin-arm64": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@oxlint/darwin-arm64/-/darwin-arm64-1.22.0.tgz", + "integrity": "sha512-vfgwTA1CowVaU3QXFBjfGjbPsHbdjAiJnWX5FBaq8uXS8tksGgl0ue14MK6fVnXncWK9j69LRnkteGTixxDAfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oxlint/darwin-x64": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@oxlint/darwin-x64/-/darwin-x64-1.22.0.tgz", + "integrity": "sha512-70x7Y+e0Ddb2Cf2IZsYGnXZrnB/MZgOTi/VkyXZucbnQcpi2VoaYS4Ve662DaNkzvTxdKOGmyJVMmD/digdJLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oxlint/linux-arm64-gnu": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-gnu/-/linux-arm64-gnu-1.22.0.tgz", + "integrity": "sha512-Rv94lOyEV8WEuzhjJSpCW3DbL/tlOVizPxth1v5XAFuQdM5rgpOMs3TsAf/YFUn52/qenwVglyvQZL8oAUYlpg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxlint/linux-arm64-musl": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-musl/-/linux-arm64-musl-1.22.0.tgz", + "integrity": "sha512-Aau6V6Osoyb3SFmRejP3rRhs1qhep4aJTdotFf1RVMVSLJkF7Ir0p+eGZSaIJyylFZuCCxHpud3hWasphmZnzw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxlint/linux-x64-gnu": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-gnu/-/linux-x64-gnu-1.22.0.tgz", + "integrity": "sha512-6eOtv+2gHrKw/hxUkV6hJdvYhzr0Dqzb4oc7sNlWxp64jU6I19tgMwSlmtn02r34YNSn+/NpZ/ECvQrycKUUFQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxlint/linux-x64-musl": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-musl/-/linux-x64-musl-1.22.0.tgz", + "integrity": "sha512-c4O7qD7TCEfPE/FFKYvakF2sQoIP0LFZB8F5AQK4K9VYlyT1oENNRCdIiMu6irvLelOzJzkUM0XrvUCL9Kkxrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxlint/win32-arm64": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@oxlint/win32-arm64/-/win32-arm64-1.22.0.tgz", + "integrity": "sha512-6DJwF5A9VoIbSWNexLYubbuteAL23l3YN00wUL7Wt4ZfEZu2f/lWtGB9yC9BfKLXzudq8MvGkrS0szmV0bc1VQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@oxlint/win32-x64": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@oxlint/win32-x64/-/win32-x64-1.22.0.tgz", + "integrity": "sha512-nf8EZnIUgIrHlP9k26iOFMZZPoJG16KqZBXu5CG5YTAtVcu4CWlee9Q/cOS/rgQNGjLF+WPw8sVA5P3iGlYGQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -2472,6 +2585,41 @@ "url": "https://github.com/sponsors/antelle" } }, + "node_modules/oxlint": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.22.0.tgz", + "integrity": "sha512-/HYT1Cfanveim9QUM6KlPKJe9y+WPnh3SxIB7z1InWnag9S0nzxLaWEUiW1P4UGzh/No3KvtNmBv2IOiwAl2/w==", + "dev": true, + "license": "MIT", + "bin": { + "oxc_language_server": "bin/oxc_language_server", + "oxlint": "bin/oxlint" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxlint/darwin-arm64": "1.22.0", + "@oxlint/darwin-x64": "1.22.0", + "@oxlint/linux-arm64-gnu": "1.22.0", + "@oxlint/linux-arm64-musl": "1.22.0", + "@oxlint/linux-x64-gnu": "1.22.0", + "@oxlint/linux-x64-musl": "1.22.0", + "@oxlint/win32-arm64": "1.22.0", + "@oxlint/win32-x64": "1.22.0" + }, + "peerDependencies": { + "oxlint-tsgolint": ">=0.2.0" + }, + "peerDependenciesMeta": { + "oxlint-tsgolint": { + "optional": true + } + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", diff --git a/package.json b/package.json index fdc4eab..39ce4e9 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "test": "concurrently 'npm:test:*'", "test:target": "git diff --exit-code --quiet || (echo 'Uncommitted changes' && exit 1)", "test:size": "size-limit", - "_test:lint": "eslint -c src/test/lint/.eslintrc.json src", + "test:lint": "oxlint", "test:unit": "vitest run --coverage --config ./vitest.config.js", "test:jsr": "jsr publish --dry-run", "test:audit": "npm audit", @@ -78,6 +78,7 @@ "fast-glob": "^3.3.3", "jsr": "^0.13.5", "minimist": "^1.2.8", + "oxlint": "^1.22.0", "playwright": "^1.55.0", "size-limit": "^11.2.0", "typedoc": "^0.28.13", diff --git a/src/main/ts/core.ts b/src/main/ts/core.ts index bf632fc..d1e32c4 100644 --- a/src/main/ts/core.ts +++ b/src/main/ts/core.ts @@ -567,7 +567,7 @@ export const isV6Format: Checker = (addr: string): boolean => { try { return Address.from(addr).family === 6 - } catch (e) { + } catch { return false } } diff --git a/src/test/ts/core.test.ts b/src/test/ts/core.test.ts index d10bbc8..f19624a 100644 --- a/src/test/ts/core.test.ts +++ b/src/test/ts/core.test.ts @@ -269,7 +269,7 @@ describe('extra', () => { // buffer inputs [Buffer.from([0, 0, 0, 1]), {big: 1n, family: 4}], - [Buffer.from(new Array(16).fill(0)), {big: 0n, family: 6}], + [Buffer.from(Array(16).fill(0)), {big: 0n, family: 6}], [Buffer.alloc(5), /Invalid buffer length/], // Array inputs diff --git a/target/esm/core.mjs b/target/esm/core.mjs index 54ef3d2..555bad1 100644 --- a/target/esm/core.mjs +++ b/target/esm/core.mjs @@ -500,7 +500,7 @@ var isV6Format = (addr) => { if (!`${addr}`.includes(":")) return false; try { return Address.from(addr).family === 6; - } catch (e) { + } catch { return false; } }; From 06c71dd74e05a1cf162f20befe8c4182e899cb38 Mon Sep 17 00:00:00 2001 From: Anton Golub Date: Fri, 10 Oct 2025 16:34:54 +0300 Subject: [PATCH 2/3] chore: linting --- src/main/ts/native.ts | 3 ++- src/main/ts/polyfill.ts | 2 +- src/scripts/build.mjs | 3 +-- target/cjs/index.cjs | 3 ++- target/esm/index.mjs | 3 ++- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/ts/native.ts b/src/main/ts/native.ts index 9f6fe60..c601211 100644 --- a/src/main/ts/native.ts +++ b/src/main/ts/native.ts @@ -26,7 +26,8 @@ export const addresses = (kind?: string, family: FamilyAlias = 4): string[] => { const nic = interfaces[kind] if (!nic) return [] const match = nic.find(details => normalizeFamily(details.family) === fam) - return [match?.address!] + if (!match) return [] + return [match.address] } // scan all NICs diff --git a/src/main/ts/polyfill.ts b/src/main/ts/polyfill.ts index 2557ae5..35d6f5b 100644 --- a/src/main/ts/polyfill.ts +++ b/src/main/ts/polyfill.ts @@ -10,7 +10,7 @@ export interface BufferLike extends Omit { export const FakeBuffer = { alloc: (size: number, fill: number = 0): BufferLike => { if (size < 0) - throw new RangeError('The value of \"size\" is out of range.') + throw new RangeError('The value of "size" is out of range.') const arr = new Uint8Array(size) if (fill !== 0) diff --git a/src/scripts/build.mjs b/src/scripts/build.mjs index 9fa0711..bef2c04 100644 --- a/src/scripts/build.mjs +++ b/src/scripts/build.mjs @@ -6,7 +6,6 @@ import { nodeExternalsPlugin } from 'esbuild-node-externals' import { entryChunksPlugin } from 'esbuild-plugin-entry-chunks' import { transformHookPlugin } from 'esbuild-plugin-transform-hook' import { extractHelpersPlugin } from 'esbuild-plugin-extract-helpers' -import { injectFile } from 'esbuild-plugin-utils' import minimist from 'minimist' import glob from 'fast-glob' import path from "node:path"; @@ -59,7 +58,7 @@ const cjsPlugins = [ { on: 'end', pattern: entryPointsToRegexp(entryPoints), - transform(contents, p) { + transform(contents) { return contents .toString() .replaceAll('"node:', '"') diff --git a/target/cjs/index.cjs b/target/cjs/index.cjs index 04a30e4..84e122a 100644 --- a/target/cjs/index.cjs +++ b/target/cjs/index.cjs @@ -65,7 +65,8 @@ var addresses = (kind, family = 4) => { const nic = interfaces[kind]; if (!nic) return []; const match = nic.find((details) => normalizeFamily(details.family) === fam); - return [match == null ? void 0 : match.address]; + if (!match) return []; + return [match.address]; } const all = Object.values(interfaces).reduce((acc, nic) => { for (const { family: family2, address: address2 } of nic != null ? nic : []) { diff --git a/target/esm/index.mjs b/target/esm/index.mjs index 03ef6eb..7e1abf0 100644 --- a/target/esm/index.mjs +++ b/target/esm/index.mjs @@ -35,7 +35,8 @@ var addresses = (kind, family = 4) => { const nic = interfaces[kind]; if (!nic) return []; const match = nic.find((details) => normalizeFamily(details.family) === fam); - return [match == null ? void 0 : match.address]; + if (!match) return []; + return [match.address]; } const all = Object.values(interfaces).reduce((acc, nic) => { for (const { family: family2, address: address2 } of nic != null ? nic : []) { From efcaf3958795b7c88ef76663ee404fc021cd632d Mon Sep 17 00:00:00 2001 From: Anton Golub Date: Fri, 10 Oct 2025 16:36:05 +0300 Subject: [PATCH 3/3] chore: up dev deps --- .size-limit.json | 2 +- package-lock.json | 40 ++++++++++++++++++++-------------------- package.json | 6 +++--- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.size-limit.json b/.size-limit.json index 8d48905..02f2520 100644 --- a/.size-limit.json +++ b/.size-limit.json @@ -32,7 +32,7 @@ "LICENSE", "package-main.json" ], - "limit": "18.32 kB", + "limit": "18.30 kB", "gzip": true }, { diff --git a/package-lock.json b/package-lock.json index 4cef7cf..4fd23b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "devDependencies": { "@size-limit/file": "^11.2.0", - "@types/node": "^24.5.2", + "@types/node": "^24.7.1", "@vitest/browser": "^3.2.4", "@vitest/coverage-v8": "^3.2.4", "concurrently": "^9.2.1", @@ -24,10 +24,10 @@ "jsr": "^0.13.5", "minimist": "^1.2.8", "oxlint": "^1.22.0", - "playwright": "^1.55.0", + "playwright": "^1.56.0", "size-limit": "^11.2.0", "typedoc": "^0.28.13", - "typescript": "^5.9.2", + "typescript": "^5.9.3", "vitest": "^3.2.4" }, "engines": { @@ -1270,13 +1270,13 @@ } }, "node_modules/@types/node": { - "version": "24.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.2.tgz", - "integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==", + "version": "24.7.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.1.tgz", + "integrity": "sha512-CmyhGZanP88uuC5GpWU9q+fI61j2SkhO3UGMUdfYRE6Bcy0ccyzn1Rqj9YAB/ZY4kOXmNf0ocah5GtphmLMP6Q==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.12.0" + "undici-types": "~7.14.0" } }, "node_modules/@types/unist": { @@ -2734,13 +2734,13 @@ } }, "node_modules/playwright": { - "version": "1.55.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.1.tgz", - "integrity": "sha512-cJW4Xd/G3v5ovXtJJ52MAOclqeac9S/aGGgRzLabuF8TnIb6xHvMzKIa6JmrRzUkeXJgfL1MhukP0NK6l39h3A==", + "version": "1.56.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.0.tgz", + "integrity": "sha512-X5Q1b8lOdWIE4KAoHpW3SE8HvUB+ZZsUoN64ZhjnN8dOb1UpujxBtENGiZFE+9F/yhzJwYa+ca3u43FeLbboHA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.55.1" + "playwright-core": "1.56.0" }, "bin": { "playwright": "cli.js" @@ -2753,9 +2753,9 @@ } }, "node_modules/playwright-core": { - "version": "1.55.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.1.tgz", - "integrity": "sha512-Z6Mh9mkwX+zxSlHqdr5AOcJnfp+xUWLCt9uKV18fhzA8eyxUd8NUWzAjxUh55RZKSYwDGX0cfaySdhZJGMoJ+w==", + "version": "1.56.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.0.tgz", + "integrity": "sha512-1SXl7pMfemAMSDn5rkPeZljxOCYAmQnYLBTExuh6E8USHXGSX3dx6lYZN/xPpTz1vimXmPA9CDnILvmJaB8aSQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -3416,9 +3416,9 @@ } }, "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -3437,9 +3437,9 @@ "license": "MIT" }, "node_modules/undici-types": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.12.0.tgz", - "integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz", + "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 39ce4e9..db16a40 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ }, "devDependencies": { "@size-limit/file": "^11.2.0", - "@types/node": "^24.5.2", + "@types/node": "^24.7.1", "@vitest/browser": "^3.2.4", "@vitest/coverage-v8": "^3.2.4", "concurrently": "^9.2.1", @@ -79,10 +79,10 @@ "jsr": "^0.13.5", "minimist": "^1.2.8", "oxlint": "^1.22.0", - "playwright": "^1.55.0", + "playwright": "^1.56.0", "size-limit": "^11.2.0", "typedoc": "^0.28.13", - "typescript": "^5.9.2", + "typescript": "^5.9.3", "vitest": "^3.2.4" }, "keywords": [