From 0f8c3bf7397732a5efa6fbfe24c466ed2e3b50c3 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Wed, 25 Aug 2021 01:11:32 +0800 Subject: [PATCH] fix: generate sourcemap --- package.json | 1 + pnpm-lock.yaml | 4 ++-- src/core/transform.ts | 11 ++++++++++- test/transform.test.ts | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 2071a41..5ded0a2 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "dependencies": { "@antfu/utils": "^0.2.4", "@rollup/pluginutils": "^4.1.1", + "magic-string": "^0.25.7", "unplugin": "^0.0.8" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f09c86..2507b4a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,6 +16,7 @@ importers: esno: ^0.9.1 fast-glob: ^3.2.7 jest: ^27.0.6 + magic-string: ^0.25.7 rimraf: ^3.0.2 rollup: ^2.56.3 ts-jest: ^27.0.5 @@ -27,6 +28,7 @@ importers: dependencies: '@antfu/utils': 0.2.4 '@rollup/pluginutils': 4.1.1 + magic-string: 0.25.7 unplugin: 0.0.8_362c3429a3f67cc77545194e98d7a345 devDependencies: '@antfu/eslint-config': 0.7.0_eslint@7.32.0+typescript@4.3.5 @@ -8062,7 +8064,6 @@ packages: resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} dependencies: sourcemap-codec: 1.4.8 - dev: true /make-dir/1.3.0: resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} @@ -10775,7 +10776,6 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - dev: true /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} diff --git a/src/core/transform.ts b/src/core/transform.ts index 2c76c0f..b64bd4d 100644 --- a/src/core/transform.ts +++ b/src/core/transform.ts @@ -1,3 +1,4 @@ +import MagicString from 'magic-string' import { ImportInfo, TransformOptions } from '../types' const excludeRegex = [ @@ -41,5 +42,13 @@ export function transform(code: string, id: string, { matchRE, imports }: Transf }) .join('') - return importStatements + code + const s = new MagicString(code) + s.prependLeft(0, importStatements) + + return { + code: s.toString(), + get map() { + return s.generateMap() + }, + } } diff --git a/test/transform.test.ts b/test/transform.test.ts index 7e06826..98c5b36 100644 --- a/test/transform.test.ts +++ b/test/transform.test.ts @@ -28,7 +28,7 @@ describe('transform', () => { for (const file of files) { it(file, async() => { const fixture = await fs.readFile(resolve(root, file), 'utf-8') - expect(transform(fixture, file, options)).toMatchSnapshot() + expect(transform(fixture, file, options).code).toMatchSnapshot() }) } })