@@ -10,6 +10,7 @@ import type { SvelteAST } from '$lib/parser/ast.js';
10
10
* and modified for this addon needs.
11
11
*/
12
12
export abstract class StorybookSvelteCSFError extends Error {
13
+ public static isStorybookCSFSvelteError = true ;
13
14
public static packageName = pkg . name ;
14
15
public static packageVersion = pkg . version ;
15
16
@@ -80,7 +81,7 @@ export abstract class StorybookSvelteCSFError extends Error {
80
81
* Generates the error message along with additional documentation link (if applicable).
81
82
*/
82
83
get message ( ) {
83
- if ( this . customMessage ) {
84
+ if ( this . customMessage ) {
84
85
return this . customMessage ;
85
86
}
86
87
@@ -115,15 +116,18 @@ export abstract class StorybookSvelteCSFError extends Error {
115
116
*/
116
117
readonly component ?: SvelteAST . Component ;
117
118
118
- constructor ( {
119
- filename,
120
- component : component ,
121
- } : {
122
- filename ?: StorybookSvelteCSFError [ 'filename' ] ;
123
- component ?: StorybookSvelteCSFError [ 'component' ] ;
124
- } ) {
119
+ constructor (
120
+ {
121
+ filename,
122
+ component : component ,
123
+ } : {
124
+ filename ?: StorybookSvelteCSFError [ 'filename' ] ;
125
+ component ?: StorybookSvelteCSFError [ 'component' ] ;
126
+ } ,
127
+ options ?: ConstructorParameters < typeof Error > [ 1 ]
128
+ ) {
125
129
super ( ) ;
126
-
130
+ this . cause = options ?. cause ;
127
131
this . filename = filename ;
128
132
this . component = component ;
129
133
}
@@ -178,3 +182,11 @@ export abstract class StorybookSvelteCSFError extends Error {
178
182
return `<Story name="${ this . storyNameFromAttribute } " />` ;
179
183
}
180
184
}
185
+
186
+ // WARN: We can't use `instanceof StorybookSvelteCSFError`, because is an _abstract_ class
187
+ export function isStorybookSvelteCSFError ( error : unknown ) : error is StorybookSvelteCSFError {
188
+ return Boolean (
189
+ ( Object . getPrototypeOf ( error ) ?. constructor as typeof StorybookSvelteCSFError )
190
+ ?. isStorybookCSFSvelteError
191
+ ) ;
192
+ }
0 commit comments