From c5d89b53d86e57ca06608be830e493b6f14ee3fd Mon Sep 17 00:00:00 2001 From: Tom Ratcliffe Date: Fri, 6 Dec 2024 11:23:41 +0000 Subject: [PATCH] fix(frontend): make linting work with cjs util file --- eslint.config.cjs | 8 ++++++-- public/test/setupTests.ts | 4 ++-- scripts/webpack/{env-util.ts => env-util.cjs} | 14 +++++++++----- vite.config.ts | 2 +- 4 files changed, 18 insertions(+), 10 deletions(-) rename scripts/webpack/{env-util.ts => env-util.cjs} (74%) diff --git a/eslint.config.cjs b/eslint.config.cjs index 04de7a04766..9250426012c 100644 --- a/eslint.config.cjs +++ b/eslint.config.cjs @@ -14,9 +14,13 @@ const grafanaConfig = require('@grafana/eslint-config/flat'); const grafanaPlugin = require('@grafana/eslint-plugin'); const bettererConfig = require('./.betterer.eslint.config.cjs'); -const { getEnvConfig } = require('./scripts/webpack/env-util'); +const getEnvConfig = require('./scripts/webpack/env-util.cjs'); -const { frontend_dev_betterer_eslint_rules: enableBettererRules } = getEnvConfig(); +/** + * @type {Record<`frontend_dev_${string}`, unknown>} + */ +const frontendEnvConfig = getEnvConfig(); +const enableBettererRules = frontendEnvConfig.frontend_dev_betterer_eslint_rules; /** * @type {Array} diff --git a/public/test/setupTests.ts b/public/test/setupTests.ts index 36409b29346..302c53fedd7 100644 --- a/public/test/setupTests.ts +++ b/public/test/setupTests.ts @@ -7,11 +7,11 @@ import i18next from 'i18next'; import failOnConsole from 'jest-fail-on-console'; import { initReactI18next } from 'react-i18next'; -import { getEnvConfig } from '../../scripts/webpack/env-util.js'; +import getEnvConfig from '../../scripts/webpack/env-util.cjs'; import { matchers } from './matchers'; -const config = getEnvConfig(); +const config = getEnvConfig() as Record<`frontend_dev_${string}`, unknown>; if (config.frontend_dev_fail_tests_on_console || process.env.CI) { failOnConsole({ diff --git a/scripts/webpack/env-util.ts b/scripts/webpack/env-util.cjs similarity index 74% rename from scripts/webpack/env-util.ts rename to scripts/webpack/env-util.cjs index 471013cfa3c..c963f476fee 100644 --- a/scripts/webpack/env-util.ts +++ b/scripts/webpack/env-util.cjs @@ -1,8 +1,9 @@ -import { parse } from 'ini'; -import { readFileSync, existsSync } from 'node:fs'; -import path from 'path'; +// @ts-check +const { parse } = require('ini'); +const { readFileSync, existsSync } = require('node:fs'); +const path = require('path'); -export const getEnvConfig = () => { +const getEnvConfig = () => { const grafanaRoot = path.join(__dirname, '../..'); const defaultSettings = readFileSync(`${grafanaRoot}/conf/defaults.ini`, { encoding: 'utf-8', @@ -21,7 +22,8 @@ export const getEnvConfig = () => { // Take all frontend keys from the ini file and prefix with `frontend_dev_`, // so they can be added to `process.env` elsewhere - const env: Record = {}; + /** @type {Record} */ + const env = {}; for (const [key, value] of Object.entries(merged)) { env[`frontend_dev_${key}`] = value; @@ -29,3 +31,5 @@ export const getEnvConfig = () => { return env; }; + +module.exports = getEnvConfig; diff --git a/vite.config.ts b/vite.config.ts index 99f09e3368c..85d6e03ab6f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -8,7 +8,7 @@ import { visualizer } from 'rollup-plugin-visualizer'; import { defineConfig, splitVendorChunkPlugin, createLogger } from 'vite'; import EnvironmentPlugin from 'vite-plugin-environment'; -import { getEnvConfig } from './scripts/webpack/env-util.js'; +import getEnvConfig from './scripts/webpack/env-util.cjs'; const require = createRequire(import.meta.url); const shouldMinify = process.env.NO_MINIFY === '1' ? false : 'esbuild';