136
}
137
}
139
>
for (const [extension, metadata] of extensions) {
140
>
const index = result.findIndex(e => areSameExtensions(e.identifier, extension.identifier) && e.version === extension.manifest.version);
141
>
const extensionToAdd = { identifier: extension.identifier, version: extension.manifest.version, location: extension.location, metadata };
142
>
if (index === -1) {
143
>
extensionsToAdd.push(extensionToAdd);
144
>
result.push(extensionToAdd);
145
>
} else {
146
result.splice(index, 1, extensionToAdd);
147
}
149
>
if (extensionsToAdd.length) {
150
>
this._onAddExtensions.fire({ extensions: extensionsToAdd, profileLocation });
151
>
}
152
>
if (extensionsToRemove.length) {
153
this._onRemoveExtensions.fire({ extensions: extensionsToRemove, profileLocation });
154
}
156
>
});
157
>
if (extensionsToAdd.length) {
158
>
this._onDidAddExtensions.fire({ extensions: extensionsToAdd, profileLocation });
159
>
}
160
>
if (extensionsToRemove.length) {
161
this._onDidRemoveExtensions.fire({ extensions: extensionsToRemove, profileLocation });
162
}
164
>
} catch (error) {
165
if (extensionsToAdd.length) {
166
this._onDidAddExtensions.fire({ extensions: extensionsToAdd, error, profileLocation });