From ef4341a541045706fb494eff23ba63712e8440c7 Mon Sep 17 00:00:00 2001 From: Andrew Rumble Date: Thu, 11 Dec 2025 14:19:46 +0000 Subject: [PATCH] Merge pull request #30279 from overleaf/ar/add-esm-import-eslint-rules [monorepo] add esm import eslint rules GitOrigin-RevId: 5637bb1107aa034701cae2e37a85cc3d8d8036d2 --- services/web/.eslintrc.js | 2 ++ services/web/app/src/Features/Email/EmailSender.mjs | 2 +- .../analytics/backfill_recurly_to_subscription_mapping.mjs | 4 +++- .../analytics/backfill_stripe_to_subscription_mapping.mjs | 4 +++- .../web/scripts/learn/checkSanitize/checkSanitizeOptions.mjs | 2 +- services/web/test/unit/src/Email/EmailSender.test.mjs | 2 +- 6 files changed, 11 insertions(+), 5 deletions(-) diff --git a/services/web/.eslintrc.js b/services/web/.eslintrc.js index a9c98982da..1ad4157ef1 100644 --- a/services/web/.eslintrc.js +++ b/services/web/.eslintrc.js @@ -154,6 +154,8 @@ module.exports = { ignore: ['^p-queue$'], }, ], + 'import/named': 'error', + 'import/default': 'error', 'import/extensions': [ 'error', 'ignorePackages', diff --git a/services/web/app/src/Features/Email/EmailSender.mjs b/services/web/app/src/Features/Email/EmailSender.mjs index c960a4949a..82dbbc157d 100644 --- a/services/web/app/src/Features/Email/EmailSender.mjs +++ b/services/web/app/src/Features/Email/EmailSender.mjs @@ -3,7 +3,7 @@ import logger from '@overleaf/logger' import metrics from '@overleaf/metrics' import Settings from '@overleaf/settings' import nodemailer from 'nodemailer' -import aws from '@aws-sdk/client-ses' +import * as aws from '@aws-sdk/client-ses' import OError from '@overleaf/o-error' import { RateLimiter } from '../../infrastructure/RateLimiter.mjs' import _ from 'lodash' diff --git a/services/web/scripts/analytics/backfill_recurly_to_subscription_mapping.mjs b/services/web/scripts/analytics/backfill_recurly_to_subscription_mapping.mjs index e6fe6b7958..92b0835944 100644 --- a/services/web/scripts/analytics/backfill_recurly_to_subscription_mapping.mjs +++ b/services/web/scripts/analytics/backfill_recurly_to_subscription_mapping.mjs @@ -17,10 +17,12 @@ import { z } from 'zod' import { batchedUpdate } from '@overleaf/mongo-utils/batchedUpdate.js' import { db } from '../../app/src/infrastructure/mongodb.mjs' import AccountMappingHelper from '../../app/src/Features/Analytics/AccountMappingHelper.mjs' -import { registerAccountMapping } from '../../app/src/Features/Analytics/AnalyticsManager.mjs' +import AnalyticsManager from '../../app/src/Features/Analytics/AnalyticsManager.mjs' import { triggerGracefulShutdown } from '../../app/src/infrastructure/GracefulShutdown.mjs' import { scriptRunner } from '../lib/ScriptRunner.mjs' +const { registerAccountMapping } = AnalyticsManager + const paramsSchema = z.object({ endDate: z.string().datetime(), commit: z.boolean().default(false), diff --git a/services/web/scripts/analytics/backfill_stripe_to_subscription_mapping.mjs b/services/web/scripts/analytics/backfill_stripe_to_subscription_mapping.mjs index 572b426cb3..380e3d5fc6 100644 --- a/services/web/scripts/analytics/backfill_stripe_to_subscription_mapping.mjs +++ b/services/web/scripts/analytics/backfill_stripe_to_subscription_mapping.mjs @@ -16,11 +16,13 @@ import minimist from 'minimist' import { batchedUpdate } from '@overleaf/mongo-utils/batchedUpdate.js' import { db } from '../../app/src/infrastructure/mongodb.mjs' import AccountMappingHelper from '../../app/src/Features/Analytics/AccountMappingHelper.mjs' -import { registerAccountMapping } from '../../app/src/Features/Analytics/AnalyticsManager.mjs' +import AnalyticsManager from '../../app/src/Features/Analytics/AnalyticsManager.mjs' import { gracefulShutdown } from '../../app/src/infrastructure/GracefulShutdown.mjs' import Validation from '../../app/src/infrastructure/Validation.mjs' import { scriptRunner } from '../lib/ScriptRunner.mjs' +const { registerAccountMapping } = AnalyticsManager + const paramsSchema = Validation.z.object({ endDate: Validation.z.iso .date() diff --git a/services/web/scripts/learn/checkSanitize/checkSanitizeOptions.mjs b/services/web/scripts/learn/checkSanitize/checkSanitizeOptions.mjs index 6d1adc2708..a702a4846e 100644 --- a/services/web/scripts/learn/checkSanitize/checkSanitizeOptions.mjs +++ b/services/web/scripts/learn/checkSanitize/checkSanitizeOptions.mjs @@ -4,7 +4,7 @@ import Path from 'node:path' import cheerio from 'cheerio' // checkSanitizeOptions is only used in dev env // eslint-disable-next-line import/no-extraneous-dependencies -import prettier from 'prettier' +import * as prettier from 'prettier' import sanitizeHtml from 'sanitize-html' import { sanitizeOptions } from '../../../modules/learn/app/src/sanitizeOptions.mjs' import { fileURLToPath } from 'node:url' diff --git a/services/web/test/unit/src/Email/EmailSender.test.mjs b/services/web/test/unit/src/Email/EmailSender.test.mjs index 81cd742d9b..35d94356bf 100644 --- a/services/web/test/unit/src/Email/EmailSender.test.mjs +++ b/services/web/test/unit/src/Email/EmailSender.test.mjs @@ -39,7 +39,7 @@ describe('EmailSender', function () { })) vi.doMock('@aws-sdk/client-ses', () => ({ - default: { SESClient: ctx.SESClient }, + SESClient: ctx.SESClient, })) vi.doMock('@overleaf/settings', () => ({