rx-player 3.29.0-dev.2022091600 → 3.29.0-dev.2022103100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -10
- package/MAINTAINERS.md +2 -1
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/browser_detection.d.ts +4 -1
- package/dist/_esm5.processed/compat/browser_detection.js +7 -1
- package/dist/_esm5.processed/compat/can_reuse_media_keys.d.ts +12 -0
- package/dist/_esm5.processed/compat/can_reuse_media_keys.js +15 -0
- package/dist/_esm5.processed/compat/enable_audio_track.d.ts +11 -0
- package/dist/_esm5.processed/compat/enable_audio_track.js +26 -0
- package/dist/_esm5.processed/compat/index.d.ts +4 -2
- package/dist/_esm5.processed/compat/index.js +4 -2
- package/dist/_esm5.processed/compat/{should_renew_media_keys.d.ts → should_renew_media_key_system_access.d.ts} +3 -3
- package/dist/_esm5.processed/compat/{should_renew_media_keys.js → should_renew_media_key_system_access.js} +3 -3
- package/dist/_esm5.processed/config.d.ts +1 -0
- package/dist/_esm5.processed/core/api/playback_observer.d.ts +14 -5
- package/dist/_esm5.processed/core/api/playback_observer.js +54 -22
- package/dist/_esm5.processed/core/api/public_api.d.ts +7 -4
- package/dist/_esm5.processed/core/api/public_api.js +79 -61
- package/dist/_esm5.processed/core/api/tracks_management/media_element_track_choice_manager.js +9 -10
- package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +1 -1
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +3 -3
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +4 -1
- package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.d.ts +98 -0
- package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +173 -0
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +4 -4
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +2 -1
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +15 -16
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +3 -1
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +5 -2
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +103 -0
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +414 -0
- package/dist/_esm5.processed/core/init/content_time_boundaries_observer.d.ts +4 -3
- package/dist/_esm5.processed/core/init/content_time_boundaries_observer.js +21 -22
- package/dist/_esm5.processed/core/init/initialize_media_source.d.ts +18 -4
- package/dist/_esm5.processed/core/init/initialize_media_source.js +10 -2
- package/dist/_esm5.processed/core/init/load_on_media_source.js +7 -1
- package/dist/_esm5.processed/core/init/stall_avoider.js +3 -1
- package/dist/_esm5.processed/default_config.d.ts +11 -0
- package/dist/_esm5.processed/default_config.js +11 -0
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +1 -1
- package/dist/_esm5.processed/manifest/manifest.js +11 -2
- package/dist/_esm5.processed/manifest/representation.d.ts +12 -1
- package/dist/_esm5.processed/manifest/representation.js +1 -0
- package/dist/_esm5.processed/manifest/representation_index/static.d.ts +1 -1
- package/dist/_esm5.processed/manifest/representation_index/static.js +2 -2
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +32 -15
- package/dist/_esm5.processed/manifest/update_period_in_place.js +1 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +10 -9
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +11 -11
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +7 -7
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +12 -8
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +5 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +16 -16
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +11 -10
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +14 -13
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.d.ts +3 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +4 -12
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +1 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +6 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.d.ts +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +3 -8
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +2 -20
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +0 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +0 -11
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +5 -1
- package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +7 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +17 -11
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +24 -0
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +8 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +9 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +2 -1
- package/dist/_esm5.processed/transports/dash/construct_segment_url.d.ts +18 -0
- package/dist/_esm5.processed/transports/dash/construct_segment_url.js +21 -0
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +3 -2
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +5 -3
- package/dist/_esm5.processed/transports/dash/segment_loader.js +4 -2
- package/dist/_esm5.processed/transports/dash/text_loader.js +4 -2
- package/dist/_esm5.processed/transports/dash/text_parser.js +3 -1
- package/dist/_esm5.processed/transports/local/segment_loader.d.ts +3 -2
- package/dist/_esm5.processed/transports/local/segment_loader.js +2 -2
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +8 -8
- package/dist/_esm5.processed/transports/smooth/pipelines.js +11 -7
- package/dist/_esm5.processed/transports/smooth/utils.d.ts +4 -2
- package/dist/_esm5.processed/transports/smooth/utils.js +7 -1
- package/dist/_esm5.processed/transports/types.d.ts +5 -3
- package/dist/_esm5.processed/utils/event_emitter.d.ts +1 -2
- package/dist/_esm5.processed/utils/resolve_url.d.ts +7 -4
- package/dist/_esm5.processed/utils/resolve_url.js +11 -8
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +5656 -13236
- package/dist/rx-player.min.js +1 -1
- package/jest.config.js +28 -23
- package/package.json +29 -29
- package/sonar-project.properties +1 -1
- package/src/compat/__tests__/can_reuse_media_keys.test.ts +54 -0
- package/src/compat/__tests__/enable_audio_track.test.ts +341 -0
- package/src/compat/__tests__/{should_renew_media_keys.test.ts → should_renew_media_key_system_access.test.ts} +7 -5
- package/src/compat/browser_detection.ts +10 -0
- package/src/compat/can_reuse_media_keys.ts +19 -0
- package/src/compat/enable_audio_track.ts +33 -0
- package/src/compat/index.ts +6 -2
- package/src/compat/{should_renew_media_keys.ts → should_renew_media_key_system_access.ts} +3 -3
- package/src/core/api/playback_observer.ts +97 -33
- package/src/core/api/public_api.ts +126 -74
- package/src/core/api/tracks_management/media_element_track_choice_manager.ts +3 -11
- package/src/core/decrypt/__tests__/__global__/media_keys.test.ts +182 -0
- package/src/core/decrypt/__tests__/__global__/utils.ts +2 -0
- package/src/core/decrypt/find_key_system.ts +3 -3
- package/src/core/decrypt/get_media_keys.ts +5 -1
- package/src/core/fetchers/cdn_prioritizer.ts +198 -0
- package/src/core/fetchers/manifest/manifest_fetcher.ts +7 -11
- package/src/core/fetchers/segment/segment_fetcher.ts +12 -10
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +10 -1
- package/src/core/fetchers/utils/schedule_request.ts +482 -0
- package/src/core/init/content_time_boundaries_observer.ts +12 -12
- package/src/core/init/initialize_media_source.ts +31 -4
- package/src/core/init/load_on_media_source.ts +11 -2
- package/src/core/init/stall_avoider.ts +4 -1
- package/src/core/stream/orchestrator/stream_orchestrator.ts +0 -1
- package/src/default_config.ts +12 -0
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +1 -0
- package/src/manifest/manifest.ts +11 -2
- package/src/manifest/representation.ts +15 -0
- package/src/manifest/representation_index/__tests__/static.test.ts +1 -1
- package/src/manifest/representation_index/static.ts +3 -3
- package/src/manifest/representation_index/types.ts +33 -15
- package/src/manifest/update_period_in_place.ts +1 -0
- package/src/parsers/manifest/dash/common/indexes/base.ts +22 -23
- package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +6 -4
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +5 -5
- package/src/parsers/manifest/dash/common/indexes/list.ts +19 -20
- package/src/parsers/manifest/dash/common/indexes/template.ts +23 -27
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +25 -23
- package/src/parsers/manifest/dash/common/indexes/tokens.ts +7 -18
- package/src/parsers/manifest/dash/common/parse_mpd.ts +2 -4
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +1 -6
- package/src/parsers/manifest/dash/common/parse_representations.ts +9 -0
- package/src/parsers/manifest/dash/common/resolve_base_urls.ts +5 -9
- package/src/parsers/manifest/dash/js-parser/node_parsers/BaseURL.ts +2 -29
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/AdaptationSet.test.ts +7 -11
- package/src/parsers/manifest/dash/node_parser_types.ts +0 -7
- package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +3 -1
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +1 -8
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +0 -13
- package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +8 -0
- package/src/parsers/manifest/local/parse_local_manifest.ts +1 -0
- package/src/parsers/manifest/local/representation_index.ts +2 -2
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +7 -1
- package/src/parsers/manifest/smooth/create_parser.ts +17 -13
- package/src/parsers/manifest/smooth/representation_index.ts +2 -2
- package/src/parsers/manifest/types.ts +26 -1
- package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +15 -0
- package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +15 -0
- package/src/parsers/texttracks/ttml/html/apply_extent.ts +8 -1
- package/src/parsers/texttracks/ttml/html/apply_origin.ts +9 -1
- package/src/parsers/texttracks/ttml/html/create_element.ts +2 -2
- package/src/transports/dash/construct_segment_url.ts +28 -0
- package/src/transports/dash/image_pipelines.ts +5 -2
- package/src/transports/dash/segment_loader.ts +5 -2
- package/src/transports/dash/text_loader.ts +5 -2
- package/src/transports/dash/text_parser.ts +3 -1
- package/src/transports/local/segment_loader.ts +3 -2
- package/src/transports/metaplaylist/pipelines.ts +28 -9
- package/src/transports/smooth/pipelines.ts +12 -6
- package/src/transports/smooth/utils.ts +13 -1
- package/src/transports/types.ts +6 -3
- package/src/utils/__tests__/event_emitter.test.ts +72 -67
- package/src/utils/__tests__/initialization_segment_cache.test.ts +7 -7
- package/src/utils/__tests__/resolve_url.test.ts +27 -23
- package/src/utils/event_emitter.ts +1 -3
- package/src/utils/resolve_url.ts +11 -8
- package/dist/_esm5.processed/core/fetchers/utils/try_urls_with_backoff.d.ts +0 -85
- package/dist/_esm5.processed/core/fetchers/utils/try_urls_with_backoff.js +0 -264
- package/dummy +0 -1
- package/src/core/fetchers/utils/try_urls_with_backoff.ts +0 -287
package/src/transports/types.ts
CHANGED
|
@@ -23,6 +23,7 @@ import Manifest, {
|
|
|
23
23
|
Period,
|
|
24
24
|
Representation,
|
|
25
25
|
} from "../manifest";
|
|
26
|
+
import { ICdnMetadata } from "../parsers/manifest";
|
|
26
27
|
import {
|
|
27
28
|
IBifThumbnail,
|
|
28
29
|
ILoadedManifestFormat,
|
|
@@ -52,6 +53,7 @@ export type ITransportFunction = (options : ITransportOptions) =>
|
|
|
52
53
|
export interface ITransportPipelines {
|
|
53
54
|
/** Functions allowing to load an parse the Manifest for this transport. */
|
|
54
55
|
manifest : ITransportManifestPipeline;
|
|
56
|
+
|
|
55
57
|
/** Functions allowing to load an parse audio segments. */
|
|
56
58
|
audio : ISegmentPipeline<ILoadedAudioVideoSegmentFormat,
|
|
57
59
|
Uint8Array | ArrayBuffer | null>;
|
|
@@ -222,8 +224,9 @@ export interface ISegmentPipeline<
|
|
|
222
224
|
|
|
223
225
|
/**
|
|
224
226
|
* Segment loader function, allowing to load a segment of any type.
|
|
225
|
-
* @param {string|null}
|
|
226
|
-
*
|
|
227
|
+
* @param {string|null} wantedCdn - CDN metadata for the CDN on which the
|
|
228
|
+
* segment should be downloaded.
|
|
229
|
+
* `null` if we do not have such CDN (in which case the segment should be loaded
|
|
227
230
|
* through other means, such as information taken from the segment's content).
|
|
228
231
|
* @param {Object} content - Content linked to the wanted segment.
|
|
229
232
|
* @param {CancellationSignal} cancelSignal - Cancellation signal which will
|
|
@@ -237,7 +240,7 @@ export interface ISegmentPipeline<
|
|
|
237
240
|
* the segment.
|
|
238
241
|
*/
|
|
239
242
|
export type ISegmentLoader<TLoadedFormat> = (
|
|
240
|
-
|
|
243
|
+
wantedCdn : ICdnMetadata | null,
|
|
241
244
|
content : ISegmentContext,
|
|
242
245
|
options : ISegmentLoaderOptions,
|
|
243
246
|
cancelSignal : CancellationSignal,
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
18
|
+
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
19
|
+
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
20
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
21
|
+
|
|
17
22
|
import { take } from "rxjs";
|
|
18
23
|
import log from "../../log";
|
|
19
24
|
import EventEmitter, {
|
|
@@ -32,9 +37,9 @@ describe("utils - EventEmitter", () => {
|
|
|
32
37
|
});
|
|
33
38
|
|
|
34
39
|
expect(wasCalled).toEqual(0);
|
|
35
|
-
eventEmitter.trigger("something", undefined);
|
|
40
|
+
(eventEmitter as any).trigger("something", undefined);
|
|
36
41
|
expect(wasCalled).toEqual(1);
|
|
37
|
-
eventEmitter.trigger("nope", undefined);
|
|
42
|
+
(eventEmitter as any).trigger("nope", undefined);
|
|
38
43
|
expect(wasCalled).toEqual(1);
|
|
39
44
|
eventEmitter.removeEventListener();
|
|
40
45
|
});
|
|
@@ -59,33 +64,33 @@ describe("utils - EventEmitter", () => {
|
|
|
59
64
|
expect(wasCalledWithString).toEqual(0);
|
|
60
65
|
expect(wasCalledWithObject).toEqual(0);
|
|
61
66
|
|
|
62
|
-
eventEmitter.trigger("something", undefined);
|
|
67
|
+
(eventEmitter as any).trigger("something", undefined);
|
|
63
68
|
expect(wasCalledWithString).toEqual(0);
|
|
64
69
|
expect(wasCalledWithObject).toEqual(0);
|
|
65
70
|
|
|
66
|
-
eventEmitter.trigger("something", "a");
|
|
71
|
+
(eventEmitter as any).trigger("something", "a");
|
|
67
72
|
expect(wasCalledWithString).toEqual(1);
|
|
68
73
|
expect(wasCalledWithObject).toEqual(0);
|
|
69
74
|
|
|
70
|
-
eventEmitter.trigger("nope", undefined);
|
|
75
|
+
(eventEmitter as any).trigger("nope", undefined);
|
|
71
76
|
expect(wasCalledWithString).toEqual(1);
|
|
72
77
|
expect(wasCalledWithObject).toEqual(0);
|
|
73
78
|
|
|
74
|
-
eventEmitter.trigger("nope", undefined);
|
|
79
|
+
(eventEmitter as any).trigger("nope", undefined);
|
|
75
80
|
expect(wasCalledWithString).toEqual(1);
|
|
76
81
|
expect(wasCalledWithObject).toEqual(0);
|
|
77
82
|
|
|
78
|
-
eventEmitter.trigger("something", { a: "b" });
|
|
83
|
+
(eventEmitter as any).trigger("something", { a: "b" });
|
|
79
84
|
expect(wasCalledWithString).toEqual(1);
|
|
80
85
|
expect(wasCalledWithObject).toEqual(1);
|
|
81
86
|
|
|
82
|
-
eventEmitter.trigger("something", "a");
|
|
83
|
-
eventEmitter.trigger("something", "a");
|
|
84
|
-
eventEmitter.trigger("something", "a");
|
|
87
|
+
(eventEmitter as any).trigger("something", "a");
|
|
88
|
+
(eventEmitter as any).trigger("something", "a");
|
|
89
|
+
(eventEmitter as any).trigger("something", "a");
|
|
85
90
|
expect(wasCalledWithString).toEqual(4);
|
|
86
91
|
expect(wasCalledWithObject).toEqual(1);
|
|
87
92
|
|
|
88
|
-
eventEmitter.trigger("nope", undefined);
|
|
93
|
+
(eventEmitter as any).trigger("nope", undefined);
|
|
89
94
|
expect(wasCalledWithString).toEqual(4);
|
|
90
95
|
expect(wasCalledWithObject).toEqual(1);
|
|
91
96
|
eventEmitter.removeEventListener();
|
|
@@ -111,38 +116,38 @@ describe("utils - EventEmitter", () => {
|
|
|
111
116
|
expect(wasCalledWithString).toEqual(0);
|
|
112
117
|
expect(wasCalledWithObject).toEqual(0);
|
|
113
118
|
|
|
114
|
-
eventEmitter.trigger("something", undefined);
|
|
119
|
+
(eventEmitter as any).trigger("something", undefined);
|
|
115
120
|
expect(wasCalledWithString).toEqual(0);
|
|
116
121
|
expect(wasCalledWithObject).toEqual(0);
|
|
117
122
|
|
|
118
|
-
eventEmitter.trigger("something", "a");
|
|
123
|
+
(eventEmitter as any).trigger("something", "a");
|
|
119
124
|
expect(wasCalledWithString).toEqual(1);
|
|
120
125
|
expect(wasCalledWithObject).toEqual(0);
|
|
121
126
|
|
|
122
|
-
eventEmitter.trigger("nope", undefined);
|
|
127
|
+
(eventEmitter as any).trigger("nope", undefined);
|
|
123
128
|
expect(wasCalledWithString).toEqual(1);
|
|
124
129
|
expect(wasCalledWithObject).toEqual(0);
|
|
125
130
|
|
|
126
|
-
eventEmitter.trigger("nope", "a");
|
|
131
|
+
(eventEmitter as any).trigger("nope", "a");
|
|
127
132
|
expect(wasCalledWithString).toEqual(2);
|
|
128
133
|
expect(wasCalledWithObject).toEqual(0);
|
|
129
134
|
|
|
130
|
-
eventEmitter.trigger("something", { a: "b" });
|
|
135
|
+
(eventEmitter as any).trigger("something", { a: "b" });
|
|
131
136
|
expect(wasCalledWithString).toEqual(2);
|
|
132
137
|
expect(wasCalledWithObject).toEqual(1);
|
|
133
138
|
|
|
134
139
|
eventEmitter.removeEventListener("something", callback);
|
|
135
|
-
eventEmitter.trigger("something", "a");
|
|
136
|
-
eventEmitter.trigger("something", "a");
|
|
137
|
-
eventEmitter.trigger("something", "a");
|
|
140
|
+
(eventEmitter as any).trigger("something", "a");
|
|
141
|
+
(eventEmitter as any).trigger("something", "a");
|
|
142
|
+
(eventEmitter as any).trigger("something", "a");
|
|
138
143
|
expect(wasCalledWithString).toEqual(2);
|
|
139
144
|
expect(wasCalledWithObject).toEqual(1);
|
|
140
145
|
|
|
141
|
-
eventEmitter.trigger("nope", undefined);
|
|
146
|
+
(eventEmitter as any).trigger("nope", undefined);
|
|
142
147
|
expect(wasCalledWithString).toEqual(2);
|
|
143
148
|
expect(wasCalledWithObject).toEqual(1);
|
|
144
149
|
|
|
145
|
-
eventEmitter.trigger("nope", "a");
|
|
150
|
+
(eventEmitter as any).trigger("nope", "a");
|
|
146
151
|
expect(wasCalledWithString).toEqual(3);
|
|
147
152
|
expect(wasCalledWithObject).toEqual(1);
|
|
148
153
|
eventEmitter.removeEventListener();
|
|
@@ -192,7 +197,7 @@ describe("utils - EventEmitter", () => {
|
|
|
192
197
|
expect(wasCalledWithString3).toEqual(0);
|
|
193
198
|
expect(wasCalledWithObject3).toEqual(0);
|
|
194
199
|
|
|
195
|
-
eventEmitter.trigger("something", undefined);
|
|
200
|
+
(eventEmitter as any).trigger("something", undefined);
|
|
196
201
|
expect(wasCalledWithString1).toEqual(0);
|
|
197
202
|
expect(wasCalledWithObject1).toEqual(0);
|
|
198
203
|
expect(wasCalledWithString2).toEqual(0);
|
|
@@ -200,7 +205,7 @@ describe("utils - EventEmitter", () => {
|
|
|
200
205
|
expect(wasCalledWithString3).toEqual(0);
|
|
201
206
|
expect(wasCalledWithObject3).toEqual(0);
|
|
202
207
|
|
|
203
|
-
eventEmitter.trigger("something", "a");
|
|
208
|
+
(eventEmitter as any).trigger("something", "a");
|
|
204
209
|
expect(wasCalledWithString1).toEqual(1);
|
|
205
210
|
expect(wasCalledWithObject1).toEqual(0);
|
|
206
211
|
expect(wasCalledWithString2).toEqual(1);
|
|
@@ -216,7 +221,7 @@ describe("utils - EventEmitter", () => {
|
|
|
216
221
|
expect(wasCalledWithString3).toEqual(0);
|
|
217
222
|
expect(wasCalledWithObject3).toEqual(0);
|
|
218
223
|
|
|
219
|
-
eventEmitter.trigger("something", "a");
|
|
224
|
+
(eventEmitter as any).trigger("something", "a");
|
|
220
225
|
expect(wasCalledWithString1).toEqual(2);
|
|
221
226
|
expect(wasCalledWithObject1).toEqual(0);
|
|
222
227
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -224,7 +229,7 @@ describe("utils - EventEmitter", () => {
|
|
|
224
229
|
expect(wasCalledWithString3).toEqual(1);
|
|
225
230
|
expect(wasCalledWithObject3).toEqual(0);
|
|
226
231
|
|
|
227
|
-
eventEmitter.trigger("nope", undefined);
|
|
232
|
+
(eventEmitter as any).trigger("nope", undefined);
|
|
228
233
|
expect(wasCalledWithString1).toEqual(2);
|
|
229
234
|
expect(wasCalledWithObject1).toEqual(0);
|
|
230
235
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -232,7 +237,7 @@ describe("utils - EventEmitter", () => {
|
|
|
232
237
|
expect(wasCalledWithString3).toEqual(1);
|
|
233
238
|
expect(wasCalledWithObject3).toEqual(0);
|
|
234
239
|
|
|
235
|
-
eventEmitter.trigger("nope", "a");
|
|
240
|
+
(eventEmitter as any).trigger("nope", "a");
|
|
236
241
|
expect(wasCalledWithString1).toEqual(3);
|
|
237
242
|
expect(wasCalledWithObject1).toEqual(0);
|
|
238
243
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -240,7 +245,7 @@ describe("utils - EventEmitter", () => {
|
|
|
240
245
|
expect(wasCalledWithString3).toEqual(2);
|
|
241
246
|
expect(wasCalledWithObject3).toEqual(0);
|
|
242
247
|
|
|
243
|
-
eventEmitter.trigger("something", { a: "b" });
|
|
248
|
+
(eventEmitter as any).trigger("something", { a: "b" });
|
|
244
249
|
expect(wasCalledWithString1).toEqual(3);
|
|
245
250
|
expect(wasCalledWithObject1).toEqual(1);
|
|
246
251
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -256,7 +261,7 @@ describe("utils - EventEmitter", () => {
|
|
|
256
261
|
expect(wasCalledWithString3).toEqual(2);
|
|
257
262
|
expect(wasCalledWithObject3).toEqual(1);
|
|
258
263
|
|
|
259
|
-
eventEmitter.trigger("something", { a: "b" });
|
|
264
|
+
(eventEmitter as any).trigger("something", { a: "b" });
|
|
260
265
|
expect(wasCalledWithString1).toEqual(3);
|
|
261
266
|
expect(wasCalledWithObject1).toEqual(2);
|
|
262
267
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -264,7 +269,7 @@ describe("utils - EventEmitter", () => {
|
|
|
264
269
|
expect(wasCalledWithString3).toEqual(2);
|
|
265
270
|
expect(wasCalledWithObject3).toEqual(2);
|
|
266
271
|
|
|
267
|
-
eventEmitter.trigger("nope", { a: "b" });
|
|
272
|
+
(eventEmitter as any).trigger("nope", { a: "b" });
|
|
268
273
|
expect(wasCalledWithString1).toEqual(3);
|
|
269
274
|
expect(wasCalledWithObject1).toEqual(3);
|
|
270
275
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -320,7 +325,7 @@ describe("utils - EventEmitter", () => {
|
|
|
320
325
|
expect(wasCalledWithString3).toEqual(0);
|
|
321
326
|
expect(wasCalledWithObject3).toEqual(0);
|
|
322
327
|
|
|
323
|
-
eventEmitter.trigger("something", undefined);
|
|
328
|
+
(eventEmitter as any).trigger("something", undefined);
|
|
324
329
|
expect(wasCalledWithString1).toEqual(0);
|
|
325
330
|
expect(wasCalledWithObject1).toEqual(0);
|
|
326
331
|
expect(wasCalledWithString2).toEqual(0);
|
|
@@ -328,7 +333,7 @@ describe("utils - EventEmitter", () => {
|
|
|
328
333
|
expect(wasCalledWithString3).toEqual(0);
|
|
329
334
|
expect(wasCalledWithObject3).toEqual(0);
|
|
330
335
|
|
|
331
|
-
eventEmitter.trigger("something", "a");
|
|
336
|
+
(eventEmitter as any).trigger("something", "a");
|
|
332
337
|
expect(wasCalledWithString1).toEqual(1);
|
|
333
338
|
expect(wasCalledWithObject1).toEqual(0);
|
|
334
339
|
expect(wasCalledWithString2).toEqual(1);
|
|
@@ -344,7 +349,7 @@ describe("utils - EventEmitter", () => {
|
|
|
344
349
|
expect(wasCalledWithString3).toEqual(0);
|
|
345
350
|
expect(wasCalledWithObject3).toEqual(0);
|
|
346
351
|
|
|
347
|
-
eventEmitter.trigger("something", "a");
|
|
352
|
+
(eventEmitter as any).trigger("something", "a");
|
|
348
353
|
expect(wasCalledWithString1).toEqual(2);
|
|
349
354
|
expect(wasCalledWithObject1).toEqual(0);
|
|
350
355
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -352,7 +357,7 @@ describe("utils - EventEmitter", () => {
|
|
|
352
357
|
expect(wasCalledWithString3).toEqual(1);
|
|
353
358
|
expect(wasCalledWithObject3).toEqual(0);
|
|
354
359
|
|
|
355
|
-
eventEmitter.trigger("nope", undefined);
|
|
360
|
+
(eventEmitter as any).trigger("nope", undefined);
|
|
356
361
|
expect(wasCalledWithString1).toEqual(2);
|
|
357
362
|
expect(wasCalledWithObject1).toEqual(0);
|
|
358
363
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -360,7 +365,7 @@ describe("utils - EventEmitter", () => {
|
|
|
360
365
|
expect(wasCalledWithString3).toEqual(1);
|
|
361
366
|
expect(wasCalledWithObject3).toEqual(0);
|
|
362
367
|
|
|
363
|
-
eventEmitter.trigger("nope", "a");
|
|
368
|
+
(eventEmitter as any).trigger("nope", "a");
|
|
364
369
|
expect(wasCalledWithString1).toEqual(3);
|
|
365
370
|
expect(wasCalledWithObject1).toEqual(0);
|
|
366
371
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -368,7 +373,7 @@ describe("utils - EventEmitter", () => {
|
|
|
368
373
|
expect(wasCalledWithString3).toEqual(2);
|
|
369
374
|
expect(wasCalledWithObject3).toEqual(0);
|
|
370
375
|
|
|
371
|
-
eventEmitter.trigger("something", { a: "b" });
|
|
376
|
+
(eventEmitter as any).trigger("something", { a: "b" });
|
|
372
377
|
expect(wasCalledWithString1).toEqual(3);
|
|
373
378
|
expect(wasCalledWithObject1).toEqual(1);
|
|
374
379
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -384,7 +389,7 @@ describe("utils - EventEmitter", () => {
|
|
|
384
389
|
expect(wasCalledWithString3).toEqual(2);
|
|
385
390
|
expect(wasCalledWithObject3).toEqual(1);
|
|
386
391
|
|
|
387
|
-
eventEmitter.trigger("something", { a: "b" });
|
|
392
|
+
(eventEmitter as any).trigger("something", { a: "b" });
|
|
388
393
|
expect(wasCalledWithString1).toEqual(3);
|
|
389
394
|
expect(wasCalledWithObject1).toEqual(1);
|
|
390
395
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -392,7 +397,7 @@ describe("utils - EventEmitter", () => {
|
|
|
392
397
|
expect(wasCalledWithString3).toEqual(2);
|
|
393
398
|
expect(wasCalledWithObject3).toEqual(1);
|
|
394
399
|
|
|
395
|
-
eventEmitter.trigger("nope", { a: "b" });
|
|
400
|
+
(eventEmitter as any).trigger("nope", { a: "b" });
|
|
396
401
|
expect(wasCalledWithString1).toEqual(3);
|
|
397
402
|
expect(wasCalledWithObject1).toEqual(2);
|
|
398
403
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -448,7 +453,7 @@ describe("utils - EventEmitter", () => {
|
|
|
448
453
|
expect(wasCalledWithString3).toEqual(0);
|
|
449
454
|
expect(wasCalledWithObject3).toEqual(0);
|
|
450
455
|
|
|
451
|
-
eventEmitter.trigger("something", undefined);
|
|
456
|
+
(eventEmitter as any).trigger("something", undefined);
|
|
452
457
|
expect(wasCalledWithString1).toEqual(0);
|
|
453
458
|
expect(wasCalledWithObject1).toEqual(0);
|
|
454
459
|
expect(wasCalledWithString2).toEqual(0);
|
|
@@ -456,7 +461,7 @@ describe("utils - EventEmitter", () => {
|
|
|
456
461
|
expect(wasCalledWithString3).toEqual(0);
|
|
457
462
|
expect(wasCalledWithObject3).toEqual(0);
|
|
458
463
|
|
|
459
|
-
eventEmitter.trigger("something", "a");
|
|
464
|
+
(eventEmitter as any).trigger("something", "a");
|
|
460
465
|
expect(wasCalledWithString1).toEqual(1);
|
|
461
466
|
expect(wasCalledWithObject1).toEqual(0);
|
|
462
467
|
expect(wasCalledWithString2).toEqual(1);
|
|
@@ -472,7 +477,7 @@ describe("utils - EventEmitter", () => {
|
|
|
472
477
|
expect(wasCalledWithString3).toEqual(0);
|
|
473
478
|
expect(wasCalledWithObject3).toEqual(0);
|
|
474
479
|
|
|
475
|
-
eventEmitter.trigger("something", "a");
|
|
480
|
+
(eventEmitter as any).trigger("something", "a");
|
|
476
481
|
expect(wasCalledWithString1).toEqual(2);
|
|
477
482
|
expect(wasCalledWithObject1).toEqual(0);
|
|
478
483
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -480,7 +485,7 @@ describe("utils - EventEmitter", () => {
|
|
|
480
485
|
expect(wasCalledWithString3).toEqual(1);
|
|
481
486
|
expect(wasCalledWithObject3).toEqual(0);
|
|
482
487
|
|
|
483
|
-
eventEmitter.trigger("nope", undefined);
|
|
488
|
+
(eventEmitter as any).trigger("nope", undefined);
|
|
484
489
|
expect(wasCalledWithString1).toEqual(2);
|
|
485
490
|
expect(wasCalledWithObject1).toEqual(0);
|
|
486
491
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -488,7 +493,7 @@ describe("utils - EventEmitter", () => {
|
|
|
488
493
|
expect(wasCalledWithString3).toEqual(1);
|
|
489
494
|
expect(wasCalledWithObject3).toEqual(0);
|
|
490
495
|
|
|
491
|
-
eventEmitter.trigger("nope", "a");
|
|
496
|
+
(eventEmitter as any).trigger("nope", "a");
|
|
492
497
|
expect(wasCalledWithString1).toEqual(3);
|
|
493
498
|
expect(wasCalledWithObject1).toEqual(0);
|
|
494
499
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -496,7 +501,7 @@ describe("utils - EventEmitter", () => {
|
|
|
496
501
|
expect(wasCalledWithString3).toEqual(2);
|
|
497
502
|
expect(wasCalledWithObject3).toEqual(0);
|
|
498
503
|
|
|
499
|
-
eventEmitter.trigger("something", { a: "b" });
|
|
504
|
+
(eventEmitter as any).trigger("something", { a: "b" });
|
|
500
505
|
expect(wasCalledWithString1).toEqual(3);
|
|
501
506
|
expect(wasCalledWithObject1).toEqual(1);
|
|
502
507
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -512,7 +517,7 @@ describe("utils - EventEmitter", () => {
|
|
|
512
517
|
expect(wasCalledWithString3).toEqual(2);
|
|
513
518
|
expect(wasCalledWithObject3).toEqual(1);
|
|
514
519
|
|
|
515
|
-
eventEmitter.trigger("something", { a: "b" });
|
|
520
|
+
(eventEmitter as any).trigger("something", { a: "b" });
|
|
516
521
|
expect(wasCalledWithString1).toEqual(3);
|
|
517
522
|
expect(wasCalledWithObject1).toEqual(1);
|
|
518
523
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -520,7 +525,7 @@ describe("utils - EventEmitter", () => {
|
|
|
520
525
|
expect(wasCalledWithString3).toEqual(2);
|
|
521
526
|
expect(wasCalledWithObject3).toEqual(1);
|
|
522
527
|
|
|
523
|
-
eventEmitter.trigger("nope", { a: "b" });
|
|
528
|
+
(eventEmitter as any).trigger("nope", { a: "b" });
|
|
524
529
|
expect(wasCalledWithString1).toEqual(3);
|
|
525
530
|
expect(wasCalledWithObject1).toEqual(1);
|
|
526
531
|
expect(wasCalledWithString2).toEqual(2);
|
|
@@ -568,7 +573,7 @@ describe("utils - EventEmitter", () => {
|
|
|
568
573
|
eventEmitter.addEventListener("t", cb);
|
|
569
574
|
|
|
570
575
|
expect(spy).toHaveBeenCalledTimes(0);
|
|
571
|
-
eventEmitter.trigger("t", undefined);
|
|
576
|
+
(eventEmitter as any).trigger("t", undefined);
|
|
572
577
|
|
|
573
578
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
574
579
|
expect(spy).toHaveBeenCalledWith(errMessage, thrownErr);
|
|
@@ -595,23 +600,23 @@ describe("utils - fromEvent", () => {
|
|
|
595
600
|
}
|
|
596
601
|
},
|
|
597
602
|
complete() {
|
|
598
|
-
eventEmitter.trigger("fooba", 6);
|
|
603
|
+
(eventEmitter as any).trigger("fooba", 6);
|
|
599
604
|
expect(numberItemsReceived).toBe(2);
|
|
600
605
|
expect(stringItemsReceived).toBe(3);
|
|
601
606
|
done();
|
|
602
607
|
},
|
|
603
608
|
});
|
|
604
609
|
|
|
605
|
-
eventEmitter.trigger("test", undefined);
|
|
606
|
-
eventEmitter.trigger("fooba", undefined);
|
|
607
|
-
eventEmitter.trigger("fooba", 5);
|
|
608
|
-
eventEmitter.trigger("fooba", "a");
|
|
609
|
-
eventEmitter.trigger("test", undefined);
|
|
610
|
-
eventEmitter.trigger("test", undefined);
|
|
611
|
-
eventEmitter.trigger("test", undefined);
|
|
612
|
-
eventEmitter.trigger("fooba", "b");
|
|
613
|
-
eventEmitter.trigger("fooba", "c");
|
|
614
|
-
eventEmitter.trigger("fooba", 6);
|
|
610
|
+
(eventEmitter as any).trigger("test", undefined);
|
|
611
|
+
(eventEmitter as any).trigger("fooba", undefined);
|
|
612
|
+
(eventEmitter as any).trigger("fooba", 5);
|
|
613
|
+
(eventEmitter as any).trigger("fooba", "a");
|
|
614
|
+
(eventEmitter as any).trigger("test", undefined);
|
|
615
|
+
(eventEmitter as any).trigger("test", undefined);
|
|
616
|
+
(eventEmitter as any).trigger("test", undefined);
|
|
617
|
+
(eventEmitter as any).trigger("fooba", "b");
|
|
618
|
+
(eventEmitter as any).trigger("fooba", "c");
|
|
619
|
+
(eventEmitter as any).trigger("fooba", 6);
|
|
615
620
|
});
|
|
616
621
|
|
|
617
622
|
it("should remove the event listener on unsubscription", () => {
|
|
@@ -631,17 +636,17 @@ describe("utils - fromEvent", () => {
|
|
|
631
636
|
}
|
|
632
637
|
});
|
|
633
638
|
|
|
634
|
-
eventEmitter.trigger("test", undefined);
|
|
635
|
-
eventEmitter.trigger("fooba", undefined);
|
|
636
|
-
eventEmitter.trigger("fooba", 5);
|
|
637
|
-
eventEmitter.trigger("fooba", "a");
|
|
639
|
+
(eventEmitter as any).trigger("test", undefined);
|
|
640
|
+
(eventEmitter as any).trigger("fooba", undefined);
|
|
641
|
+
(eventEmitter as any).trigger("fooba", 5);
|
|
642
|
+
(eventEmitter as any).trigger("fooba", "a");
|
|
638
643
|
subscription.unsubscribe();
|
|
639
|
-
eventEmitter.trigger("test", undefined);
|
|
640
|
-
eventEmitter.trigger("test", undefined);
|
|
641
|
-
eventEmitter.trigger("test", undefined);
|
|
642
|
-
eventEmitter.trigger("fooba", "b");
|
|
643
|
-
eventEmitter.trigger("fooba", "c");
|
|
644
|
-
eventEmitter.trigger("fooba", 6);
|
|
644
|
+
(eventEmitter as any).trigger("test", undefined);
|
|
645
|
+
(eventEmitter as any).trigger("test", undefined);
|
|
646
|
+
(eventEmitter as any).trigger("test", undefined);
|
|
647
|
+
(eventEmitter as any).trigger("fooba", "b");
|
|
648
|
+
(eventEmitter as any).trigger("fooba", "c");
|
|
649
|
+
(eventEmitter as any).trigger("fooba", 6);
|
|
645
650
|
|
|
646
651
|
expect(stringItemsReceived).toBe(1);
|
|
647
652
|
expect(numberItemsReceived).toBe(1);
|
|
@@ -40,11 +40,11 @@ const representation2 = {
|
|
|
40
40
|
const initSegment1 = {
|
|
41
41
|
id: "init1",
|
|
42
42
|
isInit: true,
|
|
43
|
+
url: "some.URLinit1",
|
|
43
44
|
time: 0,
|
|
44
45
|
end: 0,
|
|
45
46
|
duration: 0,
|
|
46
47
|
timescale: 1 as const,
|
|
47
|
-
mediaURLs: ["http://www.example.com/some.URLinit1"],
|
|
48
48
|
complete: true,
|
|
49
49
|
privateInfos: {},
|
|
50
50
|
};
|
|
@@ -52,11 +52,11 @@ const initSegment1 = {
|
|
|
52
52
|
const initSegment2 = {
|
|
53
53
|
id: "init2",
|
|
54
54
|
isInit: true,
|
|
55
|
+
url: "some.URLinit2",
|
|
55
56
|
time: 0,
|
|
56
57
|
end: 0,
|
|
57
58
|
duration: 0,
|
|
58
59
|
timescale: 1 as const,
|
|
59
|
-
mediaURLs: ["http://www.example.com/some.URLinit2"],
|
|
60
60
|
complete: true,
|
|
61
61
|
privateInfos: {},
|
|
62
62
|
};
|
|
@@ -64,11 +64,11 @@ const initSegment2 = {
|
|
|
64
64
|
const initSegment3 = {
|
|
65
65
|
id: "init3",
|
|
66
66
|
isInit: true,
|
|
67
|
+
url: "some.URLinit3",
|
|
67
68
|
time: 0,
|
|
68
69
|
end: 0,
|
|
69
70
|
duration: 0,
|
|
70
71
|
timescale: 1 as const,
|
|
71
|
-
mediaURLs: ["http://www.example.com/some.URLinit3"],
|
|
72
72
|
complete: true,
|
|
73
73
|
privateInfos: {},
|
|
74
74
|
};
|
|
@@ -76,11 +76,11 @@ const initSegment3 = {
|
|
|
76
76
|
const segment1 = {
|
|
77
77
|
id: "seg1",
|
|
78
78
|
isInit: false,
|
|
79
|
+
url: "some.URL1",
|
|
79
80
|
time: 0,
|
|
80
81
|
duration: 2,
|
|
81
82
|
end: 2,
|
|
82
83
|
timescale: 1 as const,
|
|
83
|
-
mediaURLs: ["http://www.example.com/some.URL2"],
|
|
84
84
|
complete: true,
|
|
85
85
|
privateInfos: {},
|
|
86
86
|
};
|
|
@@ -88,11 +88,11 @@ const segment1 = {
|
|
|
88
88
|
const segment2 = {
|
|
89
89
|
id: "seg2",
|
|
90
90
|
isInit: false,
|
|
91
|
+
url: "some.URL2",
|
|
91
92
|
time: 2,
|
|
92
93
|
duration: 2,
|
|
93
94
|
end: 4,
|
|
94
95
|
timescale: 1 as const,
|
|
95
|
-
mediaURLs: ["http://www.example.com/some.URL2"],
|
|
96
96
|
complete: true,
|
|
97
97
|
privateInfos: {},
|
|
98
98
|
};
|
|
@@ -100,11 +100,11 @@ const segment2 = {
|
|
|
100
100
|
const segment3 = {
|
|
101
101
|
id: "seg3",
|
|
102
102
|
isInit: false,
|
|
103
|
+
url: "some.URL3",
|
|
103
104
|
time: 4,
|
|
104
105
|
duration: 2,
|
|
105
106
|
end: 6,
|
|
106
107
|
timescale: 1 as const,
|
|
107
|
-
mediaURLs: ["http://www.example.com/some.URL3"],
|
|
108
108
|
complete: true,
|
|
109
109
|
privateInfos: {},
|
|
110
110
|
};
|
|
@@ -112,11 +112,11 @@ const segment3 = {
|
|
|
112
112
|
const segment4 = {
|
|
113
113
|
id: "seg4",
|
|
114
114
|
isInit: false,
|
|
115
|
+
url: "some.URL4",
|
|
115
116
|
time: 6,
|
|
116
117
|
duration: 2,
|
|
117
118
|
end: 8,
|
|
118
119
|
timescale: 1 as const,
|
|
119
|
-
mediaURLs: ["http://www.example.com/some.URL4"],
|
|
120
120
|
complete: true,
|
|
121
121
|
privateInfos: {},
|
|
122
122
|
};
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import resolveURL, {
|
|
18
|
-
|
|
18
|
+
getFilenameIndexInUrl,
|
|
19
19
|
} from "../resolve_url";
|
|
20
20
|
|
|
21
21
|
describe("utils - resolveURL", () => {
|
|
@@ -66,31 +66,35 @@ describe("utils - resolveURL", () => {
|
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
68
|
|
|
69
|
-
describe("utils -
|
|
70
|
-
it("should
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
describe("utils - getFilenameIndexInUrl", () => {
|
|
70
|
+
it("should return the length for a string without slash", () => {
|
|
71
|
+
const str = ";.<;L'dl'02984lirsahg;oliwr";
|
|
72
|
+
expect(getFilenameIndexInUrl(str))
|
|
73
|
+
.toEqual(str.length);
|
|
73
74
|
});
|
|
74
|
-
it("should
|
|
75
|
-
expect(
|
|
76
|
-
.
|
|
75
|
+
it("should return the index after the last / if one in URL", () => {
|
|
76
|
+
expect(getFilenameIndexInUrl(";ojdsfgje/eprowig/tohjroj/9ohyjwoij/s"))
|
|
77
|
+
.toEqual(36);
|
|
77
78
|
});
|
|
78
|
-
it("should
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
expect(
|
|
84
|
-
.
|
|
79
|
+
it("should return length if the only slash are part of the protocol", () => {
|
|
80
|
+
const url1 = "http://www.example.com";
|
|
81
|
+
expect(getFilenameIndexInUrl(url1))
|
|
82
|
+
.toEqual(url1.length);
|
|
83
|
+
const url2 = "https://a.t";
|
|
84
|
+
expect(getFilenameIndexInUrl(url2))
|
|
85
|
+
.toEqual(url2.length);
|
|
86
|
+
const url3 = "ftp://s";
|
|
87
|
+
expect(getFilenameIndexInUrl(url3))
|
|
88
|
+
.toEqual(url3.length);
|
|
85
89
|
});
|
|
86
90
|
it("should not include slash coming in query parameters", () => {
|
|
87
|
-
expect(
|
|
88
|
-
.
|
|
89
|
-
expect(
|
|
90
|
-
.
|
|
91
|
-
expect(
|
|
92
|
-
.
|
|
93
|
-
expect(
|
|
94
|
-
.
|
|
91
|
+
expect(getFilenameIndexInUrl("http://www.example.com?test/toto"))
|
|
92
|
+
.toEqual(22);
|
|
93
|
+
expect(getFilenameIndexInUrl("https://ww/ddd?test/toto/efewf/ffe/"))
|
|
94
|
+
.toEqual(11);
|
|
95
|
+
expect(getFilenameIndexInUrl("https://ww/rr/d?test/toto/efewf/ffe/"))
|
|
96
|
+
.toEqual(14);
|
|
97
|
+
expect(getFilenameIndexInUrl("https://ww/rr/d/?test/toto/efewf/ffe/"))
|
|
98
|
+
.toEqual(16);
|
|
95
99
|
});
|
|
96
100
|
});
|
|
@@ -29,8 +29,6 @@ export interface IEventEmitter<T> {
|
|
|
29
29
|
removeEventListener<TEventName extends keyof T>(evt : TEventName,
|
|
30
30
|
fn : IListener<T, TEventName>) :
|
|
31
31
|
void;
|
|
32
|
-
trigger?<TEventName extends keyof T>(evt : TEventName,
|
|
33
|
-
arg : IArgs<T, TEventName>) : void;
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
// Type of the argument in the listener's callback
|
|
@@ -131,7 +129,7 @@ export default class EventEmitter<T> implements IEventEmitter<T> {
|
|
|
131
129
|
* @param {*} arg - The eventual payload for that event. All triggered
|
|
132
130
|
* callbacks will recieve this payload as argument.
|
|
133
131
|
*/
|
|
134
|
-
|
|
132
|
+
protected trigger<TEventName extends keyof T>(
|
|
135
133
|
evt : TEventName,
|
|
136
134
|
arg : IArgs<T, TEventName>
|
|
137
135
|
) : void {
|
package/src/utils/resolve_url.ts
CHANGED
|
@@ -91,14 +91,17 @@ export default function resolveURL(...args : Array<string|undefined>) : string {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
|
-
*
|
|
94
|
+
* In a given URL, find the index at which the filename begins.
|
|
95
|
+
* That is, this function finds the index of the last `/` character and returns
|
|
96
|
+
* the index after it, returning the length of the whole URL if no `/` was found
|
|
97
|
+
* after the scheme (i.e. in `http://`, the slashes are not considered).
|
|
95
98
|
* @param {string} url
|
|
96
|
-
* @returns {
|
|
99
|
+
* @returns {number}
|
|
97
100
|
*/
|
|
98
|
-
function
|
|
101
|
+
function getFilenameIndexInUrl(url : string) : number {
|
|
99
102
|
const indexOfLastSlash = url.lastIndexOf("/");
|
|
100
103
|
if (indexOfLastSlash < 0) {
|
|
101
|
-
return url;
|
|
104
|
+
return url.length;
|
|
102
105
|
}
|
|
103
106
|
|
|
104
107
|
if (schemeRe.test(url)) {
|
|
@@ -106,7 +109,7 @@ function normalizeBaseURL(url : string) : string {
|
|
|
106
109
|
if (firstSlashIndex >= 0 && indexOfLastSlash === firstSlashIndex + 1) {
|
|
107
110
|
// The "/" detected is actually the one from the protocol part of the URL
|
|
108
111
|
// ("https://")
|
|
109
|
-
return url;
|
|
112
|
+
return url.length;
|
|
110
113
|
}
|
|
111
114
|
}
|
|
112
115
|
|
|
@@ -114,10 +117,10 @@ function normalizeBaseURL(url : string) : string {
|
|
|
114
117
|
if (indexOfQuestionMark >= 0 && indexOfQuestionMark < indexOfLastSlash) {
|
|
115
118
|
// There are query parameters. Let's ignore them and re-run the logic
|
|
116
119
|
// without
|
|
117
|
-
return
|
|
120
|
+
return getFilenameIndexInUrl(url.substring(0, indexOfQuestionMark));
|
|
118
121
|
}
|
|
119
122
|
|
|
120
|
-
return
|
|
123
|
+
return indexOfLastSlash + 1;
|
|
121
124
|
}
|
|
122
125
|
|
|
123
|
-
export {
|
|
126
|
+
export { getFilenameIndexInUrl };
|