diff --git a/packages/svelte/src/compiler/phases/2-analyze/index.js b/packages/svelte/src/compiler/phases/2-analyze/index.js index fcfc6c15aa..d73e273ec2 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/index.js +++ b/packages/svelte/src/compiler/phases/2-analyze/index.js @@ -516,6 +516,7 @@ export function analyze_component(root, source, options) { }; state.reset({ + component_name: analysis.name, dev: options.dev, filename: options.filename, rootDir: options.rootDir, diff --git a/packages/svelte/src/compiler/phases/types.d.ts b/packages/svelte/src/compiler/phases/types.d.ts index 876363bd16..dba2559a17 100644 --- a/packages/svelte/src/compiler/phases/types.d.ts +++ b/packages/svelte/src/compiler/phases/types.d.ts @@ -34,6 +34,7 @@ export interface ReactiveStatement { */ export interface Analysis { module: Js; + /** @deprecated use `component_name` from `state.js` instead */ name: string; // TODO should this be filename? it's used in `compileModule` as well as `compile` /** @deprecated use `runes` from `state.js` instead */ runes: boolean; @@ -91,6 +92,7 @@ export interface ComponentAnalysis extends Analysis { keyframes: string[]; has_global: boolean; }; + /** @deprecated use `source` from `state.js` instead */ source: string; undefined_exports: Map; /** diff --git a/packages/svelte/src/compiler/state.js b/packages/svelte/src/compiler/state.js index 633611e695..9095651ced 100644 --- a/packages/svelte/src/compiler/state.js +++ b/packages/svelte/src/compiler/state.js @@ -16,6 +16,8 @@ export let warnings = []; */ export let filename; +export let component_name = ''; + /** * The original source code * @type {string} @@ -97,6 +99,7 @@ export function is_ignored(node, code) { * @param {{ * dev: boolean; * filename: string; + * component_name?: string; * rootDir?: string; * runes: boolean; * }} state @@ -105,8 +108,9 @@ export function reset(state) { const root_dir = state.rootDir?.replace(/\\/g, '/'); filename = state.filename.replace(/\\/g, '/'); - dev = !!state.dev; - runes = !!state.runes; + dev = state.dev; + runes = state.runes; + component_name = state.component_name ?? '(unknown)'; if (typeof root_dir === 'string' && filename.startsWith(root_dir)) { // make filename relative to rootDir