diff --git a/packages/docusaurus-plugin-client-redirects/package.json b/packages/docusaurus-plugin-client-redirects/package.json index ca2b54a2690d..2da1673a2987 100644 --- a/packages/docusaurus-plugin-client-redirects/package.json +++ b/packages/docusaurus-plugin-client-redirects/package.json @@ -23,7 +23,7 @@ "@docusaurus/utils": "3.10.1", "@docusaurus/utils-common": "3.10.1", "@docusaurus/utils-validation": "3.10.1", - "eta": "^2.2.0", + "eta": "^4.0.1", "fs-extra": "^11.2.0", "lodash": "^4.17.21", "tslib": "^2.6.0" diff --git a/packages/docusaurus-plugin-client-redirects/src/createRedirectPageContent.ts b/packages/docusaurus-plugin-client-redirects/src/createRedirectPageContent.ts index a1282956e9b5..440af3658c62 100644 --- a/packages/docusaurus-plugin-client-redirects/src/createRedirectPageContent.ts +++ b/packages/docusaurus-plugin-client-redirects/src/createRedirectPageContent.ts @@ -6,9 +6,11 @@ */ import _ from 'lodash'; -import * as eta from 'eta'; +import {Eta} from 'eta'; import redirectPageTemplate from './templates/redirectPage.template.html'; +const eta = new Eta(); + const getCompiledRedirectPageTemplate = _.memoize(() => eta.compile(redirectPageTemplate.trim()), ); @@ -18,7 +20,7 @@ function renderRedirectPageTemplate(data: { searchAnchorForwarding: boolean; }) { const compiled = getCompiledRedirectPageTemplate(); - return compiled(data, eta.defaultConfig); + return eta.render(compiled, data); } // if the target url does not include ?search#anchor, diff --git a/packages/docusaurus-plugin-client-redirects/src/deps.d.ts b/packages/docusaurus-plugin-client-redirects/src/deps.d.ts index 90ace5ffd5e8..b5c0e33b4a5b 100644 --- a/packages/docusaurus-plugin-client-redirects/src/deps.d.ts +++ b/packages/docusaurus-plugin-client-redirects/src/deps.d.ts @@ -4,13 +4,3 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ - -// TODO incompatible declaration file -declare module 'eta' { - export const defaultConfig: object; - - export function compile( - template: string, - options?: object, - ): (data: object, config: object) => string; -} diff --git a/packages/docusaurus-theme-search-algolia/package.json b/packages/docusaurus-theme-search-algolia/package.json index c370b0b9de8d..3e0ff8b075e9 100644 --- a/packages/docusaurus-theme-search-algolia/package.json +++ b/packages/docusaurus-theme-search-algolia/package.json @@ -46,7 +46,7 @@ "algoliasearch": "^5.51.0", "algoliasearch-helper": "^3.28.2", "clsx": "^2.0.0", - "eta": "^2.2.0", + "eta": "^4.0.1", "fs-extra": "^11.2.0", "lodash": "^4.17.21", "tslib": "^2.6.0", diff --git a/packages/docusaurus-theme-search-algolia/src/deps.d.ts b/packages/docusaurus-theme-search-algolia/src/deps.d.ts index fd64b8228382..1b69f16b7850 100644 --- a/packages/docusaurus-theme-search-algolia/src/deps.d.ts +++ b/packages/docusaurus-theme-search-algolia/src/deps.d.ts @@ -8,13 +8,3 @@ declare module '@docsearch/react/modal'; declare module '@docsearch/react/style'; - -// TODO incompatible declaration file -declare module 'eta' { - export const defaultConfig: object; - - export function compile( - template: string, - options?: object, - ): (data: object, config: object) => string; -} diff --git a/packages/docusaurus-theme-search-algolia/src/opensearch.ts b/packages/docusaurus-theme-search-algolia/src/opensearch.ts index f802e4e09448..6ff7c95bc0be 100644 --- a/packages/docusaurus-theme-search-algolia/src/opensearch.ts +++ b/packages/docusaurus-theme-search-algolia/src/opensearch.ts @@ -8,15 +8,17 @@ import path from 'path'; import fs from 'fs-extra'; import _ from 'lodash'; -import {defaultConfig, compile} from 'eta'; +import {Eta} from 'eta'; import {normalizeUrl} from '@docusaurus/utils'; import openSearchTemplate from './templates/opensearch'; import type {HtmlTags, LoadContext} from '@docusaurus/types'; import type {ThemeConfig} from '@docusaurus/theme-search-algolia'; +const eta = new Eta(); + const getCompiledOpenSearchTemplate = _.memoize(() => - compile(openSearchTemplate.trim()), + eta.compile(openSearchTemplate.trim()), ); function renderOpenSearchTemplate(data: { @@ -26,7 +28,7 @@ function renderOpenSearchTemplate(data: { faviconUrl: string | null; }) { const compiled = getCompiledOpenSearchTemplate(); - return compiled(data, defaultConfig); + return eta.render(compiled, data); } const OPEN_SEARCH_FILENAME = 'opensearch.xml'; diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index d32fb86d13c1..05ca194297c2 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -49,7 +49,7 @@ "core-js": "^3.31.1", "detect-port": "^2.1.0", "escape-html": "^1.0.3", - "eta": "^2.2.0", + "eta": "^4.0.1", "eval": "^0.1.8", "execa": "^10.0.0", "fs-extra": "^11.2.0", diff --git a/packages/docusaurus/src/deps.d.ts b/packages/docusaurus/src/deps.d.ts index e14603a3de88..2ad7dfcb1bb1 100644 --- a/packages/docusaurus/src/deps.d.ts +++ b/packages/docusaurus/src/deps.d.ts @@ -37,13 +37,3 @@ declare module 'webpack/lib/HotModuleReplacementPlugin' { export default HotModuleReplacementPlugin; } - -// TODO incompatible declaration file -declare module 'eta' { - export const defaultConfig: object; - - export function compile( - template: string, - options?: object, - ): (data: object, config: object) => string; -} diff --git a/packages/docusaurus/src/ssg/ssgTemplate.ts b/packages/docusaurus/src/ssg/ssgTemplate.ts index 101f996ea59c..59964ddcd059 100644 --- a/packages/docusaurus/src/ssg/ssgTemplate.ts +++ b/packages/docusaurus/src/ssg/ssgTemplate.ts @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import * as eta from 'eta'; +import {Eta} from 'eta'; import {getBundles} from 'react-loadable-ssr-addon-v5-slorber'; import {PerfLogger} from '@docusaurus/logger'; import type {SSGParams} from './ssgParams'; @@ -35,11 +35,10 @@ export type SSGTemplateCompiled = (data: SSGTemplateData) => string; export async function compileSSGTemplate( template: string, ): Promise { - const compiledTemplate = eta.compile(template.trim(), { - rmWhitespace: true, - }); + const eta = new Eta({rmWhitespace: true}); + const compiledTemplate = eta.compile(template.trim()); - return (data: SSGTemplateData) => compiledTemplate(data, eta.defaultConfig); + return (data: SSGTemplateData) => eta.render(compiledTemplate, data); } /** diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 18a664ad4dc9..ea50188ac178 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -386,8 +386,8 @@ importers: specifier: ^1.0.3 version: 1.0.3 eta: - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^4.0.1 + version: 4.6.0 eval: specifier: ^0.1.8 version: 0.1.8 @@ -886,8 +886,8 @@ importers: specifier: 3.10.1 version: link:../docusaurus-utils-validation eta: - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^4.0.1 + version: 4.6.0 fs-extra: specifier: ^11.2.0 version: 11.3.5 @@ -1805,8 +1805,8 @@ importers: specifier: ^2.0.0 version: 2.1.1 eta: - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^4.0.1 + version: 4.6.0 fs-extra: specifier: ^11.2.0 version: 11.3.5 @@ -8304,10 +8304,6 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - eta@2.2.0: - resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} - engines: {node: '>=6.0.0'} - eta@4.6.0: resolution: {integrity: sha512-lW6is4T1NFOYnmqGZIfvixqj7A7sSvScF+DN8EK6K58xI5MZ5UvYe0GjopxOXQtZvUn4eDdVuZ8XSoYWTMEKwA==} engines: {node: '>=20'} @@ -20490,8 +20486,6 @@ snapshots: esutils@2.0.3: {} - eta@2.2.0: {} - eta@4.6.0: {} etag@1.8.1: {}