From cc1462f09a9521cc225c23c61dceb4ec8435d54a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D1=80=D0=BE=D0=B2=D1=81=D0=BA=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Thu, 10 Jul 2025 01:41:45 +0300 Subject: [PATCH 1/3] chore(*): delete legacy code arui-feather --- packages/arui-scripts/docs/modules.md | 3 +-- .../src/configs/server-externals-exemptions.ts | 1 - .../configs/util/__tests__/get-polyfills.tests.ts | 15 --------------- .../src/configs/util/get-polyfills.ts | 10 ---------- 4 files changed, 1 insertion(+), 28 deletions(-) diff --git a/packages/arui-scripts/docs/modules.md b/packages/arui-scripts/docs/modules.md index 0825e47f..78c561b9 100644 --- a/packages/arui-scripts/docs/modules.md +++ b/packages/arui-scripts/docs/modules.md @@ -459,8 +459,7 @@ Webpack module federation делает абсолютно то же самое, - **---** Нет возможности использовать модуль в приложении, которое не использует webpack. Проблема изоляции стилей может быть решена с помощью [shadow dom](#shadow-dom), -или с помощью css modules. Но это накладывает некоторые ограничения либо на поддерживаемые браузеры (shadow dom), либо на -существующую кодовую базу (css modules должны использоваться везде, если у вас будет две версии arui-feather на странице - будет не очень приятно). +или с помощью css modules. Но это накладывает некоторые ограничения либо на поддерживаемые браузеры (shadow dom), либо на существующую кодовую базу (css modules должны использоваться везде). `compat` модули: - **+++** Встроенная изоляция стилей. Стили модуля не будут применены к хост-приложению, если только вы не захотите этого. diff --git a/packages/arui-scripts/src/configs/server-externals-exemptions.ts b/packages/arui-scripts/src/configs/server-externals-exemptions.ts index 45905218..b95fe915 100644 --- a/packages/arui-scripts/src/configs/server-externals-exemptions.ts +++ b/packages/arui-scripts/src/configs/server-externals-exemptions.ts @@ -1,7 +1,6 @@ import { applyOverrides } from './util/apply-overrides'; export const serverExternalsExemptions = applyOverrides('serverExternalsExemptions', [ - /^arui-feather/, /^arui-ft-private/, /^arui-private/, /^alfaform-core-ui/, diff --git a/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts b/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts index 03b4c384..18833859 100644 --- a/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts +++ b/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts @@ -32,21 +32,6 @@ describe('getPolyfills', () => { expect(polyfills).toMatchObject([]); }); - it('should add feather polyfills when original config is empty and feather polyfills is available', () => { - const appConfig: Partial = { - clientPolyfillsEntry: null, - }; - const requireResolve = jest.fn(() => 'feather-polyfills-path'); - - const polyfills = getPolyfills( - appConfig as AppConfigs, - requireResolve as unknown as typeof require.resolve, - ); - - expect(polyfills).toMatchObject(['feather-polyfills-path']); - expect(requireResolve).toHaveBeenCalledWith('arui-feather/polyfills'); - }); - it('should not add feather polyfills when original config has any polyfills', () => { const appConfig: Partial = { clientPolyfillsEntry: [], diff --git a/packages/arui-scripts/src/configs/util/get-polyfills.ts b/packages/arui-scripts/src/configs/util/get-polyfills.ts index 91e6b900..3156a560 100644 --- a/packages/arui-scripts/src/configs/util/get-polyfills.ts +++ b/packages/arui-scripts/src/configs/util/get-polyfills.ts @@ -9,16 +9,6 @@ export function getPolyfills(config: AppConfigs, requireResolve = require.resolv polyfills.push(...config.clientPolyfillsEntry); } else if (config.clientPolyfillsEntry) { polyfills.push(config.clientPolyfillsEntry); - } else { - // Для сохранения обратной совместимости нам надо добавлять полифилы из физера только тогда, когда пользователь - // не задал свои кастомные полифилы. - try { - const aruiPolyfills = requireResolve('arui-feather/polyfills'); - - polyfills.push(aruiPolyfills); - } catch (error) { - // just ignore it - } } return polyfills; From 2562b34f0670d174a572215df610ddfd0d64be41 Mon Sep 17 00:00:00 2001 From: Aleksandr Kitov Date: Mon, 11 Aug 2025 18:44:28 +0300 Subject: [PATCH 2/3] chore(*): add changeset for feather removal --- .changeset/clever-papayas-flash.md | 10 ++++++++++ packages/arui-scripts/docs/settings.md | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/clever-papayas-flash.md diff --git a/.changeset/clever-papayas-flash.md b/.changeset/clever-papayas-flash.md new file mode 100644 index 00000000..fd4f4114 --- /dev/null +++ b/.changeset/clever-papayas-flash.md @@ -0,0 +1,10 @@ +--- +'arui-scripts': major +--- + +1. Удалено подключение полифилов из arui-feather. +2. arui-feather удален из списка `serverExternalsExemptions`. + +Если вы по какой-то причине хотите вернуть это поведение: +1. Вы можете использовать настройку `clientPolyfillsEntry`, передав туда путь до файла с полифилами (`./node_modules/arui-feather/polyfills.js`) +2. Вы можете использовать оверрайд для `serverExternalsExemptions` и добавить туда regex для feather: `/^arui-feather/`. diff --git a/packages/arui-scripts/docs/settings.md b/packages/arui-scripts/docs/settings.md index 49b1f054..a08e2ebe 100644 --- a/packages/arui-scripts/docs/settings.md +++ b/packages/arui-scripts/docs/settings.md @@ -142,7 +142,7 @@ export default settings; Имя файла для компиляции сервера, по умолчанию `server.js` #### clientPolyfillsEntry -Точка входа для полифилов. Будет подключаться до основной точки входа. По умолчанию подтягивает полифилы из arui-feather, если он установлен. +Точка входа для полифилов. Будет подключаться до основной точки входа. #### clientEntry Точка входа для клиентского приложения. По умолчанию `./src/index`. From 40837cd871bcec9bd7b48c17ea3aabe3c99834a2 Mon Sep 17 00:00:00 2001 From: Aleksandr Kitov Date: Mon, 11 Aug 2025 18:49:33 +0300 Subject: [PATCH 3/3] fix(get-polyfills): linter fix --- .../configs/util/__tests__/get-polyfills.tests.ts | 15 --------------- .../src/configs/util/get-polyfills.ts | 4 +--- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts b/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts index 18833859..733afbfb 100644 --- a/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts +++ b/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts @@ -31,19 +31,4 @@ describe('getPolyfills', () => { expect(polyfills).toMatchObject([]); }); - - it('should not add feather polyfills when original config has any polyfills', () => { - const appConfig: Partial = { - clientPolyfillsEntry: [], - }; - const requireResolve = jest.fn(() => 'feather-polyfills-path'); - - const polyfills = getPolyfills( - appConfig as AppConfigs, - requireResolve as unknown as typeof require.resolve, - ); - - expect(polyfills).toMatchObject([]); - expect(requireResolve).not.toHaveBeenCalled(); - }); }); diff --git a/packages/arui-scripts/src/configs/util/get-polyfills.ts b/packages/arui-scripts/src/configs/util/get-polyfills.ts index 3156a560..285937df 100644 --- a/packages/arui-scripts/src/configs/util/get-polyfills.ts +++ b/packages/arui-scripts/src/configs/util/get-polyfills.ts @@ -1,8 +1,6 @@ import { AppConfigs } from '../app-configs/types'; -// require.resolve вынесен как параметр функции для того, чтоб это можно было протестировать. -// на данный момент jest не дает возможности мокать require.resolve https://github.com/facebook/jest/issues/9543 -export function getPolyfills(config: AppConfigs, requireResolve = require.resolve) { +export function getPolyfills(config: AppConfigs) { const polyfills: string[] = []; if (config.clientPolyfillsEntry && Array.isArray(config.clientPolyfillsEntry)) {