Skip to content

Commit fe3de2e

Browse files
committed
cleanup
1 parent 2cfb898 commit fe3de2e

File tree

1 file changed

+15
-25
lines changed

1 file changed

+15
-25
lines changed

src/publicgalleryapi.ts

+15-25
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,16 @@ export interface ExtensionQuery {
1717
}
1818

1919
export class PublicGalleryAPI {
20-
client: HttpClient;
2120

22-
constructor(public baseUrl: string, public apiVersion = '3.0-preview.1') {
23-
this.client = new HttpClient('vsce');
24-
}
21+
private client = new HttpClient('vsce');
22+
23+
constructor(private baseUrl: string, private apiVersion = '3.0-preview.1') { }
2524

2625
private post(url: string, data: string, additionalHeaders?: IHeaders): Promise<HttpClientResponse> {
2726
return this.client.post(`${this.baseUrl}/_apis/public${url}`, data, additionalHeaders);
2827
}
2928

30-
extensionQuery({
29+
async extensionQuery({
3130
pageNumber = 1,
3231
pageSize = 1,
3332
sortBy = SortByType.Relevance,
@@ -36,30 +35,21 @@ export class PublicGalleryAPI {
3635
criteria = [],
3736
assetTypes = [],
3837
}: ExtensionQuery): Promise<PublishedExtension[]> {
39-
return this.post('/gallery/extensionquery', JSON.stringify({
38+
const data = JSON.stringify({
4039
filters: [{ pageNumber, pageSize, criteria }],
4140
assetTypes,
4241
flags: flags.reduce((memo, flag) => memo | flag, 0)
43-
}), {
44-
Accept: `application/json;api-version=${this.apiVersion}`,
45-
'Content-Type': 'application/json',
46-
})
47-
.then(res => res.readBody())
48-
.then(data => JSON.parse(data))
49-
.then(({ results: [result = {}] = [] }) => result)
50-
.then(({ extensions = [] }) =>
51-
ContractSerializer.deserialize(extensions, TypeInfo.PublishedExtension, false, false)
52-
);
42+
});
43+
44+
const res = await this.post('/gallery/extensionquery', data, { Accept: `application/json;api-version=${this.apiVersion}`, 'Content-Type': 'application/json', });
45+
const raw = JSON.parse(await res.readBody());
46+
47+
return ContractSerializer.deserialize(raw.results[0].extensions, TypeInfo.PublishedExtension, false, false);
5348
}
5449

55-
getExtension(extensionId: string, flags: ExtensionQueryFlags[] = []): Promise<PublishedExtension> {
56-
return this.extensionQuery({
57-
criteria: [{ filterType: ExtensionQueryFilterType.Name, value: extensionId }],
58-
flags,
59-
})
60-
.then(result => result.filter(({ publisher: { publisherName }, extensionName }) =>
61-
extensionId.toLowerCase() === `${publisherName}.${extensionName}`.toLowerCase())
62-
)
63-
.then(([extension]) => extension);
50+
async getExtension(extensionId: string, flags: ExtensionQueryFlags[] = []): Promise<PublishedExtension> {
51+
const query = { criteria: [{ filterType: ExtensionQueryFilterType.Name, value: extensionId }], flags, };
52+
const extensions = await this.extensionQuery(query);
53+
return extensions.filter(({ publisher: { publisherName: publisher }, extensionName: name }) => extensionId.toLowerCase() === `${publisher}.${name}`.toLowerCase())[0];
6454
}
6555
}

0 commit comments

Comments
 (0)