From dadbbd4ab050834bfe90f4fcc7a6f30bbe8803f9 Mon Sep 17 00:00:00 2001 From: Gerald Date: Tue, 7 Jan 2025 16:48:09 +0800 Subject: [PATCH] Revert "fix: improve sourcemap support" This reverts commit 5065082928f0db94182e53bef1ef8cda102463a6. --- package.json | 4 ++-- pnpm-lock.yaml | 20 ++++++++++---------- src/index.ts | 28 ++++++---------------------- 3 files changed, 18 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 89d1647..8936533 100644 --- a/package.json +++ b/package.json @@ -38,10 +38,10 @@ }, "dependencies": { "@babel/runtime": "^7.23.7", - "@jridgewell/sourcemap-codec": "^1.5.0", "@rollup/pluginutils": "^5.1.0", "estree-walker": "^3.0.3", - "is-reference": "^3.0.2" + "is-reference": "^3.0.2", + "magic-string": "^0.30.7" }, "devDependencies": { "@gera2ld/plaid": "~2.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index edff230..83f5e2a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,9 +11,6 @@ importers: '@babel/runtime': specifier: ^7.23.7 version: 7.23.7 - '@jridgewell/sourcemap-codec': - specifier: ^1.5.0 - version: 1.5.0 '@rollup/pluginutils': specifier: ^5.1.0 version: 5.1.0(rollup@4.9.2) @@ -23,6 +20,9 @@ importers: is-reference: specifier: ^3.0.2 version: 3.0.2 + magic-string: + specifier: ^0.30.7 + version: 0.30.7 devDependencies: '@gera2ld/plaid': specifier: ~2.7.0 @@ -960,8 +960,8 @@ packages: '@jridgewell/source-map@0.3.5': resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} '@jridgewell/trace-mapping@0.3.20': resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} @@ -4919,7 +4919,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.1': {} @@ -4931,17 +4931,17 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.4.15': {} '@jridgewell/trace-mapping@0.3.20': dependencies: '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -6925,7 +6925,7 @@ snapshots: magic-string@0.30.7: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 make-dir@4.0.0: dependencies: diff --git a/src/index.ts b/src/index.ts index 171dc3e..3702827 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,5 @@ -import { encode } from '@jridgewell/sourcemap-codec'; import { readFile } from 'fs/promises'; +import MagicString from 'magic-string'; import type { Plugin } from 'rollup'; import { collectGmApi, getMetadata } from './util'; @@ -32,7 +32,7 @@ export default (transform?: (metadata: string) => string): Plugin => { * Use `renderChunk` instead of `banner` to preserve the metadata after minimization. * Note that this plugin must be put after `@rollup/plugin-terser`. */ - async renderChunk(code, chunk, options) { + async renderChunk(code, chunk) { const metadataFile = chunk.isEntry && [chunk.facadeModuleId, ...Object.keys(chunk.modules)] @@ -51,27 +51,11 @@ export default (transform?: (metadata: string) => string): Plugin => { } metadata = getMetadata(metadata, grantSet); if (transform) metadata = transform(metadata); - let map = null; - - if (options.sourcemap) { - const mappings = [ - ...Array.from(metadata.split('\n'), () => []), - [], - ...Array.from(code.split('\n'), () => [[0, 0, 0, 0]]), - ]; - map = { - version: 3, - file: chunk.fileName, - sources: [chunk.fileName], - sourcesContent: [code], - names: [], - mappings: encode(mappings), - }; - } - + const s = new MagicString(code); + s.prepend(`${metadata}\n\n`); return { - code: `${metadata}\n\n${code}`, - map, + code: s.toString(), + map: s.generateMap({ hires: 'boundary' }).toString(), }; }, };