@@ -4,6 +4,7 @@ import path from 'path';
4
4
import mongoose from 'mongoose' ;
5
5
import User from '../models/user' ;
6
6
import Project from '../models/project' ;
7
+ import async from 'async' ;
7
8
require ( 'dotenv' ) . config ( { path : path . resolve ( '.env' ) } ) ;
8
9
mongoose . connect ( 'mongodb://localhost:27017/p5js-web-editor' ) ;
9
10
mongoose . connection . on ( 'error' , ( ) => {
@@ -30,15 +31,23 @@ Project.count({})
30
31
console . log ( numProjects ) ;
31
32
for ( let i = 0 ; i < numProjects ; i += CHUNK ) {
32
33
let projects = await Project . find ( { } ) . skip ( i ) . limit ( CHUNK ) . exec ( ) ;
33
- projects . forEach ( ( project , projectIndex ) => {
34
+ async . eachSeries ( projects , ( project , cb ) => {
34
35
console . log ( project . name ) ;
35
- project . files . forEach ( async ( file , fileIndex ) => {
36
+ async . eachSeries ( project . files , ( file , fileCb ) => {
36
37
if ( file . url && file . url . includes ( 'p5.js-webeditor' ) ) {
37
38
file . url = file . url . replace ( 'p5.js-webeditor' , process . env . S3_BUCKET ) ;
38
- let savedProject = await project . save ( ) ;
39
- console . log ( `updated file ${ file . url } ` ) ;
40
- process . exit ( 0 ) ;
39
+ project . save ( ( err , newProject ) => {
40
+ console . log ( `updated file ${ file . url } ` ) ;
41
+ process . exit ( 0 ) ;
42
+ fileCb ( ) ;
43
+ } ) ;
44
+ } else {
45
+ fileCb ( ) ;
41
46
}
47
+ } , ( ) => {
48
+ cb ( ) ;
49
+ } , ( ) => {
50
+ console . log ( 'at ' + i ) ;
42
51
} ) ;
43
52
} ) ;
44
53
}
0 commit comments