@@ -744,60 +744,60 @@ export class Sync {
744
744
paths = [ path , parentPath ] ;
745
745
}
746
746
747
- return this . rs . local . getNodes ( paths ) . then ( ( nodes : RSNodes ) => {
748
- let itemName : string ;
749
- let node : RSNode = nodes [ path ] ;
750
- let parentNode : RSNode ;
751
- const missingChildren = { } ;
752
-
753
- function collectMissingChildren ( folder ) : void {
754
- if ( folder && folder . itemsMap ) {
755
- for ( itemName in folder . itemsMap ) {
756
- if ( ! bodyOrItemsMap [ itemName ] ) {
757
- missingChildren [ itemName ] = true ;
758
- }
747
+ const nodes = await this . rs . local . getNodes ( paths ) ;
748
+ let node : RSNode = nodes [ path ] ;
749
+ let parentNode : RSNode = nodes [ parentPath ] ;
750
+ let itemName : string ;
751
+ const missingChildren = { } ;
752
+
753
+ function collectMissingChildren ( folder ) : void {
754
+ if ( folder && folder . itemsMap ) {
755
+ for ( itemName in folder . itemsMap ) {
756
+ if ( ! bodyOrItemsMap [ itemName ] ) {
757
+ missingChildren [ itemName ] = true ;
759
758
}
760
759
}
761
760
}
761
+ }
762
+
763
+ if ( typeof ( node ) !== 'object' ||
764
+ node . path !== path ||
765
+ typeof ( node . common ) !== 'object' ) {
766
+ node = { path : path , common : { } } ;
767
+ nodes [ path ] = node ;
768
+ }
769
+
770
+ node . remote = {
771
+ revision : revision ,
772
+ timestamp : this . now ( )
773
+ } ;
774
+
775
+ if ( isFolder ( path ) ) {
776
+ collectMissingChildren ( node . common ) ;
777
+ collectMissingChildren ( node . remote ) ;
762
778
763
- if ( typeof ( node ) !== 'object' ||
764
- node . path !== path ||
765
- typeof ( node . common ) !== 'object' ) {
766
- node = { path : path , common : { } } ;
767
- nodes [ path ] = node ;
779
+ node . remote . itemsMap = { } ;
780
+ for ( itemName in bodyOrItemsMap as RSItem [ "itemsMap" ] ) {
781
+ node . remote . itemsMap [ itemName ] = true ;
768
782
}
783
+ } else {
784
+ node . remote . body = bodyOrItemsMap ;
785
+ node . remote . contentType = contentType ;
769
786
770
- node . remote = {
771
- revision : revision ,
772
- timestamp : this . now ( )
773
- } ;
787
+ if ( parentNode && parentNode . local && parentNode . local . itemsMap ) {
788
+ itemName = path . substring ( parentPath . length ) ;
774
789
775
- if ( isFolder ( path ) ) {
776
- collectMissingChildren ( node . common ) ;
777
- collectMissingChildren ( node . remote ) ;
790
+ parentNode . local . itemsMap [ itemName ] = true ;
778
791
779
- node . remote . itemsMap = { } ;
780
- for ( itemName in bodyOrItemsMap as RSItem [ "itemsMap" ] ) {
781
- node . remote . itemsMap [ itemName ] = true ;
782
- }
783
- } else {
784
- node . remote . body = bodyOrItemsMap ;
785
- node . remote . contentType = contentType ;
786
-
787
- parentNode = nodes [ parentPath ] ;
788
- if ( parentNode && parentNode . local && parentNode . local . itemsMap ) {
789
- itemName = path . substring ( parentPath . length ) ;
790
- parentNode . local . itemsMap [ itemName ] = true ;
791
- if ( equal ( parentNode . local . itemsMap , parentNode . common . itemsMap ) ) {
792
- delete parentNode . local ;
793
- }
792
+ if ( equal ( parentNode . local . itemsMap , parentNode . common . itemsMap ) ) {
793
+ delete parentNode . local ;
794
794
}
795
795
}
796
+ }
796
797
797
- nodes [ path ] = this . autoMerge ( node ) ;
798
+ nodes [ path ] = this . autoMerge ( node ) ;
798
799
799
- return { toBeSaved : nodes , missingChildren } ;
800
- } ) ;
800
+ return { toBeSaved : nodes , missingChildren } ;
801
801
}
802
802
803
803
/**
0 commit comments