@@ -190,6 +190,7 @@ macro_rules! extension {
190190 $( , ops = [ $( $( #[ $m: meta] ) * $( $op: ident ) ::+ $( < $( $op_param: ident ) ,* > ) ? ) ,+ $( , ) ? ] ) ?
191191 $( , esm_entry_point = $esm_entry_point: literal ) ?
192192 $( , esm = [ $( dir $dir_esm: literal , ) ? $( $esm: literal ) ,* $( , ) ? ] ) ?
193+ $( , esm_with_specifiers = [ $( dir $dir_esm2: literal , ) ? $( ( $esm_specifier: literal, $esm_file: literal) ) ,* $( , ) ? ] ) ?
193194 $( , js = [ $( dir $dir_js: literal , ) ? $( $js: literal ) ,* $( , ) ? ] ) ?
194195 $( , options = { $( $options_id: ident : $options_type: ty ) ,* $( , ) ? } ) ?
195196 $( , middleware = $middleware_fn: expr ) ?
@@ -218,6 +219,9 @@ macro_rules! extension {
218219 $( ext. esm(
219220 $crate:: include_js_files!( $name $( dir $dir_esm , ) ? $( $esm , ) * )
220221 ) ; ) ?
222+ $( ext. esm(
223+ $crate:: include_js_files_with_specifiers!( $name $( dir $dir_esm2 , ) ? $( ( $esm_specifier, $esm_file) , ) * )
224+ ) ; ) ?
221225 $(
222226 ext. esm_entry_point( $esm_entry_point) ;
223227 ) ?
@@ -643,3 +647,33 @@ macro_rules! include_js_files {
643647 ]
644648 } ;
645649}
650+
651+ #[ cfg( not( feature = "include_js_files_for_snapshotting" ) ) ]
652+ #[ macro_export]
653+ macro_rules! include_js_files_with_specifiers {
654+ ( $name: ident dir $dir: literal, $( ( $specifier: literal , $file: literal ) , ) +) => {
655+ vec![
656+ $( $crate:: ExtensionFileSource {
657+ specifier: $specifier,
658+ code: $crate:: ExtensionFileSourceCode :: IncludedInBinary (
659+ include_str!( concat!( env!( "CARGO_MANIFEST_DIR" ) , "/" , $dir, "/" , $file) )
660+ ) ,
661+ } , ) +
662+ ]
663+ } ;
664+ }
665+
666+ #[ cfg( feature = "include_js_files_for_snapshotting" ) ]
667+ #[ macro_export]
668+ macro_rules! include_js_files_with_specifiers {
669+ ( $name: ident dir $dir: literal, $( ( $specifier: literal , $file: literal ) , ) +) => {
670+ vec![
671+ $( $crate:: ExtensionFileSource {
672+ specifier: $specifier,
673+ code: $crate:: ExtensionFileSourceCode :: LoadedFromFsDuringSnapshot (
674+ std:: path:: PathBuf :: from( env!( "CARGO_MANIFEST_DIR" ) ) . join( $dir) . join( $file)
675+ ) ,
676+ } , ) +
677+ ]
678+ } ;
679+ }
0 commit comments