@@ -3,7 +3,7 @@ package polymod.util;
3
3
import haxe .Http ;
4
4
import haxe .io .Bytes ;
5
5
import haxe .zip .Reader ;
6
- import polymod .Polymod .ModDependencies ;
6
+ import polymod .Polymod .ModDependency ;
7
7
import polymod .Polymod .ModMetadata ;
8
8
import sys .FileSystem ;
9
9
import sys .io .File ;
@@ -58,7 +58,7 @@ class DependencyUtil
58
58
var result : Array <ModMetadata > = [];
59
59
60
60
// Compile a map of mod dependencies.
61
- var deps : ModDependencies = compileDependencies (modList );
61
+ var deps : Map < String , ModDependency > = compileDependencies (modList );
62
62
63
63
// Check that all mods are in the mod list.
64
64
var relevantMods : Array <ModMetadata > = [];
@@ -73,7 +73,7 @@ class DependencyUtil
73
73
// Check that all dependencies are satisfied.
74
74
for (dep in deps .keys ())
75
75
{
76
- var depRule : VersionRule = deps .get (dep );
76
+ var depRule : VersionRule = deps .get (dep ). version ;
77
77
78
78
// Check that the dependency is in the mod list.
79
79
var depMod : ModMetadata = null ;
@@ -117,7 +117,7 @@ class DependencyUtil
117
117
static function validateDependencies (modList : Array <ModMetadata >): Bool
118
118
{
119
119
// Compile a map of mod dependencies.
120
- var deps : ModDependencies = compileDependencies (modList );
120
+ var deps : Map < String , ModDependency > = compileDependencies (modList );
121
121
122
122
// Check that all mods are in the mod list.
123
123
var relevantMods : Array <ModMetadata > = [];
@@ -132,7 +132,7 @@ class DependencyUtil
132
132
// Check that all dependencies are satisfied.
133
133
for (dep in deps .keys ())
134
134
{
135
- var depRule : VersionRule = deps .get (dep );
135
+ var depRule : VersionRule = deps .get (dep ). version ;
136
136
137
137
// Check that the dependency is in the mod list.
138
138
var depMod : ModMetadata = null ;
@@ -312,28 +312,37 @@ class DependencyUtil
312
312
* For example, if one mod requires `>1.2.0` of `modA` and another requires `>1.3.0` of `modA`,
313
313
* the merged list will be `[modA: '>1.2.0 && >1.3.0']`.
314
314
*/
315
- public static function compileDependencies (modList : Array <ModMetadata >): Map <String , VersionRule >
315
+ public static function compileDependencies (modList : Array <ModMetadata >): Map <String , ModDependency >
316
316
{
317
- var result : Map <String , VersionRule > = [];
317
+ var result : Map <String , ModDependency > = [];
318
318
319
319
for (mod in modList )
320
320
{
321
321
if (result [mod .id ] == null )
322
- result [mod .id ] = VersionUtil .DEFAULT_VERSION_RULE ;
322
+ result [mod .id ] = {
323
+ version : VersionUtil .DEFAULT_VERSION_RULE
324
+ };
323
325
324
326
if (mod .dependencies != null )
325
327
{
326
328
for (dependencyId in mod .dependencies .keys ())
327
329
{
328
- var dependencyRule : VersionRule = mod .dependencies [dependencyId ];
330
+ if (result [dependencyId ] == null )
331
+ result [dependencyId ] = {
332
+ version : VersionUtil .DEFAULT_VERSION_RULE
333
+ };
329
334
330
- if (result [dependencyId ] != null )
335
+ result [dependencyId ].url = mod .dependencies [dependencyId ].url ;
336
+ result [dependencyId ].commit = mod .dependencies [dependencyId ].commit ;
337
+ var dependencyRule : VersionRule = mod .dependencies [dependencyId ].version ;
338
+
339
+ if (result [dependencyId ].version != null )
331
340
{
332
- result [dependencyId ] = VersionUtil .combineRulesAnd (result [dependencyId ], dependencyRule );
341
+ result [dependencyId ]. version = VersionUtil .combineRulesAnd (result [dependencyId ]. version , dependencyRule );
333
342
}
334
343
else
335
344
{
336
- result [dependencyId ] = dependencyRule ;
345
+ result [dependencyId ]. version = dependencyRule ;
337
346
}
338
347
}
339
348
}
0 commit comments