1
1
const FormData = require ( "form-data" ) ;
2
2
const path = require ( "path" ) ;
3
3
const basePath = process . cwd ( ) ;
4
- const fs = require ( "fs" ) ;
4
+ const fs = require ( "graceful- fs" ) ;
5
5
6
- const { fetchWithRetry } = require ( `${ basePath } /utils/functions/fetchWithRetry.js` ) ;
6
+ const { fetchNoRetry } = require ( `${ basePath } /utils/functions/fetchWithRetry.js` ) ;
7
7
8
8
const { GENERIC } = require ( `${ basePath } /src/config.js` ) ;
9
9
@@ -16,29 +16,37 @@ if (!fs.existsSync(path.join(`${basePath}/build`, "/ipfsMetas"))) {
16
16
let readDir = `${ basePath } /build/json` ;
17
17
let writeDir = `${ basePath } /build/ipfsMetas` ;
18
18
19
- async function main ( ) {
20
- console . log ( `Starting upload of metadata...` ) ;
19
+ function getFileStreamForJSONFiles ( ) {
20
+ const jsonArray = [ ] ;
21
21
const files = fs . readdirSync ( readDir ) ;
22
22
files . sort ( function ( a , b ) {
23
23
return a . split ( "." ) [ 0 ] - b . split ( "." ) [ 0 ] ;
24
24
} ) ;
25
- const formData = new FormData ( ) ;
26
-
27
- for ( const file of files ) {
28
- if ( regex . test ( file ) ) {
29
- const fileStream = fs . createReadStream ( `${ readDir } /${ file } ` ) ;
30
- formData . append ( "metadata_files" , fileStream ) ;
31
- }
32
- }
25
+ files . forEach ( ( file ) => {
26
+ if ( ! regex . test ( file ) ) return ;
27
+ const fileData = fs . createReadStream ( path . join ( readDir , file ) ) ;
28
+ jsonArray . push ( fileData ) ;
29
+ } ) ;
30
+ return jsonArray ;
31
+ }
33
32
33
+ async function main ( ) {
34
+ console . log ( `Starting upload of metadata...` ) ;
34
35
try {
36
+ const metadataFileStreams = getFileStreamForJSONFiles ( ) ;
37
+ const formData = new FormData ( ) ;
38
+ metadataFileStreams . forEach ( ( file ) => {
39
+ formData . append ( "metadata_files" , file ) ;
40
+ } ) ;
41
+
35
42
const url = "https://api.nftport.xyz/v0/metadata/directory" ;
36
43
const options = {
37
44
method : "POST" ,
38
45
headers : { } ,
39
46
body : formData ,
40
47
} ;
41
- const response = await fetchWithRetry ( url , options ) ;
48
+ const response = await fetchNoRetry ( url , options ) ;
49
+
42
50
fs . writeFileSync (
43
51
`${ writeDir } /_ipfsMetasResponse.json` ,
44
52
JSON . stringify ( response , null , 2 )
@@ -81,7 +89,7 @@ async function main() {
81
89
} ,
82
90
body : JSON . stringify ( genericObject ) ,
83
91
} ;
84
- const response = await fetchWithRetry ( url , options ) ;
92
+ const response = await fetchNoRetry ( url , options ) ;
85
93
fs . writeFileSync ( uploadedMeta , JSON . stringify ( response , null , 2 ) ) ;
86
94
console . log ( `Generic metadata uploaded!` ) ;
87
95
} catch ( err ) {
0 commit comments