mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-15 21:56:18 -08:00
perf(playback): keep the history gate off the initial bundle
The `@iptvnator/services` barrel ships in the initial bundle, so adding PlaybackHistoryGate there (and subscribing to it from the app-wide ExternalPlaybackService) grew renderer.initialBytes by 1,141 bytes. - Move the gate to a new lazy-only `playback-data-access` project (`@iptvnator/playback/data-access`; scope:shared, domain:playback, type:data-access) and register it in the coverage policy. - The gate subscribes to MPV/VLC session updates itself; it is created by the first deferred write, which precedes the launch it waits for. ExternalPlaybackService is back to master. - The Xtream "playlist switched before confirmation" check moves to the lazy helper; the initial-path store only takes a `skipListRefresh` flag. Net effect on this branch: +27 bytes over master (master itself is 108 bytes over the ratchet baseline already). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
671a0cb1ec
commit
e41bcb9f65
34 files changed
+250
-128
No files matched your search
@@ -1,7 +1,7 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { PlaybackHistoryGate } from '@iptvnator/services';
|
||||
import { PlaybackHistoryGate } from '@iptvnator/playback/data-access';
|
||||
import { AudioPlayerComponent } from './audio-player.component';
|
||||
|
||||
describe('AudioPlayerComponent', () => {
|
||||
|
||||
@@ -22,7 +22,7 @@ import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { TranslatePipe } from '@ngx-translate/core';
|
||||
import { ChannelActions } from '@iptvnator/m3u-state';
|
||||
import { PlaybackHistoryGate } from '@iptvnator/services';
|
||||
import { PlaybackHistoryGate } from '@iptvnator/playback/data-access';
|
||||
import { PlaybackHistoryConfirmation } from '../playback-history/playback-history-confirmation';
|
||||
|
||||
@Component({
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { PlaybackHistoryTarget } from '@iptvnator/services';
|
||||
import type { PlaybackHistoryTarget } from '@iptvnator/playback/data-access';
|
||||
import { PlaybackHistoryConfirmation } from './playback-history-confirmation';
|
||||
|
||||
describe('PlaybackHistoryConfirmation', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type {
|
||||
PlaybackHistoryGate,
|
||||
PlaybackHistoryTarget,
|
||||
} from '@iptvnator/services';
|
||||
} from '@iptvnator/playback/data-access';
|
||||
import { PlaybackProgressConfirmation } from './playback-progress-confirmation';
|
||||
|
||||
export interface PlaybackHistoryConfirmationOptions {
|
||||
|
||||
@@ -11,11 +11,8 @@ import {
|
||||
PlaybackDiagnosticCode,
|
||||
PlaybackDiagnosticSource,
|
||||
} from '@iptvnator/playback/util';
|
||||
import {
|
||||
PlaybackHistoryGate,
|
||||
RuntimeCapabilitiesService,
|
||||
SettingsStore,
|
||||
} from '@iptvnator/services';
|
||||
import { RuntimeCapabilitiesService, SettingsStore } from '@iptvnator/services';
|
||||
import { PlaybackHistoryGate } from '@iptvnator/playback/data-access';
|
||||
import {
|
||||
STORE_KEY,
|
||||
VideoPlayer,
|
||||
|
||||
@@ -22,11 +22,8 @@ import {
|
||||
type PlaybackRecommendationTarget,
|
||||
} from '@iptvnator/playback/util';
|
||||
import { PORTAL_EXTERNAL_PLAYBACK } from '@iptvnator/portal/shared/util';
|
||||
import {
|
||||
PlaybackHistoryGate,
|
||||
RuntimeCapabilitiesService,
|
||||
SettingsStore,
|
||||
} from '@iptvnator/services';
|
||||
import { RuntimeCapabilitiesService, SettingsStore } from '@iptvnator/services';
|
||||
import { PlaybackHistoryGate } from '@iptvnator/playback/data-access';
|
||||
import {
|
||||
VideoPlayer,
|
||||
type Channel,
|
||||
|
||||
Reference in new issue
Block a user