Skip to content

Commit 0e8ee94

Browse files
stepankuzmingithub-actions[bot]
authored andcommitted
Fix internal TypeScript types (internal-8355)
GitOrigin-RevId: 40007eba3ee2246881177de4920b880c48920228
1 parent 0bab31c commit 0e8ee94

File tree

3 files changed

+31
-42
lines changed

3 files changed

+31
-42
lines changed

src/source/load_vector_tile.ts

Lines changed: 24 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ import {getArrayBuffer} from '../util/ajax';
44

55
import type {Callback} from '../types/callback';
66
import type {WorkerSourceVectorTileRequest} from './worker_source';
7-
import type Scheduler from '../util/scheduler';
7+
import type {default as Scheduler, TaskMetadata} from '../util/scheduler';
88

99
export type LoadVectorTileResult = {
1010
rawData: ArrayBuffer;
1111
vectorTile?: VectorTile;
12-
resourceTiming?: Array<PerformanceResourceTiming>;
13-
responseHeaders?: Map<string, string>
12+
responseHeaders?: Map<string, string>;
1413
};
1514

1615
/**
@@ -21,61 +20,52 @@ export type LoadVectorTileResult = {
2120
*/
2221
export type LoadVectorDataCallback = Callback<LoadVectorTileResult | null | undefined>;
2322

24-
export type AbortVectorData = () => void;
25-
export type LoadVectorData = (params: WorkerSourceVectorTileRequest, callback: LoadVectorDataCallback) => AbortVectorData | undefined;
23+
export type LoadVectorData = (params: WorkerSourceVectorTileRequest, callback: LoadVectorDataCallback) => AbortVectorDataRequest | undefined;
24+
25+
type VectorDataRequest = (callback: LoadVectorDataCallback) => AbortVectorDataRequest;
26+
type AbortVectorDataRequest = () => void;
27+
28+
type DedupedRequestEntry = {
29+
result?: [Error | null, LoadVectorTileResult];
30+
cancel?: AbortVectorDataRequest;
31+
callbacks?: LoadVectorDataCallback[];
32+
};
33+
2634
export class DedupedRequest {
27-
entries: {
28-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
29-
[key: string]: any;
30-
};
31-
scheduler: Scheduler | null | undefined;
35+
scheduler?: Scheduler;
36+
entries: {[key: string]: DedupedRequestEntry;};
3237

3338
constructor(scheduler?: Scheduler) {
3439
this.entries = {};
3540
this.scheduler = scheduler;
3641
}
3742

38-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
39-
request(key: string, metadata: any, request: any, callback: LoadVectorDataCallback): () => void {
40-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
43+
request(key: string, metadata: TaskMetadata, request: VectorDataRequest, callback: LoadVectorDataCallback): AbortVectorDataRequest {
4144
const entry = this.entries[key] = this.entries[key] || {callbacks: []};
4245

43-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
4446
if (entry.result) {
45-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
4647
const [err, result] = entry.result;
4748
if (this.scheduler) {
4849
this.scheduler.add(() => {
49-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
5050
callback(err, result);
51-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
5251
}, metadata);
5352
} else {
54-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
5553
callback(err, result);
5654
}
5755
return () => {};
5856
}
5957

60-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
6158
entry.callbacks.push(callback);
6259

63-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
6460
if (!entry.cancel) {
65-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
66-
entry.cancel = request((err, result) => {
67-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
61+
entry.cancel = request((err: Error, result: LoadVectorTileResult) => {
6862
entry.result = [err, result];
69-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
7063
for (const cb of entry.callbacks) {
7164
if (this.scheduler) {
7265
this.scheduler.add(() => {
73-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
7466
cb(err, result);
75-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
7667
}, metadata);
7768
} else {
78-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
7969
cb(err, result);
8070
}
8171
}
@@ -84,13 +74,9 @@ export class DedupedRequest {
8474
}
8575

8676
return () => {
87-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
8877
if (entry.result) return;
89-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
9078
entry.callbacks = entry.callbacks.filter(cb => cb !== callback);
91-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
9279
if (!entry.callbacks.length) {
93-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
9480
entry.cancel();
9581
delete this.entries[key];
9682
}
@@ -102,20 +88,21 @@ export class DedupedRequest {
10288
* @private
10389
*/
10490
export function loadVectorTile(
91+
this: {deduped: DedupedRequest},
10592
params: WorkerSourceVectorTileRequest,
10693
callback: LoadVectorDataCallback,
10794
skipParse?: boolean,
108-
): () => void {
95+
): AbortVectorDataRequest {
10996
const key = JSON.stringify(params.request);
11097

111-
const makeRequest = (callback: LoadVectorDataCallback) => {
98+
const makeRequest: VectorDataRequest = (callback: LoadVectorDataCallback) => {
11299
const request = getArrayBuffer(params.request, (err?: Error | null, data?: ArrayBuffer | null, responseHeaders?: Headers) => {
113100
if (err) {
114101
callback(err);
115102
} else if (data) {
116103
callback(null, {
117-
vectorTile: skipParse ? undefined : new VectorTile(new Protobuf(data)),
118104
rawData: data,
105+
vectorTile: skipParse ? undefined : new VectorTile(new Protobuf(data)),
119106
responseHeaders: new Map(responseHeaders.entries())
120107
});
121108
}
@@ -128,11 +115,9 @@ export function loadVectorTile(
128115

129116
if (params.data) {
130117
// if we already got the result earlier (on the main thread), return it directly
131-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
132-
(this.deduped as DedupedRequest).entries[key] = {result: [null, params.data]};
118+
this.deduped.entries[key] = {result: [null, params.data]};
133119
}
134120

135-
const callbackMetadata = {type: 'parseTile', isSymbolTile: params.isSymbolTile, zoom: params.tileZoom};
136-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
137-
return (this.deduped as DedupedRequest).request(key, callbackMetadata, makeRequest, callback);
121+
const callbackMetadata: TaskMetadata = {type: 'parseTile', isSymbolTile: params.isSymbolTile, zoom: params.tileZoom};
122+
return this.deduped.request(key, callbackMetadata, makeRequest, callback);
138123
}

src/source/vector_tile_source.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,9 +300,9 @@ class VectorTileSource extends Evented<SourceEvents> implements ISource<'vector'
300300
const expiryData = getExpiryDataFromHeaders(data.responseHeaders);
301301
// the worker will skip the network request if the data is already there
302302
params.data = {
303-
cacheControl: expiryData.cacheControl,
303+
rawData: data.rawData.slice(0),
304304
expires: expiryData.expires,
305-
rawData: data.rawData.slice(0)
305+
cacheControl: expiryData.cacheControl,
306306
};
307307
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
308308
if (tile.actor) tile.actor.send('loadTile', params, done.bind(this), undefined, true);

src/source/worker_source.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,11 @@ export type WorkerSourceVectorTileRequest = WorkerSourceTileRequest & {
6666
tileSize: number;
6767
tileZoom: number;
6868
zoom: number;
69-
data?: unknown;
69+
data?: {
70+
rawData: ArrayBuffer;
71+
expires?: string;
72+
cacheControl?: string;
73+
};
7074
extraShadowCaster?: boolean;
7175
isSymbolTile?: boolean | null;
7276
partial?: boolean;

0 commit comments

Comments
 (0)