254
}
255
256
>
function compare(from: Map<string, ISyncExtension> | null, to: Map<string, ISyncExtension>, ignoredExtensions: Set<string>, checkVersionProperty: boolean): { added: Set<string>; removed: Set<string>; updated: Set<string> } {
extensionsMerge.ts
257
>
const fromKeys = from ? [...from.keys()].filter(key => !ignoredExtensions.has(key)) : [];
258
>
const toKeys = [...to.keys()].filter(key => !ignoredExtensions.has(key));
259
>
const added = toKeys.filter(key => !fromKeys.includes(key)).reduce((r, key) => { r.add(key); return r; }, new Set<string>());
260
>
const removed = fromKeys.filter(key => !toKeys.includes(key)).reduce((r, key) => { r.add(key); return r; }, new Set<string>());
261
>
const updated: Set<string> = new Set<string>();
262
>
263
>
for (const key of fromKeys) {
264
>
if (removed.has(key)) {
265
continue;
266
}
267
const fromExtension = from!.get(key)!;
268
const toExtension = to.get(key);
269
>
if (!toExtension || !areSame(fromExtension, toExtension, checkVersionProperty, true)) {
extensionsMerge.ts
270
updated.add(key);
271
}
273
>
274
>
return { added, removed, updated };
275
>
}
276
277
function areSame(fromExtension: ISyncExtension, toExtension: ISyncExtension, checkVersionProperty: boolean, checkInstalledProperty: boolean): boolean {