From 68afe65eef316577025c6b24a524df20124077b4 Mon Sep 17 00:00:00 2001 From: Eric Fennis Date: Thu, 26 Feb 2026 15:17:44 +0100 Subject: [PATCH] Fix endpoints --- .../api/gh-icon/dpi/[...data].get.ts | 14 ++------ .../lib/SvgPreview/path-to-points.ts | 2 +- docs/.vitepress/lib/SvgPreview/utils.ts | 4 +-- docs/package.json | 2 +- pnpm-lock.yaml | 34 +++++-------------- 5 files changed, 14 insertions(+), 42 deletions(-) diff --git a/docs/.vitepress/api/gh-icon/dpi/[...data].get.ts b/docs/.vitepress/api/gh-icon/dpi/[...data].get.ts index bb8dca1e3..a910e30e2 100644 --- a/docs/.vitepress/api/gh-icon/dpi/[...data].get.ts +++ b/docs/.vitepress/api/gh-icon/dpi/[...data].get.ts @@ -1,17 +1,11 @@ -// import { eventHandler, setResponseHeader, defaultContentType } from 'h3'; -// import { Resvg, initWasm } from '@resvg/resvg-wasm'; import iconNodes from '../../../data/iconNodes'; -// import wasm from './loadWasm'; import { createElement } from 'react'; import { renderToStaticMarkup } from 'react-dom/server'; import createLucideIcon from 'lucide-react/src/createLucideIcon'; - -// var initializedResvg = initWasm(wasm); +import sharp from 'sharp'; export default eventHandler(async (event) => { const { params = {} } = event.context; - // await initializedResvg; - const imageSize = 96; const name = params.data.split('/').at(-3); const iconSizeString = params.data.split('/').at(-2); @@ -45,9 +39,7 @@ export default eventHandler(async (event) => { ) .replace(/<\/svg>/, ''); - // const resvg = new Resvg(svg, { background: '#000' }); - // const pngData = resvg.render(); - // const pngBuffer = Buffer.from(pngData.asPng()); + const pngBuffer = await sharp(Buffer.from(svg)).png().toBuffer(); defaultContentType(event, 'image/svg+xml'); setResponseHeader(event, 'Cache-Control', 'public,max-age=31536000'); @@ -67,7 +59,7 @@ export default eventHandler(async (event) => { diff --git a/docs/.vitepress/lib/SvgPreview/path-to-points.ts b/docs/.vitepress/lib/SvgPreview/path-to-points.ts index b16e359cb..28c6f3af8 100644 --- a/docs/.vitepress/lib/SvgPreview/path-to-points.ts +++ b/docs/.vitepress/lib/SvgPreview/path-to-points.ts @@ -1,4 +1,4 @@ -import memoize from 'lodash/memoize'; +import { memoize } from 'lodash-es'; import SVGPathCommander from 'svg-path-commander'; import { Path } from './types'; diff --git a/docs/.vitepress/lib/SvgPreview/utils.ts b/docs/.vitepress/lib/SvgPreview/utils.ts index 0ddbc9c82..22216de90 100644 --- a/docs/.vitepress/lib/SvgPreview/utils.ts +++ b/docs/.vitepress/lib/SvgPreview/utils.ts @@ -1,10 +1,8 @@ import { INode, parseSync } from 'svgson'; -// @ts-ignore import toPath from 'element-to-path'; -// @ts-ignore import { SVGPathData, encodeSVGPath } from 'svg-pathdata'; import { Path, Point } from './types'; -import memoize from 'lodash/memoize'; +import { memoize } from 'lodash-es'; function assertNever(x: never): never { throw new Error('Unknown type: ' + x['type']); diff --git a/docs/package.json b/docs/package.json index 2c6948856..caf12cc30 100644 --- a/docs/package.json +++ b/docs/package.json @@ -46,7 +46,6 @@ "element-to-path": "^1.2.1", "fuse.js": "^7.1.0", "jszip": "^3.10.1", - "lodash": "^4.17.23", "lodash-es": "^4.17.23", "lucide-react": "workspace:*", "lucide-vue-next": "workspace:*", @@ -54,6 +53,7 @@ "react-dom": "^18.3.1", "sandpack-vue3": "3.1.11", "semver": "^7.7.3", + "sharp": "^0.34.5", "shiki": "^3.15.0", "simple-git": "^3.30.0", "sitemap": "^7.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9cacddcb..ffde6caea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -139,9 +139,6 @@ importers: jszip: specifier: ^3.10.1 version: 3.10.1 - lodash: - specifier: ^4.17.23 - version: 4.17.23 lodash-es: specifier: ^4.17.23 version: 4.17.23 @@ -163,6 +160,9 @@ importers: semver: specifier: ^7.7.3 version: 7.7.3 + sharp: + specifier: ^0.34.5 + version: 0.34.5 shiki: specifier: ^3.15.0 version: 3.15.0 @@ -2571,12 +2571,6 @@ packages: '@emnapi/core@1.8.1': resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - - '@emnapi/runtime@1.7.1': - resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} - '@emnapi/runtime@1.8.1': resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} @@ -8579,11 +8573,11 @@ packages: glob@7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -16325,16 +16319,6 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.3': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.7.1': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.8.1': dependencies: tslib: 2.8.1 @@ -16833,8 +16817,7 @@ snapshots: '@iconify/types@2.0.0': {} - '@img/colour@1.0.0': - optional: true + '@img/colour@1.0.0': {} '@img/sharp-darwin-arm64@0.34.5': optionalDependencies: @@ -16918,7 +16901,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.7.1 + '@emnapi/runtime': 1.8.1 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -17332,7 +17315,7 @@ snapshots: '@napi-rs/wasm-runtime@0.2.9': dependencies: '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.8.1 '@tybys/wasm-util': 0.9.0 optional: true @@ -27249,7 +27232,6 @@ snapshots: '@img/sharp-win32-arm64': 0.34.5 '@img/sharp-win32-ia32': 0.34.5 '@img/sharp-win32-x64': 0.34.5 - optional: true shebang-command@2.0.0: dependencies: