Skip to content

Commit 66db1a7

Browse files
committed
microsoft#103454 remove objects.assign usage
1 parent b1a66b5 commit 66db1a7

17 files changed

Lines changed: 97 additions & 91 deletions

File tree

src/vs/base/parts/request/browser/request.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55

66
import { CancellationToken } from 'vs/base/common/cancellation';
77
import { canceled } from 'vs/base/common/errors';
8-
import { assign } from 'vs/base/common/objects';
98
import { VSBuffer, bufferToStream } from 'vs/base/common/buffer';
109
import { IRequestOptions, IRequestContext } from 'vs/base/parts/request/common/request';
1110

1211
export function request(options: IRequestOptions, token: CancellationToken): Promise<IRequestContext> {
1312
if (options.proxyAuthorization) {
14-
options.headers = assign(options.headers || {}, { 'Proxy-Authorization': options.proxyAuthorization });
13+
options.headers = {
14+
...(options.headers || {}),
15+
'Proxy-Authorization': options.proxyAuthorization
16+
};
1517
}
1618

1719
const xhr = new XMLHttpRequest();

src/vs/platform/extensionManagement/common/extensionGalleryService.ts

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import { getErrorMessage, isPromiseCanceledError, canceled } from 'vs/base/common/errors';
77
import { StatisticType, IGalleryExtension, IExtensionGalleryService, IGalleryExtensionAsset, IQueryOptions, SortBy, SortOrder, IExtensionIdentifier, IReportedExtension, InstallOperation, ITranslation, IGalleryExtensionVersion, IGalleryExtensionAssets, isIExtensionIdentifier, DefaultIconPath } from 'vs/platform/extensionManagement/common/extensionManagement';
88
import { getGalleryExtensionId, getGalleryExtensionTelemetryData, adoptToGalleryExtensionId } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
9-
import { assign, getOrDefault } from 'vs/base/common/objects';
9+
import { getOrDefault } from 'vs/base/common/objects';
1010
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
1111
import { IPager } from 'vs/base/common/paging';
1212
import { IRequestService, asJson, asText } from 'vs/platform/request/common/request';
@@ -158,7 +158,7 @@ class Query {
158158
get flags(): number { return this.state.flags; }
159159

160160
withPage(pageNumber: number, pageSize: number = this.state.pageSize): Query {
161-
return new Query(assign({}, this.state, { pageNumber, pageSize }));
161+
return new Query({ ...this.state, pageNumber, pageSize });
162162
}
163163

164164
withFilter(filterType: FilterType, ...values: string[]): Query {
@@ -167,23 +167,23 @@ class Query {
167167
...values.length ? values.map(value => ({ filterType, value })) : [{ filterType }]
168168
];
169169

170-
return new Query(assign({}, this.state, { criteria }));
170+
return new Query({ ...this.state, criteria });
171171
}
172172

173173
withSortBy(sortBy: SortBy): Query {
174-
return new Query(assign({}, this.state, { sortBy }));
174+
return new Query({ ...this.state, sortBy });
175175
}
176176

177177
withSortOrder(sortOrder: SortOrder): Query {
178-
return new Query(assign({}, this.state, { sortOrder }));
178+
return new Query({ ...this.state, sortOrder });
179179
}
180180

181181
withFlags(...flags: Flags[]): Query {
182-
return new Query(assign({}, this.state, { flags: flags.reduce((r, f) => r | f, 0) }));
182+
return new Query({ ...this.state, flags: flags.reduce<number>((r, f) => r | f, 0) });
183183
}
184184

185185
withAssetTypes(...assetTypes: string[]): Query {
186-
return new Query(assign({}, this.state, { assetTypes }));
186+
return new Query({ ...this.state, assetTypes });
187187
}
188188

189189
get raw(): any {
@@ -524,12 +524,13 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
524524
}
525525
return this.commonHeadersPromise.then(commonHeaders => {
526526
const data = JSON.stringify(query.raw);
527-
const headers = assign({}, commonHeaders, {
527+
const headers = {
528+
...commonHeaders,
528529
'Content-Type': 'application/json',
529530
'Accept': 'application/json;api-version=3.0-preview.1',
530531
'Accept-Encoding': 'gzip',
531-
'Content-Length': data.length
532-
});
532+
'Content-Length': String(data.length)
533+
};
533534

534535
return this.requestService.request({
535536
type: 'POST',
@@ -585,7 +586,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
585586
]
586587
}
587588
*/
588-
const log = (duration: number) => this.telemetryService.publicLog('galleryService:downloadVSIX', assign(data, { duration }));
589+
const log = (duration: number) => this.telemetryService.publicLog('galleryService:downloadVSIX', { ...data, duration });
589590

590591
const operationParam = operation === InstallOperation.Install ? 'install' : operation === InstallOperation.Update ? 'update' : '';
591592
const downloadAsset = operationParam ? {
@@ -670,12 +671,12 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
670671
private getAsset(asset: IGalleryExtensionAsset, options: IRequestOptions = {}, token: CancellationToken = CancellationToken.None): Promise<IRequestContext> {
671672
return this.commonHeadersPromise.then(commonHeaders => {
672673
const baseOptions = { type: 'GET' };
673-
const headers = assign({}, commonHeaders, options.headers || {});
674-
options = assign({}, options, baseOptions, { headers });
674+
const headers = { ...commonHeaders, ...(options.headers || {}) };
675+
options = { ...options, ...baseOptions, headers };
675676

676677
const url = asset.uri;
677678
const fallbackUrl = asset.fallbackUri;
678-
const firstOptions = assign({}, options, { url });
679+
const firstOptions = { ...options, url };
679680

680681
return this.requestService.request(firstOptions, token)
681682
.then(context => {
@@ -702,7 +703,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
702703
};
703704
this.telemetryService.publicLog2<GalleryServiceCDNFallbackEvent, GalleryServiceCDNFallbackClassification>('galleryService:cdnFallback', { url, message });
704705

705-
const fallbackOptions = assign({}, options, { url: fallbackUrl });
706+
const fallbackOptions = { ...options, url: fallbackUrl };
706707
return this.requestService.request(fallbackOptions, token);
707708
});
708709
});

src/vs/platform/extensionManagement/node/extensionManagementService.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import * as nls from 'vs/nls';
77
import * as path from 'vs/base/common/path';
88
import * as pfs from 'vs/base/node/pfs';
9-
import { assign } from 'vs/base/common/objects';
109
import { toDisposable, Disposable } from 'vs/base/common/lifecycle';
1110
import { isNonEmptyArray } from 'vs/base/common/arrays';
1211
import { zip, IFile } from 'vs/base/node/zip';
@@ -46,6 +45,7 @@ import { IExtensionManifest, ExtensionType } from 'vs/platform/extensions/common
4645
import { ExtensionsDownloader } from 'vs/platform/extensionManagement/node/extensionDownloader';
4746
import { ExtensionsScanner, IMetadata } from 'vs/platform/extensionManagement/node/extensionsScanner';
4847
import { ExtensionsLifecycle } from 'vs/platform/extensionManagement/node/extensionLifecycle';
48+
import { IStringDictionary } from 'vs/base/common/collections';
4949

5050
const INSTALL_ERROR_UNSET_UNINSTALLED = 'unsetUninstalled';
5151
const INSTALL_ERROR_DOWNLOADING = 'downloading';
@@ -677,7 +677,10 @@ export class ExtensionManagementService extends Disposable implements IExtension
677677

678678
private setUninstalled(...extensions: ILocalExtension[]): Promise<{ [id: string]: boolean }> {
679679
const ids: ExtensionIdentifierWithVersion[] = extensions.map(e => new ExtensionIdentifierWithVersion(e.identifier, e.manifest.version));
680-
return this.extensionsScanner.withUninstalledExtensions(uninstalled => assign(uninstalled, ids.reduce((result, id) => { result[id.key()] = true; return result; }, {} as { [id: string]: boolean })));
680+
return this.extensionsScanner.withUninstalledExtensions(uninstalled => {
681+
const newUninstalled = (ids.reduce<IStringDictionary<boolean>>((result, id) => { result[id.key()] = true; return result; }, {}));
682+
return { ...uninstalled, ...newUninstalled };
683+
});
681684
}
682685

683686
private unsetUninstalled(extensionIdentifier: ExtensionIdentifierWithVersion): Promise<void> {
@@ -745,6 +748,6 @@ export class ExtensionManagementService extends Disposable implements IExtension
745748
]
746749
}
747750
*/
748-
this.telemetryService.publicLogError(eventName, assign(extensionData, { success: !error, duration, errorcode }));
751+
this.telemetryService.publicLogError(eventName, { ...extensionData, success: !error, duration, errorcode });
749752
}
750753
}

src/vs/platform/extensionManagement/node/extensionsScanner.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { CancellationToken } from 'vscode';
2222
import { extract, ExtractError } from 'vs/base/node/zip';
2323
import { isWindows } from 'vs/base/common/platform';
2424
import { flatten } from 'vs/base/common/arrays';
25-
import { assign } from 'vs/base/common/objects';
25+
import { IStringDictionary } from 'vs/base/common/collections';
2626

2727
const ERROR_SCANNING_SYS_EXTENSIONS = 'scanningSystem';
2828
const ERROR_SCANNING_USER_EXTENSIONS = 'scanningUser';
@@ -31,6 +31,7 @@ const INSTALL_ERROR_DELETING = 'deleting';
3131
const INSTALL_ERROR_RENAMING = 'renaming';
3232

3333
export type IMetadata = Partial<IGalleryMetadata & { isMachineScoped: boolean; }>;
34+
type ILocalExtensionManifest = IExtensionManifest & { __metadata?: IMetadata };
3435

3536
export class ExtensionsScanner extends Disposable {
3637

@@ -133,7 +134,7 @@ export class ExtensionsScanner extends Disposable {
133134
const manifestPath = path.join(local.location.fsPath, 'package.json');
134135
const raw = await pfs.readFile(manifestPath, 'utf8');
135136
const { manifest } = await this.parseManifest(raw);
136-
assign(manifest, { __metadata: metadata });
137+
(manifest as ILocalExtensionManifest).__metadata = metadata;
137138
await pfs.writeFile(manifestPath, JSON.stringify(manifest, null, '\t'));
138139
return local;
139140
}
@@ -142,7 +143,7 @@ export class ExtensionsScanner extends Disposable {
142143
return this.withUninstalledExtensions(uninstalled => uninstalled);
143144
}
144145

145-
async withUninstalledExtensions<T>(fn: (uninstalled: { [id: string]: boolean; }) => T): Promise<T> {
146+
async withUninstalledExtensions<T>(fn: (uninstalled: IStringDictionary<boolean>) => T): Promise<T> {
146147
return this.uninstalledFileLimiter.queue(async () => {
147148
let result: T | null = null;
148149
return pfs.readFile(this.uninstalledPath, 'utf8')

src/vs/platform/request/electron-main/requestMainService.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import { IRequestOptions, IRequestContext } from 'vs/base/parts/request/common/request';
77
import { RequestService as NodeRequestService, IRawRequestFunction } from 'vs/platform/request/node/requestService';
8-
import { assign } from 'vs/base/common/objects';
98
import { net } from 'electron';
109
import { CancellationToken } from 'vs/base/common/cancellation';
1110

@@ -16,6 +15,6 @@ function getRawRequest(options: IRequestOptions): IRawRequestFunction {
1615
export class RequestMainService extends NodeRequestService {
1716

1817
request(options: IRequestOptions, token: CancellationToken): Promise<IRequestContext> {
19-
return super.request(assign({}, options || {}, { getRawRequest }), token);
18+
return super.request({ ...(options || {}), getRawRequest }, token);
2019
}
2120
}

src/vs/platform/request/node/requestService.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import * as streams from 'vs/base/common/stream';
99
import { createGunzip } from 'zlib';
1010
import { parse as parseUrl } from 'url';
1111
import { Disposable } from 'vs/base/common/lifecycle';
12-
import { assign } from 'vs/base/common/objects';
1312
import { isBoolean, isNumber } from 'vs/base/common/types';
1413
import { canceled } from 'vs/base/common/errors';
1514
import { CancellationToken } from 'vs/base/common/cancellation';
@@ -67,7 +66,10 @@ export class RequestService extends Disposable implements IRequestService {
6766
options.strictSSL = strictSSL;
6867

6968
if (this.authorization) {
70-
options.headers = assign(options.headers || {}, { 'Proxy-Authorization': this.authorization });
69+
options.headers = {
70+
...(options.headers || {}),
71+
'Proxy-Authorization': this.authorization
72+
};
7173
}
7274

7375
return this._request(options, token);
@@ -107,10 +109,11 @@ export class RequestService extends Disposable implements IRequestService {
107109
req = rawRequest(opts, (res: http.IncomingMessage) => {
108110
const followRedirects: number = isNumber(options.followRedirects) ? options.followRedirects : 3;
109111
if (res.statusCode && res.statusCode >= 300 && res.statusCode < 400 && followRedirects > 0 && res.headers['location']) {
110-
this._request(assign({}, options, {
112+
this._request({
113+
...options,
111114
url: res.headers['location'],
112115
followRedirects: followRedirects - 1
113-
}), token).then(c, e);
116+
}, token).then(c, e);
114117
} else {
115118
let stream: streams.ReadableStreamEvents<Uint8Array> = res;
116119

src/vs/platform/userDataSync/common/userDataSyncStoreService.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import { getServiceMachineId } from 'vs/platform/serviceMachineId/common/service
1515
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
1616
import { IFileService } from 'vs/platform/files/common/files';
1717
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
18-
import { assign } from 'vs/base/common/objects';
1918
import { generateUuid } from 'vs/base/common/uuid';
2019
import { isWeb } from 'vs/base/common/platform';
2120
import { Emitter, Event } from 'vs/base/common/event';
@@ -355,10 +354,12 @@ export class UserDataSyncStoreClient extends Disposable implements IUserDataSync
355354
this.setDonotMakeRequestsUntil(undefined);
356355

357356
const commonHeaders = await this.commonHeadersPromise;
358-
options.headers = assign(options.headers || {}, commonHeaders, {
357+
options.headers = {
358+
...(options.headers || {}),
359+
...commonHeaders,
359360
'X-Account-Type': this.authToken.type,
360361
'authorization': `Bearer ${this.authToken.token}`,
361-
});
362+
};
362363

363364
// Add session headers
364365
this.addSessionHeaders(options.headers);

src/vs/workbench/contrib/extensions/browser/extensionEditor.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
3737
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
3838
import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
3939
import { Color } from 'vs/base/common/color';
40-
import { assign } from 'vs/base/common/objects';
4140
import { INotificationService } from 'vs/platform/notification/common/notification';
4241
import { CancellationToken } from 'vs/base/common/cancellation';
4342
import { ExtensionsTree, ExtensionData, ExtensionsGridView, getExtensions } from 'vs/workbench/contrib/extensions/browser/extensionsViewer';
@@ -361,7 +360,7 @@ export class ExtensionEditor extends EditorPane {
361360
]
362361
}
363362
*/
364-
this.telemetryService.publicLog('extensionGallery:openExtension', assign(extension.telemetryData, recommendationsData));
363+
this.telemetryService.publicLog('extensionGallery:openExtension', { ...extension.telemetryData, ...recommendationsData });
365364

366365
toggleClass(template.name, 'clickable', !!extension.url);
367366
toggleClass(template.publisher, 'clickable', !!extension.url);
@@ -556,7 +555,7 @@ export class ExtensionEditor extends EditorPane {
556555
]
557556
}
558557
*/
559-
this.telemetryService.publicLog('extensionEditor:navbarChange', assign(extension.telemetryData, { navItem: id }));
558+
this.telemetryService.publicLog('extensionEditor:navbarChange', { ...extension.telemetryData, navItem: id });
560559
}
561560

562561
this.contentDisposables.clear();

src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
1313
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
1414
import { distinct, shuffle } from 'vs/base/common/arrays';
1515
import { Emitter, Event } from 'vs/base/common/event';
16-
import { assign } from 'vs/base/common/objects';
1716
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
1817
import { LifecyclePhase, ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle';
1918
import { DynamicWorkspaceRecommendations } from 'vs/workbench/contrib/extensions/browser/dynamicWorkspaceRecommendations';
@@ -260,7 +259,7 @@ export class ExtensionRecommendationsService extends Disposable implements IExte
260259
]
261260
}
262261
*/
263-
this.telemetryService.publicLog('extensionGallery:install:recommendations', assign(e.gallery.telemetryData, { recommendationReason: recommendationReason.reasonId }));
262+
this.telemetryService.publicLog('extensionGallery:install:recommendations', { ...e.gallery.telemetryData, recommendationReason: recommendationReason.reasonId });
264263
}
265264
}
266265
}

src/vs/workbench/contrib/extensions/browser/extensionsViews.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import { localize } from 'vs/nls';
77
import { Disposable } from 'vs/base/common/lifecycle';
8-
import { assign } from 'vs/base/common/objects';
98
import { Event, Emitter } from 'vs/base/common/event';
109
import { isPromiseCanceledError, getErrorMessage } from 'vs/base/common/errors';
1110
import { PagedModel, IPagedModel, IPager, DelayedPagedModel } from 'vs/base/common/paging';
@@ -198,10 +197,10 @@ export class ExtensionsListView extends ViewPane {
198197
};
199198

200199
switch (parsedQuery.sortBy) {
201-
case 'installs': options = assign(options, { sortBy: SortBy.InstallCount }); break;
202-
case 'rating': options = assign(options, { sortBy: SortBy.WeightedRating }); break;
203-
case 'name': options = assign(options, { sortBy: SortBy.Title }); break;
204-
case 'publishedDate': options = assign(options, { sortBy: SortBy.PublishedDate }); break;
200+
case 'installs': options.sortBy = SortBy.InstallCount; break;
201+
case 'rating': options.sortBy = SortBy.WeightedRating; break;
202+
case 'name': options.sortBy = SortBy.Title; break;
203+
case 'publishedDate': options.sortBy = SortBy.PublishedDate; break;
205204
}
206205

207206
const successCallback = (model: IPagedModel<IExtension>) => {
@@ -472,13 +471,15 @@ export class ExtensionsListView extends ViewPane {
472471
const text = query.value;
473472

474473
if (/\bext:([^\s]+)\b/g.test(text)) {
475-
options = assign(options, { text, source: 'file-extension-tags' });
474+
options.text = text;
475+
options.source = 'file-extension-tags';
476476
return this.extensionsWorkbenchService.queryGallery(options, token).then(pager => this.getPagedModel(pager));
477477
}
478478

479479
let preferredResults: string[] = [];
480480
if (text) {
481-
options = assign(options, { text: text.substr(0, 350), source: 'searchText' });
481+
options.text = text.substr(0, 350);
482+
options.source = 'searchText';
482483
if (!hasUserDefinedSortOrder) {
483484
const searchExperiments = await this.getSearchExperiments();
484485
for (const experiment of searchExperiments) {
@@ -544,7 +545,9 @@ export class ExtensionsListView extends ViewPane {
544545
const names = await this.experimentService.getCuratedExtensionsList(value);
545546
if (Array.isArray(names) && names.length) {
546547
options.source = `curated:${value}`;
547-
const pager = await this.extensionsWorkbenchService.queryGallery(assign(options, { names, pageSize: names.length }), token);
548+
options.names = names;
549+
options.pageSize = names.length;
550+
const pager = await this.extensionsWorkbenchService.queryGallery(options, token);
548551
this.sortFirstPage(pager, names);
549552
return this.getPagedModel(pager || []);
550553
}

0 commit comments

Comments
 (0)