From fe2286cb762ad645cc0e02e0813765df8284d023 Mon Sep 17 00:00:00 2001 From: Mikhail Bashkirov Date: Thu, 31 Aug 2023 02:40:04 +0200 Subject: [PATCH] fix: @parcel/source-map default import --- packages/estransform/build.js | 5 ++++ .../lib/parcel-source-map-default.cjs | 3 +++ packages/estransform/lib/sourcemaps.js | 8 ++++--- packages/estransform/modules.d.ts | 24 ------------------- 4 files changed, 13 insertions(+), 27 deletions(-) create mode 100644 packages/estransform/lib/parcel-source-map-default.cjs diff --git a/packages/estransform/build.js b/packages/estransform/build.js index 5a00ab0f..1839cc52 100644 --- a/packages/estransform/build.js +++ b/packages/estransform/build.js @@ -12,4 +12,9 @@ esbuild.build({ external: [ '@parcel/source-map', ], + banner: { + js: `import { createRequire as __moduleCreateRequire } from 'module'; +const require = __moduleCreateRequire(import.meta.url); +`, + }, }); diff --git a/packages/estransform/lib/parcel-source-map-default.cjs b/packages/estransform/lib/parcel-source-map-default.cjs new file mode 100644 index 00000000..aa56ddca --- /dev/null +++ b/packages/estransform/lib/parcel-source-map-default.cjs @@ -0,0 +1,3 @@ +// we need to require the module for compatibility with the default export +// eslint-disable-next-line @typescript-eslint/no-var-requires +module.exports = require('@parcel/source-map').default; diff --git a/packages/estransform/lib/sourcemaps.js b/packages/estransform/lib/sourcemaps.js index ab1c8dbe..7d2fe2a4 100644 --- a/packages/estransform/lib/sourcemaps.js +++ b/packages/estransform/lib/sourcemaps.js @@ -1,8 +1,6 @@ import { readFile } from 'fs/promises'; import path from 'path'; -import sourceMapDefault from '@parcel/source-map'; - -const { default: SourceMapNode } = sourceMapDefault; +import SourceMapNode from './parcel-source-map-default.cjs'; const SOURCEMAP_REGEX = /(?:(\/\*+\s*?sourceMappingURL\s*=)([\s\S]*?)(\*\/))|(?:(\/\/#?\s*?sourceMappingURL\s*=)(.*?)([\r\n]|$))/; @@ -17,6 +15,10 @@ const SOURCEMAP_REGEX = /(?:(\/\*+\s*?sourceMappingURL\s*=)([\s\S]*?)(\*\/))|(?: * @property {string} [file] */ +/** + * @typedef {import('@parcel/source-map').default} SourceMapNode + */ + /** * @param {string} map * @returns {SourceMap} diff --git a/packages/estransform/modules.d.ts b/packages/estransform/modules.d.ts index 22f15d01..3837a55b 100644 --- a/packages/estransform/modules.d.ts +++ b/packages/estransform/modules.d.ts @@ -1,27 +1,3 @@ -declare type SourceMap = { - version?: number; - sources: string[]; - names: string[]; - sourceRoot?: string; - sourcesContent?: string[]; - mappings: string; - file?: string; -}; - -declare module '@parcel/source-map' { - class SourceMapNode { - setSourceContent(filename: string, contents: string); - addVLQMap(mapping: SourceMap); - extends(buffer: Buffer|SourceMapNode); - toVLQ(): SourceMap; - toBuffer(): Buffer; - } - - export default { - default: SourceMapNode, - }; -}; - declare module 'sucrase/dist/parser/index.js' { export { File, parse } from 'sucrase'; }