aotrautils-srv 0.0.585 → 0.0.587

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
- /*utils COMMONS library associated with aotra version : «1_29072022-2359 (15/09/2023-00:52:44)»*/
3
+ /*utils COMMONS library associated with aotra version : «1_29072022-2359 (18/09/2023-23:43:29)»*/
4
4
  /*-----------------------------------------------------------------------------*/
5
5
 
6
6
 
@@ -503,22 +503,30 @@ window.aotestMethods.getScenariiInTest=function(test){
503
503
  return window.aotestMethods.doForAllTestsByType(allTestsByType, doOnIteration, filter, mustTerminate);
504
504
  };
505
505
 
506
- /*public*/window.aotestMethods.iterateOverValues=function(scenario, doOnIterationForValue, visited=[], valuePath=""){
506
+ /*public*/window.aotestMethods.iterateOverValues=function(scenarioParam, doOnIterationForValue, visited=[], valuePath="", isValueFunction=null){
507
+
508
+ // CAUTION : We ABSOLUTELY need to iterate over a deep copy, or else it will create weird incomprehensible bugs
509
+ // if we do another recursive browsing on the initial object !!!
510
+ const scenario=JSON.parse(JSON.stringify(scenarioParam));
511
+
507
512
 
508
513
  const basePath=valuePath;
509
514
  foreach(scenario,(item, itemNameOrIndex)=>{
510
- if(contains(visited,item)) return "continue";
515
+
516
+ if(contains(visited, item)) return "continue";
511
517
  visited.push(item);
512
518
 
513
519
  valuePath=basePath+"."+itemNameOrIndex;
514
520
 
515
- if(isArray(item)){
516
- window.aotestMethods.iterateOverValues(item, doOnIterationForValue, visited, valuePath);
517
- }else if(isObject(item)){
518
- window.aotestMethods.iterateOverValues(item, doOnIterationForValue, visited, valuePath);
521
+ const isValue=(isValueFunction && isValueFunction(item));
522
+ if(isArray(item) && !isValue){
523
+ window.aotestMethods.iterateOverValues(item, doOnIterationForValue, visited, valuePath, isValueFunction);
524
+ }else if(isObject(item) && !isValue){
525
+ window.aotestMethods.iterateOverValues(item, doOnIterationForValue, visited, valuePath, isValueFunction);
519
526
  }else{
520
527
  scenario[itemNameOrIndex]=doOnIterationForValue(item, itemNameOrIndex, valuePath);
521
528
  }
529
+
522
530
  });
523
531
 
524
532
  };
@@ -4976,7 +4984,7 @@ AOTRAUTILS_LIB_IS_LOADED=true;
4976
4984
 
4977
4985
 
4978
4986
 
4979
- /*utils SERVER library associated with aotra version : «1_29072022-2359 (15/09/2023-00:52:44)»*/
4987
+ /*utils SERVER library associated with aotra version : «1_29072022-2359 (18/09/2023-23:43:29)»*/
4980
4988
  /*-----------------------------------------------------------------------------*/
4981
4989
 
4982
4990
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aotrautils-srv",
3
- "version": "0.0.585",
3
+ "version": "0.0.587",
4
4
  "main": "aotrautils-srv.build.js",
5
5
  "description": "A library for vanilla javascript utils (server-side) used in aotra javascript CMS",
6
6
  "author": "Jeremie Ratomposon <info@alqemia.com> (https://alqemia.com)",