UNPKG

@sentry/esbuild-plugin

Version:
1 lines 20.9 kB
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import {\n sentryUnpluginFactory,\n Options,\n getDebugIdSnippet,\n SentrySDKBuildFlags,\n} from \"@sentry/bundler-plugin-core\";\nimport type { Logger } from \"@sentry/bundler-plugin-core\";\nimport type { UnpluginOptions } from \"unplugin\";\nimport * as path from \"path\";\n\nimport { v4 as uuidv4 } from \"uuid\";\n\nfunction esbuildReleaseInjectionPlugin(injectionCode: string): UnpluginOptions {\n const pluginName = \"sentry-esbuild-release-injection-plugin\";\n const virtualReleaseInjectionFilePath = path.resolve(\"_sentry-release-injection-stub\"); // needs to be an absolute path for older eslint versions\n\n return {\n name: pluginName,\n\n esbuild: {\n setup({ initialOptions, onLoad, onResolve }) {\n initialOptions.inject = initialOptions.inject || [];\n initialOptions.inject.push(virtualReleaseInjectionFilePath);\n\n onResolve({ filter: /_sentry-release-injection-stub/ }, (args) => {\n return {\n path: args.path,\n sideEffects: true,\n pluginName,\n };\n });\n\n onLoad({ filter: /_sentry-release-injection-stub/ }, () => {\n return {\n loader: \"js\",\n pluginName,\n contents: injectionCode,\n };\n });\n },\n },\n };\n}\n\nfunction esbuildDebugIdInjectionPlugin(logger: Logger): UnpluginOptions {\n const pluginName = \"sentry-esbuild-debug-id-injection-plugin\";\n const stubNamespace = \"sentry-debug-id-stub\";\n\n return {\n name: pluginName,\n\n esbuild: {\n setup({ initialOptions, onLoad, onResolve }) {\n if (!initialOptions.bundle) {\n logger.warn(\n \"The Sentry esbuild plugin only supports esbuild with `bundle: true` being set in the esbuild build options. Esbuild will probably crash now. Sorry about that. If you need to upload sourcemaps without `bundle: true`, it is recommended to use Sentry CLI instead: https://docs.sentry.io/platforms/javascript/sourcemaps/uploading/cli/\"\n );\n }\n\n onResolve({ filter: /.*/ }, (args) => {\n if (args.kind !== \"entry-point\") {\n return;\n } else {\n // Injected modules via the esbuild `inject` option do also have `kind == \"entry-point\"`.\n // We do not want to inject debug IDs into those files because they are already bundled into the entrypoints\n if (initialOptions.inject?.includes(args.path)) {\n return;\n }\n\n return {\n pluginName,\n // needs to be an abs path, otherwise esbuild will complain\n path: path.isAbsolute(args.path) ? args.path : path.join(args.resolveDir, args.path),\n pluginData: {\n isProxyResolver: true,\n originalPath: args.path,\n originalResolveDir: args.resolveDir,\n },\n // We need to add a suffix here, otherwise esbuild will mark the entrypoint as resolved and won't traverse\n // the module tree any further down past the proxy module because we're essentially creating a dependency\n // loop back to the proxy module.\n // By setting a suffix we're telling esbuild that the entrypoint and proxy module are two different things,\n // making it re-resolve the entrypoint when it is imported from the proxy module.\n // Super confusing? Yes. Works? Apparently... Let's see.\n suffix: \"?sentryProxyModule=true\",\n };\n }\n });\n\n onLoad({ filter: /.*/ }, (args) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!(args.pluginData?.isProxyResolver as undefined | boolean)) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const originalPath = args.pluginData.originalPath as string;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const originalResolveDir = args.pluginData.originalResolveDir as string;\n\n return {\n loader: \"js\",\n pluginName,\n // We need to use JSON.stringify below so that any escape backslashes stay escape backslashes, in order not to break paths on windows\n contents: `\n import \"_sentry-debug-id-injection-stub\";\n import * as OriginalModule from ${JSON.stringify(originalPath)};\n export default OriginalModule.default;\n export * from ${JSON.stringify(originalPath)};`,\n resolveDir: originalResolveDir,\n };\n });\n\n onResolve({ filter: /_sentry-debug-id-injection-stub/ }, (args) => {\n return {\n path: args.path,\n sideEffects: true,\n pluginName,\n namespace: stubNamespace,\n suffix: \"?sentry-module-id=\" + uuidv4(), // create different module, each time this is resolved\n };\n });\n\n onLoad({ filter: /_sentry-debug-id-injection-stub/, namespace: stubNamespace }, () => {\n return {\n loader: \"js\",\n pluginName,\n contents: getDebugIdSnippet(uuidv4()),\n };\n });\n },\n },\n };\n}\n\nfunction esbuildModuleMetadataInjectionPlugin(injectionCode: string): UnpluginOptions {\n const pluginName = \"sentry-esbuild-module-metadata-injection-plugin\";\n const stubNamespace = \"sentry-module-metadata-stub\";\n\n return {\n name: pluginName,\n\n esbuild: {\n setup({ initialOptions, onLoad, onResolve }) {\n onResolve({ filter: /.*/ }, (args) => {\n if (args.kind !== \"entry-point\") {\n return;\n } else {\n // Injected modules via the esbuild `inject` option do also have `kind == \"entry-point\"`.\n // We do not want to inject debug IDs into those files because they are already bundled into the entrypoints\n if (initialOptions.inject?.includes(args.path)) {\n return;\n }\n\n return {\n pluginName,\n // needs to be an abs path, otherwise esbuild will complain\n path: path.isAbsolute(args.path) ? args.path : path.join(args.resolveDir, args.path),\n pluginData: {\n isMetadataProxyResolver: true,\n originalPath: args.path,\n originalResolveDir: args.resolveDir,\n },\n // We need to add a suffix here, otherwise esbuild will mark the entrypoint as resolved and won't traverse\n // the module tree any further down past the proxy module because we're essentially creating a dependency\n // loop back to the proxy module.\n // By setting a suffix we're telling esbuild that the entrypoint and proxy module are two different things,\n // making it re-resolve the entrypoint when it is imported from the proxy module.\n // Super confusing? Yes. Works? Apparently... Let's see.\n suffix: \"?sentryMetadataProxyModule=true\",\n };\n }\n });\n\n onLoad({ filter: /.*/ }, (args) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!(args.pluginData?.isMetadataProxyResolver as undefined | boolean)) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const originalPath = args.pluginData.originalPath as string;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const originalResolveDir = args.pluginData.originalResolveDir as string;\n\n return {\n loader: \"js\",\n pluginName,\n // We need to use JSON.stringify below so that any escape backslashes stay escape backslashes, in order not to break paths on windows\n contents: `\n import \"_sentry-module-metadata-injection-stub\";\n import * as OriginalModule from ${JSON.stringify(originalPath)};\n export default OriginalModule.default;\n export * from ${JSON.stringify(originalPath)};`,\n resolveDir: originalResolveDir,\n };\n });\n\n onResolve({ filter: /_sentry-module-metadata-injection-stub/ }, (args) => {\n return {\n path: args.path,\n sideEffects: true,\n pluginName,\n namespace: stubNamespace,\n suffix: \"?sentry-module-id=\" + uuidv4(), // create different module, each time this is resolved\n };\n });\n\n onLoad(\n { filter: /_sentry-module-metadata-injection-stub/, namespace: stubNamespace },\n () => {\n return {\n loader: \"js\",\n pluginName,\n contents: injectionCode,\n };\n }\n );\n },\n },\n };\n}\n\nfunction esbuildDebugIdUploadPlugin(\n upload: (buildArtifacts: string[]) => Promise<void>\n): UnpluginOptions {\n return {\n name: \"sentry-esbuild-debug-id-upload-plugin\",\n esbuild: {\n setup({ initialOptions, onEnd }) {\n initialOptions.metafile = true;\n onEnd(async (result) => {\n const buildArtifacts = result.metafile ? Object.keys(result.metafile.outputs) : [];\n await upload(buildArtifacts);\n });\n },\n },\n };\n}\n\nfunction esbuildBundleSizeOptimizationsPlugin(\n replacementValues: SentrySDKBuildFlags\n): UnpluginOptions {\n return {\n name: \"sentry-esbuild-bundle-size-optimizations-plugin\",\n esbuild: {\n setup({ initialOptions }) {\n const replacementStringValues: Record<string, string> = {};\n Object.entries(replacementValues).forEach(([key, value]) => {\n replacementStringValues[key] = JSON.stringify(value);\n });\n\n initialOptions.define = { ...initialOptions.define, ...replacementStringValues };\n },\n },\n };\n}\n\nconst sentryUnplugin = sentryUnpluginFactory({\n releaseInjectionPlugin: esbuildReleaseInjectionPlugin,\n debugIdInjectionPlugin: esbuildDebugIdInjectionPlugin,\n moduleMetadataInjectionPlugin: esbuildModuleMetadataInjectionPlugin,\n debugIdUploadPlugin: esbuildDebugIdUploadPlugin,\n bundleSizeOptimizationsPlugin: esbuildBundleSizeOptimizationsPlugin,\n});\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryEsbuildPlugin: (options?: Options) => any = sentryUnplugin.esbuild;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default sentryUnplugin.esbuild as (options?: Options) => any;\n\nexport type { Options as SentryEsbuildPluginOptions } from \"@sentry/bundler-plugin-core\";\nexport { sentryCliBinaryExists } from \"@sentry/bundler-plugin-core\";\n"],"names":["esbuildReleaseInjectionPlugin","injectionCode","pluginName","virtualReleaseInjectionFilePath","path","resolve","name","esbuild","setup","_ref","initialOptions","onLoad","onResolve","inject","push","filter","args","sideEffects","loader","contents","esbuildDebugIdInjectionPlugin","logger","stubNamespace","_ref2","bundle","warn","kind","_initialOptions$injec","includes","isAbsolute","join","resolveDir","pluginData","isProxyResolver","originalPath","originalResolveDir","suffix","_args$pluginData","concat","JSON","stringify","namespace","uuidv4","getDebugIdSnippet","esbuildModuleMetadataInjectionPlugin","_ref3","_initialOptions$injec2","isMetadataProxyResolver","_args$pluginData2","esbuildDebugIdUploadPlugin","upload","_ref4","onEnd","metafile","_ref5","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","buildArtifacts","wrap","_callee$","_context","prev","next","Object","keys","outputs","stop","_x","apply","arguments","esbuildBundleSizeOptimizationsPlugin","replacementValues","_ref6","replacementStringValues","entries","forEach","_ref7","_ref8","_slicedToArray","key","value","define","_objectSpread","sentryUnplugin","sentryUnpluginFactory","releaseInjectionPlugin","debugIdInjectionPlugin","moduleMetadataInjectionPlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin","sentryEsbuildPlugin"],"mappings":"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"}