@@ -62,31 +62,33 @@ async function create(name, entityName) {
62
62
}
63
63
64
64
async function createManyToManyData ( products ) {
65
- const developers = { } ;
66
- const publishers = { } ;
67
- const categories = { } ;
68
- const platforms = { } ;
65
+ const developers = new Set ( ) ;
66
+ const publishers = new Set ( ) ;
67
+ const categories = new Set ( ) ;
68
+ const platforms = new Set ( ) ;
69
69
70
70
products . forEach ( ( product ) => {
71
71
const { developer, publisher, genres, supportedOperatingSystems } = product ;
72
72
73
- genres &&
74
- genres . forEach ( ( item ) => {
75
- categories [ item ] = true ;
76
- } ) ;
77
- supportedOperatingSystems &&
78
- supportedOperatingSystems . forEach ( ( item ) => {
79
- platforms [ item ] = true ;
80
- } ) ;
81
- developers [ developer ] = true ;
82
- publishers [ publisher ] = true ;
73
+ genres ?. forEach ( ( item ) => {
74
+ categories . add ( item ) ;
75
+ } ) ;
76
+
77
+ supportedOperatingSystems ?. forEach ( ( item ) => {
78
+ platforms . add ( item ) ;
79
+ } ) ;
80
+
81
+ developers . add ( developer ) ;
82
+ publishers . add ( publisher ) ;
83
83
} ) ;
84
84
85
+ const createCall = ( set , entityName ) => Array . from ( set ) . map ( ( name ) => create ( name , entityName ) ) ;
86
+
85
87
return Promise . all ( [
86
- ...Object . keys ( developers ) . map ( ( name ) => create ( name , "developer" ) ) ,
87
- ...Object . keys ( publishers ) . map ( ( name ) => create ( name , "publisher" ) ) ,
88
- ...Object . keys ( categories ) . map ( ( name ) => create ( name , "category" ) ) ,
89
- ...Object . keys ( platforms ) . map ( ( name ) => create ( name , "platform" ) ) ,
88
+ ...createCall ( developers , "developer" ) ,
89
+ ...createCall ( publishers , "publisher" ) ,
90
+ ...createCall ( categories , "category" ) ,
91
+ ...createCall ( platforms , "platform" ) ,
90
92
] ) ;
91
93
}
92
94
0 commit comments