owl-cli 6.15.0 → 6.17.0

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.
@@ -16,9 +16,13 @@ function isEqual(r1,r2){
16
16
  if(r1==null || r2==null){
17
17
  return false;
18
18
  }
19
+ if(isScalar(r1) || isScalar(r2)){
20
+ return r1===r2;
21
+ }
19
22
  //now assert a1!=null && r2!=null
20
23
  var ks1 = Object.keys(r1);
21
24
  var ks2 = Object.keys(r2);
25
+
22
26
  if(ks1.length!==ks2.length){
23
27
  return false;
24
28
  }
@@ -35,6 +39,7 @@ function isEqual(r1,r2){
35
39
  function diffArray(a1, a2,parentKey){
36
40
  //a1是旧的,a2是新的
37
41
 
42
+ var temp_matched = [];
38
43
  var result = [];
39
44
  if(!a1){
40
45
  a1 = [];
@@ -49,21 +54,39 @@ function diffArray(a1, a2,parentKey){
49
54
  var r2 = a2[j];
50
55
  if(isEqual(r1,r2)){
51
56
  found = true;
52
- r2._matched = true;
57
+ if(isScalar(r2)){
58
+ temp_matched.push(r2);
59
+ }
60
+ else{
61
+ r2._matched = true;
62
+ }
63
+
53
64
  break;
54
65
  }
55
66
  }
56
67
  if(!found){
57
68
  //r1不存在于a2中,说明r1被删除了
58
- r1._type='deleted'
59
- result.push(r1)
69
+ result.push({
70
+ type:'deleted',
71
+ r:r1
72
+ });
60
73
  }
61
74
  }
62
75
  for(var i=0; i<a2.length; i++){
63
76
  r2 = a2[i];
64
- if(!r2._matched){
65
- r2._type = 'added';
66
- result.push(r2);
77
+ if(isScalar(r2)){
78
+ if(temp_matched.indexOf(r2)==-1){
79
+ result.push({
80
+ type:'added',
81
+ r:r2
82
+ });
83
+ }
84
+ }
85
+ else if(!r2._matched){
86
+ result.push({
87
+ type:'added',
88
+ r:r2
89
+ });
67
90
  }
68
91
 
69
92
  }
@@ -77,8 +100,7 @@ function diff(obj1, obj2,parentKey){
77
100
  keys1.sort();
78
101
  keys2.sort();
79
102
 
80
- //找到减少的
81
- 和发生了变化的
103
+ //找到减少的和发生了变化的
82
104
  for(var i=0; i<keys1.length; i++){
83
105
  var k1 = keys1[i];
84
106
  var v1 = obj1[k1];
@@ -165,15 +187,15 @@ function diff(obj1, obj2,parentKey){
165
187
  });
166
188
  }
167
189
  else{
168
- for(var kv in v2){
169
- result.push({
170
- type:'added',
171
- fieldKey : kv,
172
- parentKey: parentKey+"." + k2,
173
- oldv:null,
174
- newv:v2[kv]
175
- });
176
- }
190
+ for(var kv in v2){
191
+ result.push({
192
+ type:'added',
193
+ fieldKey : kv,
194
+ parentKey: parentKey+"." + k2,
195
+ oldv:null,
196
+ newv:v2[kv]
197
+ });
198
+ }
177
199
  }
178
200
  }
179
201
 
@@ -41,7 +41,7 @@
41
41
  return;
42
42
  }
43
43
  }
44
-
44
+ var diffResult = {}
45
45
  if (!id || action=='add') {
46
46
  //adding
47
47
  if(!modelObject._orgId){
@@ -53,10 +53,11 @@
53
53
  }
54
54
  else {
55
55
  modelObject._orgIds = [modelObject._orgId].concat(getParentOrgIds(modelObject._orgId));
56
+ diffResult = diff(oldObj,modelObject,"");
56
57
  var newdata = @projectCodeService.update( modelObject,env);
57
58
  }
58
59
 
59
- var diffResult = diff(oldObj,modelObject);
60
+
60
61
 
61
62
  var ret = {
62
63
  state: 'ok',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owl-cli",
3
- "version": "6.15.0",
3
+ "version": "6.17.0",
4
4
  "main": "index.js",
5
5
  "preferGlobal": true,
6
6
  "bin": {