Skip to content

Commit c5221c7

Browse files
authored
refactor: remove usage of any for networkDetails; (#7458)
* refactor: remove usage of any for networkDetails; * chore: use new Response in unit tests;
1 parent e1fd0c6 commit c5221c7

15 files changed

+84
-69
lines changed

api-extractor/report/hls.js.api.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,10 @@ export interface AssetListLoadedData {
9999
assetListResponse: AssetListJSON;
100100
// (undocumented)
101101
event: InterstitialEventWithAssetList;
102+
// Warning: (ae-forgotten-export) The symbol "NullableNetworkDetails" needs to be exported by the entry point hls.d.ts
103+
//
102104
// (undocumented)
103-
networkDetails: any;
105+
networkDetails: NullableNetworkDetails;
104106
}
105107

106108
// Warning: (ae-missing-release-tag) "AssetListLoadingData" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
@@ -1269,7 +1271,7 @@ export interface ErrorData {
12691271
// (undocumented)
12701272
mimeType?: string;
12711273
// (undocumented)
1272-
networkDetails?: any;
1274+
networkDetails?: NullableNetworkDetails;
12731275
// (undocumented)
12741276
parent?: PlaylistLevelType;
12751277
// (undocumented)
@@ -1717,7 +1719,7 @@ export interface FragLoadedData {
17171719
// (undocumented)
17181720
frag: Fragment;
17191721
// (undocumented)
1720-
networkDetails: unknown;
1722+
networkDetails: NullableNetworkDetails;
17211723
// (undocumented)
17221724
part: Part | null;
17231725
// (undocumented)
@@ -1743,7 +1745,7 @@ export interface FragLoadFailResult extends ErrorData {
17431745
// (undocumented)
17441746
frag: Fragment;
17451747
// (undocumented)
1746-
networkDetails: any;
1748+
networkDetails: NullableNetworkDetails;
17471749
// (undocumented)
17481750
part?: Part;
17491751
// (undocumented)
@@ -2990,7 +2992,7 @@ export class KeyLoader extends Logger implements ComponentAPI {
29902992
// (undocumented)
29912993
abort(type?: PlaylistLevelType): void;
29922994
// (undocumented)
2993-
createKeyLoadError(frag: Fragment, details: ErrorDetails | undefined, error: Error, networkDetails?: any, response?: {
2995+
createKeyLoadError(frag: Fragment, details: ErrorDetails | undefined, error: Error, networkDetails?: NullableNetworkDetails, response?: {
29942996
url: string;
29952997
data: undefined;
29962998
code: number;
@@ -3397,7 +3399,7 @@ export interface LevelLoadedData {
33973399
// (undocumented)
33983400
levelInfo: Level;
33993401
// (undocumented)
3400-
networkDetails: any;
3402+
networkDetails: NullableNetworkDetails;
34013403
// (undocumented)
34023404
stats: LoaderStats;
34033405
// (undocumented)
@@ -3639,30 +3641,30 @@ export interface LoaderContext {
36393641
// Warning: (ae-missing-release-tag) "LoaderOnAbort" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
36403642
//
36413643
// @public (undocumented)
3642-
export type LoaderOnAbort<T extends LoaderContext> = (stats: LoaderStats, context: T, networkDetails: any) => void;
3644+
export type LoaderOnAbort<T extends LoaderContext> = (stats: LoaderStats, context: T, networkDetails: NullableNetworkDetails) => void;
36433645

36443646
// Warning: (ae-missing-release-tag) "LoaderOnError" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
36453647
//
36463648
// @public (undocumented)
36473649
export type LoaderOnError<T extends LoaderContext> = (error: {
36483650
code: number;
36493651
text: string;
3650-
}, context: T, networkDetails: any, stats: LoaderStats) => void;
3652+
}, context: T, networkDetails: NullableNetworkDetails, stats: LoaderStats) => void;
36513653

36523654
// Warning: (ae-missing-release-tag) "LoaderOnProgress" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
36533655
//
36543656
// @public (undocumented)
3655-
export type LoaderOnProgress<T extends LoaderContext> = (stats: LoaderStats, context: T, data: string | ArrayBuffer, networkDetails: any) => void;
3657+
export type LoaderOnProgress<T extends LoaderContext> = (stats: LoaderStats, context: T, data: string | ArrayBuffer, networkDetails: NullableNetworkDetails) => void;
36563658

36573659
// Warning: (ae-missing-release-tag) "LoaderOnSuccess" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
36583660
//
36593661
// @public (undocumented)
3660-
export type LoaderOnSuccess<T extends LoaderContext> = (response: LoaderResponse, stats: LoaderStats, context: T, networkDetails: any) => void;
3662+
export type LoaderOnSuccess<T extends LoaderContext> = (response: LoaderResponse, stats: LoaderStats, context: T, networkDetails: NullableNetworkDetails) => void;
36613663

36623664
// Warning: (ae-missing-release-tag) "LoaderOnTimeout" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
36633665
//
36643666
// @public (undocumented)
3665-
export type LoaderOnTimeout<T extends LoaderContext> = (stats: LoaderStats, context: T, networkDetails: any) => void;
3667+
export type LoaderOnTimeout<T extends LoaderContext> = (stats: LoaderStats, context: T, networkDetails: NullableNetworkDetails) => void;
36663668

36673669
// Warning: (ae-missing-release-tag) "LoaderResponse" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
36683670
//
@@ -3811,7 +3813,7 @@ export interface ManifestLoadedData {
38113813
// (undocumented)
38123814
levels: LevelParsed[];
38133815
// (undocumented)
3814-
networkDetails: any;
3816+
networkDetails: NullableNetworkDetails;
38153817
// (undocumented)
38163818
sessionData: Record<string, AttrList> | null;
38173819
// (undocumented)
@@ -4840,7 +4842,7 @@ export interface TrackLoadedData {
48404842
// (undocumented)
48414843
id: number;
48424844
// (undocumented)
4843-
networkDetails: any;
4845+
networkDetails: NullableNetworkDetails;
48444846
// (undocumented)
48454847
stats: LoaderStats;
48464848
// (undocumented)

src/controller/content-steering-controller.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import type {
2525
SteeringManifestLoadedData,
2626
} from '../types/events';
2727
import type { MediaAttributes, MediaPlaylist } from '../types/media-playlist';
28+
import type { NullableNetworkDetails } from '../types/network-details';
2829

2930
export type SteeringManifest = {
3031
VERSION: 1;
@@ -456,7 +457,7 @@ export default class ContentSteeringController
456457
response: LoaderResponse,
457458
stats: LoaderStats,
458459
context: LoaderContext,
459-
networkDetails: any,
460+
networkDetails: NullableNetworkDetails,
460461
) => {
461462
this.log(`Loaded steering manifest: "${url}"`);
462463
const steeringData = response.data as SteeringManifest;
@@ -501,7 +502,7 @@ export default class ContentSteeringController
501502
onError: (
502503
error: { code: number; text: string },
503504
context: LoaderContext,
504-
networkDetails: any,
505+
networkDetails: NullableNetworkDetails,
505506
stats: LoaderStats,
506507
) => {
507508
this.log(
@@ -531,7 +532,7 @@ export default class ContentSteeringController
531532
onTimeout: (
532533
stats: LoaderStats,
533534
context: LoaderContext,
534-
networkDetails: any,
535+
networkDetails: NullableNetworkDetails,
535536
) => {
536537
this.log(`Timeout loading steering manifest (${context.url})`);
537538
this.scheduleRefresh(this.uri || context.url);

src/loader/fragment-loader.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import type {
1313
LoaderCallbacks,
1414
LoaderConfiguration,
1515
} from '../types/loader';
16+
import type { NullableNetworkDetails } from '../types/network-details';
1617

1718
const MIN_CHUNK_SIZE = Math.pow(2, 17); // 128kb
1819

@@ -394,7 +395,7 @@ export interface FragLoadFailResult extends ErrorData {
394395
text: string;
395396
url: string;
396397
};
397-
networkDetails: any;
398+
networkDetails: NullableNetworkDetails;
398399
}
399400

400401
export type FragmentLoadProgressCallback = (

src/loader/interstitial-asset-list.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import type {
1616
LoaderResponse,
1717
LoaderStats,
1818
} from '../types/loader';
19+
import type { NullableNetworkDetails } from '../types/network-details';
1920

2021
export class AssetListLoader {
2122
private hls: Hls;
@@ -74,7 +75,7 @@ export class AssetListLoader {
7475
response: LoaderResponse,
7576
stats: LoaderStats,
7677
context: LoaderContext,
77-
networkDetails: any,
78+
networkDetails: NullableNetworkDetails,
7879
) => {
7980
const assetListResponse = response.data as AssetListJSON;
8081
const assets = assetListResponse?.ASSETS;
@@ -100,7 +101,7 @@ export class AssetListLoader {
100101
onError: (
101102
error: { code: number; text: string },
102103
context: LoaderContext,
103-
networkDetails: any,
104+
networkDetails: NullableNetworkDetails,
104105
stats: LoaderStats,
105106
) => {
106107
const errorData = this.assignAssetListError(
@@ -118,7 +119,7 @@ export class AssetListLoader {
118119
onTimeout: (
119120
stats: LoaderStats,
120121
context: LoaderContext,
121-
networkDetails: any,
122+
networkDetails: NullableNetworkDetails,
122123
) => {
123124
const errorData = this.assignAssetListError(
124125
interstitial,
@@ -144,7 +145,7 @@ export class AssetListLoader {
144145
error: Error,
145146
url: string,
146147
stats?: LoaderStats,
147-
networkDetails?: any,
148+
networkDetails?: NullableNetworkDetails,
148149
): ErrorData {
149150
interstitial.error = error;
150151
return {

src/loader/key-loader.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import type {
2222
LoaderStats,
2323
PlaylistLevelType,
2424
} from '../types/loader';
25+
import type { NullableNetworkDetails } from '../types/network-details';
2526
import type { ILogger } from '../utils/logger';
2627
import type { KeySystemFormats } from '../utils/mediakeys-helper';
2728

@@ -81,7 +82,7 @@ export default class KeyLoader extends Logger implements ComponentAPI {
8182
frag: Fragment,
8283
details: ErrorDetails = ErrorDetails.KEY_LOAD_ERROR,
8384
error: Error,
84-
networkDetails?: any,
85+
networkDetails?: NullableNetworkDetails,
8586
response?: { url: string; data: undefined; code: number; text: string },
8687
): LoadError {
8788
return new LoadError({
@@ -91,7 +92,7 @@ export default class KeyLoader extends Logger implements ComponentAPI {
9192
frag,
9293
response,
9394
error,
94-
networkDetails,
95+
networkDetails: networkDetails || null,
9596
});
9697
}
9798

@@ -304,7 +305,7 @@ export default class KeyLoader extends Logger implements ComponentAPI {
304305
response: LoaderResponse,
305306
stats: LoaderStats,
306307
context: KeyLoaderContext,
307-
networkDetails: any,
308+
networkDetails: NullableNetworkDetails,
308309
) => {
309310
const { frag, keyInfo, url: uri } = context;
310311
const id = getKeyId(keyInfo.decryptdata) || uri;
@@ -332,7 +333,7 @@ export default class KeyLoader extends Logger implements ComponentAPI {
332333
onError: (
333334
response: { code: number; text: string },
334335
context: KeyLoaderContext,
335-
networkDetails: any,
336+
networkDetails: NullableNetworkDetails,
336337
stats: LoaderStats,
337338
) => {
338339
this.resetLoader(context);
@@ -352,7 +353,7 @@ export default class KeyLoader extends Logger implements ComponentAPI {
352353
onTimeout: (
353354
stats: LoaderStats,
354355
context: KeyLoaderContext,
355-
networkDetails: any,
356+
networkDetails: NullableNetworkDetails,
356357
) => {
357358
this.resetLoader(context);
358359
reject(
@@ -368,7 +369,7 @@ export default class KeyLoader extends Logger implements ComponentAPI {
368369
onAbort: (
369370
stats: LoaderStats,
370371
context: KeyLoaderContext,
371-
networkDetails: any,
372+
networkDetails: NullableNetworkDetails,
372373
) => {
373374
this.resetLoader(context);
374375
reject(

src/loader/playlist-loader.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import type {
3434
PlaylistLoaderContext,
3535
} from '../types/loader';
3636
import type { MediaAttributes, MediaPlaylist } from '../types/media-playlist';
37+
import type { NullableNetworkDetails } from '../types/network-details';
3738

3839
function mapContextToLevelType(
3940
context: PlaylistLoaderContext,
@@ -413,7 +414,7 @@ class PlaylistLoader implements NetworkComponentAPI {
413414
response: LoaderResponse,
414415
stats: LoaderStats,
415416
context: PlaylistLoaderContext,
416-
networkDetails: any,
417+
networkDetails: NullableNetworkDetails,
417418
): void {
418419
const hls = this.hls;
419420
const string = response.data as string;
@@ -503,7 +504,7 @@ class PlaylistLoader implements NetworkComponentAPI {
503504
response: LoaderResponse,
504505
stats: LoaderStats,
505506
context: PlaylistLoaderContext,
506-
networkDetails: any,
507+
networkDetails: NullableNetworkDetails,
507508
loader: Loader<PlaylistLoaderContext> | undefined,
508509
): void {
509510
const hls = this.hls;
@@ -574,7 +575,7 @@ class PlaylistLoader implements NetworkComponentAPI {
574575
response: LoaderResponse,
575576
context: PlaylistLoaderContext,
576577
error: Error,
577-
networkDetails: any,
578+
networkDetails: NullableNetworkDetails,
578579
stats: LoaderStats,
579580
): void {
580581
this.hls.trigger(Events.ERROR, {
@@ -594,7 +595,7 @@ class PlaylistLoader implements NetworkComponentAPI {
594595

595596
private handleNetworkError(
596597
context: PlaylistLoaderContext,
597-
networkDetails: any,
598+
networkDetails: NullableNetworkDetails,
598599
timeout = false,
599600
response: { code: number; text: string } | undefined,
600601
stats: LoaderStats,
@@ -663,7 +664,10 @@ class PlaylistLoader implements NetworkComponentAPI {
663664
};
664665

665666
if (response) {
666-
const url = networkDetails?.url || context.url;
667+
let url = context.url;
668+
if (networkDetails && 'url' in networkDetails) {
669+
url = networkDetails.url;
670+
}
667671
errorData.response = { url, data: undefined as any, ...response };
668672
}
669673

@@ -675,7 +679,7 @@ class PlaylistLoader implements NetworkComponentAPI {
675679
response: LoaderResponse,
676680
stats: LoaderStats,
677681
context: PlaylistLoaderContext,
678-
networkDetails: any,
682+
networkDetails: NullableNetworkDetails,
679683
loader: Loader<PlaylistLoaderContext> | undefined,
680684
): void {
681685
const hls = this.hls;

src/types/events.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import type {
3535
} from '../controller/interstitials-schedule';
3636
import type { ErrorDetails, ErrorTypes } from '../errors';
3737
import type { HlsListeners } from '../events';
38+
import type { NullableNetworkDetails } from './network-details';
3839
import type { Fragment, MediaFragment, Part } from '../loader/fragment';
3940
import type {
4041
AssetListJSON,
@@ -132,7 +133,7 @@ export interface ManifestLoadedData {
132133
captions?: MediaPlaylist[];
133134
contentSteering: ContentSteeringOptions | null;
134135
levels: LevelParsed[];
135-
networkDetails: any;
136+
networkDetails: NullableNetworkDetails;
136137
sessionData: Record<string, AttrList> | null;
137138
sessionKeys: LevelKey[] | null;
138139
startTimeOffset: number | null;
@@ -208,7 +209,7 @@ export interface TrackLoadedData {
208209
details: LevelDetails;
209210
id: number;
210211
groupId: string;
211-
networkDetails: any;
212+
networkDetails: NullableNetworkDetails;
212213
stats: LoaderStats;
213214
deliveryDirectives: HlsUrlParameters | null;
214215
track: MediaPlaylist;
@@ -219,7 +220,7 @@ export interface LevelLoadedData {
219220
id: number;
220221
level: number;
221222
levelInfo: Level;
222-
networkDetails: any;
223+
networkDetails: NullableNetworkDetails;
223224
stats: LoaderStats;
224225
deliveryDirectives: HlsUrlParameters | null;
225226
withoutMultiVariant?: boolean;
@@ -326,7 +327,7 @@ export interface ErrorData {
326327
level?: number | undefined;
327328
levelRetry?: boolean;
328329
loader?: Loader<LoaderContext>;
329-
networkDetails?: any;
330+
networkDetails?: NullableNetworkDetails;
330331
stalled?: { start: number };
331332
stats?: LoaderStats;
332333
mimeType?: string;
@@ -394,7 +395,7 @@ export interface FragLoadedData {
394395
frag: Fragment;
395396
part: Part | null;
396397
payload: ArrayBuffer;
397-
networkDetails: unknown;
398+
networkDetails: NullableNetworkDetails;
398399
}
399400

400401
export interface PartsLoadedData {
@@ -474,7 +475,7 @@ export interface AssetListLoadingData {
474475
export interface AssetListLoadedData {
475476
event: InterstitialEventWithAssetList;
476477
assetListResponse: AssetListJSON;
477-
networkDetails: any;
478+
networkDetails: NullableNetworkDetails;
478479
}
479480

480481
export interface InterstitialsUpdatedData {

0 commit comments

Comments
 (0)