@@ -5,6 +5,8 @@ import { addedDiff, deletedDiff } from 'deep-object-diff';
55type KVStructure = Record < string , string > ;
66
77export default class implements Structure < KVStructure > {
8+ private keys : string [ ] = [ ] ;
9+
810 split ( data : KVStructure , enc : Tiktoken , chunkSize : number ) : KVStructure [ ] {
911 let left : KVStructure = { } ;
1012 const result : KVStructure [ ] = [ ] ;
@@ -48,13 +50,8 @@ export default class implements Structure<KVStructure> {
4850 dst = { } ;
4951 }
5052
51- const patch : KVStructure = { } ;
52- const addedDiffs = addedDiff ( dst , src ) as KVStructure ;
53-
54- for ( const [ key , value ] of Object . entries ( addedDiffs ) ) {
55- patch [ key ] = value ;
56- }
57-
53+ this . keys = Object . keys ( src ) ;
54+ const patch = addedDiff ( dst , src ) as KVStructure ;
5855 const deletedDiffs = deletedDiff ( dst , src ) as KVStructure ;
5956
6057 for ( const key of Object . keys ( deletedDiffs ) ) {
@@ -65,7 +62,13 @@ export default class implements Structure<KVStructure> {
6562 }
6663
6764 merge ( src : KVStructure , patch : KVStructure ) : KVStructure {
65+ const result : KVStructure = { } ;
6866 Object . assign ( src , patch ) ;
69- return src ;
67+
68+ for ( const key of this . keys ) {
69+ result [ key ] = src [ key ] ;
70+ }
71+
72+ return result ;
7073 }
7174}
0 commit comments