Skip to content

Commit 10d3d2e

Browse files
authored
Merge pull request #41 from EmbeddedEnterprises/lint
fix: add Biome for linting + fix issues
2 parents 1bd9583 + 664959c commit 10d3d2e

21 files changed

+102
-78
lines changed

.eslintrc.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"extends": "eslint-config-atomic",
3-
"ignorePatterns": ["build/", "dist/", "node_modules/", "coverage/"],
3+
"ignorePatterns": ["build/", "dist/", "node_modules/", "coverage/", "stats.html", ".cache/", ".turbo/"],
44
"overrides": [
55
{
6-
"files": ["*.ts"],
6+
"files": ["**/*.ts"],
77
"rules": {
88
"no-empty-function": "off",
99
"@typescript-eslint/no-empty-function": "error",

.gitattributes

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# line endings
2+
* text=auto eol=lf
3+
*.{cmd,[cC][mM][dD]} text eol=crlf
4+
*.{bat,[bB][aA][tT]} text eol=crlf
5+
*.{vcxproj,vcxproj.filters} text eol=crlf

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ stats.html
77
.tmp/
88
coverage/
99
.turbo/
10+
.cache/

.prettierignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
pnpm-lock.yaml
22
node_modules
33
package.json
4+
.cache/
5+
.turbo/

biome.jsonc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"**/dist/**",
88
"**/build/**",
99
"**/.*cache/",
10+
"**/.turbo/**",
1011
"coverage/",
1112
"**/coverage/"
1213
],

package.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,18 @@
3737
"bin": "build/main.js",
3838
"scripts": {
3939
"clean": "shx rm -rf build",
40-
"lint": "turbo run lint.turbo",
41-
"lint.turbo": "eslint . --cache \"./**/*.{js,ts,mjs,mts,cjs,cts,json,yaml,yml}\" --fix",
42-
"test.lint": "turbo run test.turbo",
43-
"test.lint.turbo": "eslint . --cache \"./**/*.{js,ts,mjs,mts,cjs,cts,json,yaml,yml}\"",
44-
"format.prettier": "prettier -l --write --cache ./**/*.{yaml,yml,md}",
40+
"lint.eslint": "eslint . --cache --cache-location ./.cache/.eslintcache \"./**/*.{js,ts,mjs,mts,cjs,cts,json,yaml,yml}\" --fix",
41+
"lint.biome": "biome check --write --unsafe .",
42+
"lint": "turbo run lint.eslint lint.biome",
43+
"test.lint.eslint": "eslint . --cache --cache-location ./.cache/.eslintcache \"./**/*.{js,ts,mjs,mts,cjs,cts,json,yaml,yml}\"",
44+
"test.lint.biome": "biome check .",
45+
"test.lint": "turbo run test.lint.eslint test.lint.biome",
46+
"format.prettier": "prettier -l --write --cache --cache-location ./.cache/.prettiercache \"./**/*.{yaml,yml,md}\"",
4547
"format.biome": "biome format --write .",
46-
"format": "run-p format.prettier format.biome",
47-
"test.format.prettier": "prettier -l --check --cache ./**/*.{yaml,yml,md}",
48+
"format": "turbo run format.prettier format.biome",
49+
"test.format.prettier": "prettier -l --check --cache --cache-location ./.cache/.prettiercache \"./**/*.{yaml,yml,md}\"",
4850
"test.format.biome": "biome format --check .",
49-
"test.format": "run-p test.format.prettier test.format.biome",
51+
"test.format": "turbo run test.format.prettier test.format.biome",
5052
"dev.tsc": "tsc -w --pretty",
5153
"dev.legacy-main": "vite --mode legacy-main",
5254
"dev.legacy-lib": "vite --mode legacy-lib",
@@ -58,8 +60,7 @@
5860
"build.legacy-lib": "vite build --mode legacy-lib",
5961
"build.modern-main": "vite build --mode modern-main",
6062
"build.modern-lib": "vite build --mode modern-lib",
61-
"build": "turbo run build.turbo",
62-
"build.turbo": "",
63+
"build": "turbo run build.tsc build.legacy-main build.legacy-lib build.modern-main build.modern-lib",
6364
"test": "cross-env NODE_OPTIONS=--enable-source-maps pnpx vitest --watch false",
6465
"coverage": "pnpm test --coverage"
6566
},

src/argumentBuilder.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { BuildConfigurationDefaulted, BuildOptionsDefaulted } from "./lib"
2-
import { RuntimeDistribution } from "./runtimeDistribution"
31
import { join, resolve } from "path"
4-
import { getPathsForConfig } from "./urlRegistry"
5-
import { getNodeApiInclude } from "./nodeAPIInclude"
2+
import type { BuildConfigurationDefaulted, BuildOptionsDefaulted } from "./lib.js"
3+
import { getNodeApiInclude } from "./nodeAPIInclude/index.js"
4+
import type { RuntimeDistribution } from "./runtimeDistribution.js"
5+
import { getPathsForConfig } from "./urlRegistry.js"
66

77
export class ArgumentBuilder {
88
constructor(
@@ -48,7 +48,7 @@ export class ArgumentBuilder {
4848
}
4949
} else if (this.config.os === "darwin") {
5050
// Darwin can't link against node, so skip it.
51-
retVal.push(["CMAKE_JS_CXX_FLAGS", `-undefined dynamic_lookup`])
51+
retVal.push(["CMAKE_JS_CXX_FLAGS", "-undefined dynamic_lookup"])
5252
}
5353

5454
// Search headers, modern node versions have those in /include/node
@@ -100,14 +100,14 @@ export class ArgumentBuilder {
100100
retVal.push(["CMAKE_JS_DEFINES", this.config.additionalDefines.join(";")])
101101

102102
if (this.options.globalCMakeOptions && this.options.globalCMakeOptions.length > 0) {
103-
this.options.globalCMakeOptions.forEach((j) => {
103+
for (const j of this.options.globalCMakeOptions) {
104104
retVal.push([j.name, j.value.replace(/\$ROOT\$/g, resolve(this.options.packageDirectory))])
105-
})
105+
}
106106
}
107107
if (this.config.CMakeOptions && this.config.CMakeOptions.length > 0) {
108-
this.config.CMakeOptions.forEach((j) => {
108+
for (const j of this.config.CMakeOptions) {
109109
retVal.push([j.name, j.value.replace(/\$ROOT\$/g, resolve(this.options.packageDirectory))])
110-
})
110+
}
111111
}
112112
return retVal
113113
}

src/download.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { DownloaderHelper } from "node-downloader-helper"
21
import crypto from "crypto"
2+
import { tmpdir } from "os"
3+
import { basename, dirname, join } from "path"
34
import { ensureDir, readFile, remove } from "fs-extra"
5+
import { DownloaderHelper } from "node-downloader-helper"
6+
import type { ExtractOptions as TarExtractOptions } from "tar"
47
import extractTar from "tar/lib/extract.js"
5-
import { basename, dirname, join } from "path"
6-
import { tmpdir } from "os"
7-
import { ExtractOptions as TarExtractOptions } from "tar"
88

99
export type HashType = "sha256" | "sha512" | "sha1" | "md5" | "sha384" | "sha224"
1010

src/lib.ts

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import which from "which"
2-
import { getCmakeGenerator } from "./util"
3-
import { BuildMode } from "./buildMode"
2+
import type { BuildMode } from "./buildMode.js"
3+
import { getCmakeGenerator } from "./util.js"
44

55
export type ArrayOrSingle<T> = T | T[]
66

@@ -57,8 +57,7 @@ export function defaultBuildConfiguration(config: BuildConfiguration): BuildConf
5757
if (config.CMakeOptions === undefined) {
5858
config.CMakeOptions = []
5959
}
60-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
61-
if ((config as any).cmakeOptions !== undefined) {
60+
if ("cmakeOptions" in config && config.cmakeOptions !== undefined) {
6261
console.warn("cmakeOptions was specified which was disabled in the 0.3.0 release. Please rename it to CMakeOptions")
6362
}
6463

@@ -142,7 +141,7 @@ export async function defaultBuildOptions(configs: BuildOptions, buildmode: Buil
142141
}
143142
configs.configurations = configs.configurations.filter((j) => j.os === process.platform)
144143
if (configs.configurations.length === 0) {
145-
console.error(`No configuration left to build!`)
144+
console.error("No configuration left to build!")
146145
process.exit(1)
147146
}
148147
for (const config of configs.configurations) {
@@ -174,12 +173,12 @@ export async function defaultBuildOptions(configs: BuildOptions, buildmode: Buil
174173
console.error("No `configurations` entry was found in the package.json")
175174
process.exit(1)
176175
}
177-
//unnamed configs are always filtered out
178-
configs.configurations = configs.configurations.filter((config) =>
179-
config.name !== undefined ? buildmode.configsToBuild.includes(config.name) : false,
180-
)
176+
// unnamed configs are always filtered out
177+
configs.configurations = configs.configurations.filter((config) => {
178+
return config.name !== undefined ? buildmode.configsToBuild.includes(config.name) : false
179+
})
181180
if (configs.configurations.length === 0) {
182-
console.error(`No configuration left to build!`)
181+
console.error("No configuration left to build!")
183182
process.exit(1)
184183
}
185184
}
@@ -270,9 +269,11 @@ export async function defaultBuildOptions(configs: BuildOptions, buildmode: Buil
270269
console.warn("`buildType` was missing. Considering 'Release'")
271270
}
272271

273-
configs.configurations?.forEach((v) => {
274-
v.additionalDefines = []
275-
})
272+
if (configs.configurations) {
273+
for (const v of configs.configurations) {
274+
v.additionalDefines = []
275+
}
276+
}
276277

277278
// TODO move the code related to globalCMakeOptions
278279
// TODO move the code related to nodeAPI

src/main.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22

33
/* eslint-disable node/shebang */
44

5-
import { BuildOptions, defaultBuildOptions, defaultBuildConfiguration } from "./lib"
65
import { join, resolve } from "path"
7-
import { RuntimeDistribution } from "./runtimeDistribution"
8-
import { ArgumentBuilder } from "./argumentBuilder"
9-
import { getEnvVar, run } from "./util"
10-
import { ensureDir, remove, copy, pathExists, readJson } from "fs-extra"
11-
import { applyOverrides } from "./override"
12-
import { determineBuildMode } from "./buildMode"
6+
import { copy, ensureDir, pathExists, readJson, remove } from "fs-extra"
7+
import { ArgumentBuilder } from "./argumentBuilder.js"
8+
import { determineBuildMode } from "./buildMode.js"
9+
import { type BuildOptions, defaultBuildConfiguration, defaultBuildOptions } from "./lib.js"
10+
import { applyOverrides } from "./override.js"
11+
import { RuntimeDistribution } from "./runtimeDistribution.js"
12+
import { getEnvVar, run } from "./util.js"
1313

1414
const DEBUG_LOG = getEnvVar("CMAKETSDEBUG")
1515

1616
async function main(): Promise<void> {
1717
const argv = process.argv.slice(2) //Yeah, we don't need advanced command line handling yet
18-
let packJson: { "cmake-ts": BuildOptions | undefined } & Record<string, any> // eslint-disable-line @typescript-eslint/no-explicit-any
18+
let packJson: { "cmake-ts": BuildOptions | undefined } & Record<string, unknown>
1919
try {
2020
// TODO getting the path from the CLI
2121
const packageJsonPath = resolve(join(process.cwd(), "package.json"))
@@ -129,7 +129,7 @@ async function main(): Promise<void> {
129129
await ensureDir(targetDir)
130130
if (configs.generatorToUse.includes("Visual Studio")) {
131131
if (DEBUG_LOG !== undefined) {
132-
console.log(`Applying copy fix for MSVC projects`)
132+
console.log("Applying copy fix for MSVC projects")
133133
}
134134
await copy(
135135
join(stagingDir, configs.buildType, `${configs.projectName}.node`),

0 commit comments

Comments
 (0)