diff --git a/.eslintrc.cjs b/.eslintrc.cjs index b734c520..98e6e4c8 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -28,8 +28,6 @@ module.exports = { rules: { "matrix-org/require-copyright-header": ["error", COPYRIGHT_HEADER], "jsx-a11y/media-has-caption": "off", - // We should use the js-sdk logger, never console directly. - "no-console": ["error"], "react/display-name": "error", // Encourage proper usage of Promises: "@typescript-eslint/no-floating-promises": "error", @@ -46,6 +44,15 @@ module.exports = { "rxjs/no-exposed-subjects": "error", "rxjs/finnish": ["error", { names: { "^this$": false } }], }, + overrides: [ + { + files: ["src/*/**"], + rules: { + // In application code we should use the js-sdk logger, never console directly. + "no-console": ["error"], + }, + }, + ], settings: { react: { version: "detect", diff --git a/i18next-parser.config.ts b/i18next-parser.config.ts index 3acf2b5e..10d748a8 100644 --- a/i18next-parser.config.ts +++ b/i18next-parser.config.ts @@ -1,4 +1,6 @@ -export default { +import type { UserConfig } from "i18next-parser"; + +const config: UserConfig = { keySeparator: ".", namespaceSeparator: false, contextSeparator: "|", @@ -26,3 +28,5 @@ export default { input: ["src/**/*.{ts,tsx}"], sort: true, }; + +export default config; diff --git a/knip.ts b/knip.ts index 2381356c..6b378e29 100644 --- a/knip.ts +++ b/knip.ts @@ -1,8 +1,15 @@ -import { KnipConfig } from "knip"; +/* +Copyright 2025 New Vector Ltd. + +SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial +Please see LICENSE in the repository root for full details. +*/ + +import { type KnipConfig } from "knip"; export default { vite: { - config: ["vite.config.js", "vite-embedded.config.js"], + config: ["vite.config.ts", "vite-embedded.config.ts"], }, entry: ["src/main.tsx", "i18next-parser.config.ts"], ignoreBinaries: [ diff --git a/src/livekit/BlurBackgroundTransformer.ts b/src/livekit/BlurBackgroundTransformer.ts index 72256fe1..c3d885ba 100644 --- a/src/livekit/BlurBackgroundTransformer.ts +++ b/src/livekit/BlurBackgroundTransformer.ts @@ -1,7 +1,7 @@ /* Copyright 2024-2025 New Vector Ltd. -SPDX-License-Identifier: AGPL-3.0-only +SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE in the repository root for full details. */ diff --git a/src/livekit/TrackProcessorContext.tsx b/src/livekit/TrackProcessorContext.tsx index a68d7535..b37a6e3e 100644 --- a/src/livekit/TrackProcessorContext.tsx +++ b/src/livekit/TrackProcessorContext.tsx @@ -1,7 +1,7 @@ /* -Copyright 2024 New Vector Ltd. +Copyright 2024-2025 New Vector Ltd. -SPDX-License-Identifier: AGPL-3.0-only +SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE in the repository root for full details. */ diff --git a/vite-embedded.config.js b/vite-embedded.config.ts similarity index 84% rename from vite-embedded.config.js rename to vite-embedded.config.ts index 8f5bcba8..27a42fbb 100644 --- a/vite-embedded.config.js +++ b/vite-embedded.config.ts @@ -1,7 +1,15 @@ +/* +Copyright 2025 New Vector Ltd. + +SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial +Please see LICENSE in the repository root for full details. +*/ + import { defineConfig, mergeConfig } from "vite"; -import fullConfig from "./vite.config"; import generateFile from "vite-plugin-generate-file"; +import fullConfig from "./vite.config"; + const base = "./"; // Config for embedded deployments (possibly hosted under a non-root path) diff --git a/vite.config.js b/vite.config.ts similarity index 92% rename from vite.config.js rename to vite.config.ts index 5fe3a99b..cfc80279 100644 --- a/vite.config.js +++ b/vite.config.ts @@ -5,7 +5,12 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE in the repository root for full details. */ -import { defineConfig, loadEnv, searchForWorkspaceRoot } from "vite"; +import { + loadEnv, + searchForWorkspaceRoot, + type ConfigEnv, + type UserConfig, +} from "vite"; import svgrPlugin from "vite-plugin-svgr"; import { createHtmlPlugin } from "vite-plugin-html"; import { codecovVitePlugin } from "@codecov/vite-plugin"; @@ -15,10 +20,14 @@ import { realpathSync } from "fs"; import * as fs from "node:fs"; // https://vitejs.dev/config/ -export default defineConfig(({ mode, packageType }) => { +// Modified type helper from defineConfig to allow for packageType (see defineConfig from vite) +export default ({ + mode, + packageType, +}: ConfigEnv & { packageType?: "full" | "embedded" }): UserConfig => { const env = loadEnv(mode, process.cwd()); // Environment variables with the VITE_ prefix are accessible at runtime. - // So, we set this to allow for build/package specific behaviour. + // So, we set this to allow for build/package specific behavior. // In future we might be able to do what is needed via code splitting at // build time. process.env.VITE_PACKAGE = packageType ?? "full"; @@ -93,7 +102,7 @@ export default defineConfig(({ mode, packageType }) => { sourcemap: true, rollupOptions: { output: { - assetFileNames: ({ originalFileNames }) => { + assetFileNames: ({ originalFileNames }): string => { if (originalFileNames) { for (const name of originalFileNames) { // Custom asset name for locales to include the locale code in the filename @@ -143,4 +152,4 @@ export default defineConfig(({ mode, packageType }) => { exclude: ["@matrix-org/matrix-sdk-crypto-wasm"], }, }; -}); +}; diff --git a/vitest.config.js b/vitest.config.ts similarity index 94% rename from vitest.config.js rename to vitest.config.ts index a6c3107f..1c6f746b 100644 --- a/vitest.config.js +++ b/vitest.config.ts @@ -1,5 +1,6 @@ import { defineConfig, mergeConfig } from "vitest/config"; -import viteConfig from "./vite.config.js"; + +import viteConfig from "./vite.config"; export default defineConfig((configEnv) => mergeConfig(