diff --git a/package.json b/package.json index 893a38bf1..087762c1d 100644 --- a/package.json +++ b/package.json @@ -162,6 +162,7 @@ "muggle-string": "^0.4.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", + "rolldown-string": "^0.2.1", "scule": "^1.3.0", "tinyglobby": "^0.2.15", "unplugin": "^2.3.11", @@ -206,7 +207,7 @@ "rollup": "^4.53.3", "semver": "^7.7.3", "ts-expect": "^1.3.0", - "tsdown": "0.17.4", + "tsdown": "0.18.0", "typescript": "^5.9.3", "unplugin-auto-import": "^20.3.0", "unplugin-vue-markdown": "^29.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 713d4c304..e7786b77d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,6 +47,9 @@ importers: picomatch: specifier: ^4.0.3 version: 4.0.3 + rolldown-string: + specifier: ^0.2.1 + version: 0.2.1 scule: specifier: ^1.3.0 version: 1.3.0 @@ -145,8 +148,8 @@ importers: specifier: ^1.3.0 version: 1.3.0 tsdown: - specifier: 0.17.4 - version: 0.17.4(typescript@5.9.3)(vue-tsc@3.1.8(typescript@5.9.3)) + specifier: 0.18.0 + version: 0.18.0(typescript@5.9.3)(vue-tsc@3.1.8(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5466,6 +5469,10 @@ packages: vue-tsc: optional: true + rolldown-string@0.2.1: + resolution: {integrity: sha512-7H8oH5A8+L96pbBTPCt/rZrwayEhZY5/ejhdk9nRODH32H1v7+bfkaCr+kS15DcGQ7VC1HcWdQVNABFYgrMOzg==} + engines: {node: '>=20.19.0'} + rolldown@1.0.0-beta.10-commit.87188ed: resolution: {integrity: sha512-D+iim+DHIwK9kbZvubENmtnYFqHfFV0OKwzT8yU/W+xyUK1A71+iRFmJYBGqNUo3fJ2Ob4oIQfan63mhzh614A==} hasBin: true @@ -5914,8 +5921,8 @@ packages: ts-expect@1.3.0: resolution: {integrity: sha512-e4g0EJtAjk64xgnFPD6kTBUtpnMVzDrMb12N1YZV0VvSlhnVT3SGxiYTLdGy8Q5cYHOIC/FAHmZ10eGrAguicQ==} - tsdown@0.17.4: - resolution: {integrity: sha512-z+kNuv1rwM1POQIufDUVrdNc/uGy0ueRVafCyDH39IdHxin4JXgB8DNGSPoqdIpcOpqUoRbNreK8NxENFmlhKw==} + tsdown@0.18.0: + resolution: {integrity: sha512-Yotdh3NzizysnqR96xfpHFYtEntk1cZvSRHz8A+Pn3ZHNdTQa4fBQxh6HHzWZwfjdQv47xb7GCv6vEWMtxBirw==} engines: {node: '>=20.19.0'} hasBin: true peerDependencies: @@ -12420,6 +12427,10 @@ snapshots: transitivePeerDependencies: - oxc-resolver + rolldown-string@0.2.1: + dependencies: + magic-string: 0.30.21 + rolldown@1.0.0-beta.10-commit.87188ed: dependencies: '@oxc-project/runtime': 0.72.1 @@ -12954,7 +12965,7 @@ snapshots: ts-expect@1.3.0: {} - tsdown@0.17.4(typescript@5.9.3)(vue-tsc@3.1.8(typescript@5.9.3)): + tsdown@0.18.0(typescript@5.9.3)(vue-tsc@3.1.8(typescript@5.9.3)): dependencies: ansis: 4.2.0 cac: 6.7.14 diff --git a/src/data-loaders/auto-exports.ts b/src/data-loaders/auto-exports.ts index 2462e3b3b..2674c93b2 100644 --- a/src/data-loaders/auto-exports.ts +++ b/src/data-loaders/auto-exports.ts @@ -1,6 +1,6 @@ import { createFilter } from 'unplugin-utils' import type { Plugin } from 'vite' -import MagicString from 'magic-string' +import { withMagicString } from 'rolldown-string' import { findStaticImports, parseStaticImport } from 'mlly' import { resolve } from 'pathe' import { StringFilter, type UnpluginOptions } from 'unplugin' @@ -79,21 +79,15 @@ export function AutoExportLoaders({ id: transformFilter, }, - handler(code) { + handler: withMagicString((s) => { + const code = s.toString() const loadersToExports = extractLoadersToExport(code, filterPaths, root) - if (loadersToExports.length <= 0) return - const s = new MagicString(code) s.append( `\nexport const __loaders = [\n${loadersToExports.join(',\n')}\n];\n` ) - - return { - code: s.toString(), - map: s.generateMap(), - } - }, + }), }, } } diff --git a/tsdown.config.ts b/tsdown.config.ts index 4a8c116d4..c38608ce1 100644 --- a/tsdown.config.ts +++ b/tsdown.config.ts @@ -1,4 +1,4 @@ -import { defineConfig, type Options } from 'tsdown' +import { defineConfig, type UserConfig } from 'tsdown' export const commonOptions = { format: ['cjs', 'esm'], @@ -10,7 +10,7 @@ export const commonOptions = { '@pinia/colada', 'pinia', ], -} satisfies Options +} satisfies UserConfig export default defineConfig([ {