11const path = require ( "path" ) ;
2+ const fs = require ( "fs" ) ;
23const metroTransformer = require ( "metro-react-native-babel-transformer" ) ;
34
45module . exports . transform = async ( args ) => {
@@ -14,33 +15,33 @@ module.exports.transform = async (args) => {
1415 case ".bmp" :
1516 return metroTransformer . transform ( {
1617 ...args ,
17- src : injectImage ( src , "bmp" ) ,
18+ src : injectImage ( filename , "bmp" ) ,
1819 } ) ;
1920 case ".gif" :
2021 return metroTransformer . transform ( {
2122 ...args ,
22- src : injectImage ( src , "gif" ) ,
23+ src : injectImage ( filename , "gif" ) ,
2324 } ) ;
2425 case ".png" :
2526 return metroTransformer . transform ( {
2627 ...args ,
27- src : injectImage ( src , "png" ) ,
28+ src : injectImage ( filename , "png" ) ,
2829 } ) ;
2930 case ".jpg" :
3031 case ".jpeg" :
3132 return metroTransformer . transform ( {
3233 ...args ,
33- src : injectImage ( src , "jpeg" ) ,
34+ src : injectImage ( filename , "jpeg" ) ,
3435 } ) ;
3536 case ".webp" :
3637 return metroTransformer . transform ( {
3738 ...args ,
38- src : injectImage ( src , "webp" ) ,
39+ src : injectImage ( filename , "webp" ) ,
3940 } ) ;
4041 case ".svg" :
4142 return metroTransformer . transform ( {
4243 ...args ,
43- src : injectImage ( src , "svg+xml" ) ,
44+ src : injectImage ( filename , "svg+xml" ) ,
4445 } ) ;
4546 default :
4647 break ;
@@ -60,7 +61,7 @@ const injectCss = (css) => `
6061})();
6162` ;
6263
63- const injectImage = ( src , ext ) =>
64- `export default String.raw\`data:image/ ${ ext } ;base64, ${ Buffer . from (
65- src
66- ) . toString ( "base64" ) } \`;` ;
64+ const injectImage = ( filename , ext ) => {
65+ const src = fs . readFileSync ( filename , "base64" ) ;
66+ return `export default "data:image/ ${ ext } ;base64, ${ src } ";` ;
67+ } ;
0 commit comments