322
}
323
324
>
function mergeExtensionState(localExtension: ISyncExtension, remoteExtension: ISyncExtension, lastSyncExtension: ISyncExtension | undefined): IStringDictionary<any> | undefined {
extensionsMerge.ts
325
>
const localState = localExtension.state;
326
>
const remoteState = remoteExtension.state;
327
>
const baseState = lastSyncExtension?.state;
328
>
329
>
// If remote extension has no version, use local state
330
>
if (!remoteExtension.version) {
331
return localState;
332
}
334
>
// If local state exists and local extension is latest then use local state
335
>
if (localState && semver.gt(localExtension.version, remoteExtension.version)) {
336
return localState;
337
}
338
>
// If remote state exists and remote extension is latest, use remote state
extensionsMerge.ts
339
>
if (remoteState && semver.gt(remoteExtension.version, localExtension.version)) {
340
return remoteState;
341
}
343
>
344
>
/* Remote and local are on same version */
345
>
346
>
// If local state is not yet set, use remote state
347
>
if (!localState) {
348
>
return remoteState;
349
>
}
350
// If remote state is not yet set, use local state
351
if (!remoteState) {