refactor(packages): move feature presets to subpath exports (#633)

This commit is contained in:
rahim
2026-02-27 17:06:36 -08:00
committed by GitHub
parent 40606ff188
commit c92a9f914f
63 changed files with 266 additions and 187 deletions
@@ -1,5 +1,5 @@
import type { AudioPlayerStore, PlayerStore, PlayerTarget, VideoPlayerStore } from '@videojs/core/dom';
import { definePlayerFeature, features } from '@videojs/core/dom';
import { audioFeatures, definePlayerFeature, videoFeatures } from '@videojs/core/dom';
import type { Slice } from '@videojs/store';
import { assertType, describe, it } from 'vitest';
@@ -7,19 +7,19 @@ import { type CreatePlayerResult, createPlayer } from '../create-player';
describe('createPlayer', () => {
it('resolves video features to VideoPlayerStore', () => {
const result = createPlayer({ features: features.video });
const result = createPlayer({ features: videoFeatures });
assertType<CreatePlayerResult<VideoPlayerStore>>(result);
});
it('resolves audio features to AudioPlayerStore', () => {
const result = createPlayer({ features: features.audio });
const result = createPlayer({ features: audioFeatures });
assertType<CreatePlayerResult<AudioPlayerStore>>(result);
});
it('resolves spread video features to VideoPlayerStore', () => {
const result = createPlayer({ features: [...features.video] });
const result = createPlayer({ features: videoFeatures });
assertType<CreatePlayerResult<VideoPlayerStore>>(result);
});
@@ -48,11 +48,11 @@ describe('createPlayer', () => {
});
const result = createPlayer({
features: [...features.video, analyticsFeature],
features: [...videoFeatures, analyticsFeature],
});
// Extended features fall through to the generic overload
assertType<CreatePlayerResult<PlayerStore<[...typeof features.video, typeof analyticsFeature]>>>(result);
assertType<CreatePlayerResult<PlayerStore<[...typeof videoFeatures, typeof analyticsFeature]>>>(result);
});
it('resolves extended audio features to generic PlayerStore', () => {
@@ -65,9 +65,9 @@ describe('createPlayer', () => {
});
const result = createPlayer({
features: [...features.audio, analyticsFeature],
features: [...audioFeatures, analyticsFeature],
});
assertType<CreatePlayerResult<PlayerStore<[...typeof features.audio, typeof analyticsFeature]>>>(result);
assertType<CreatePlayerResult<PlayerStore<[...typeof audioFeatures, typeof analyticsFeature]>>>(result);
});
});
@@ -1,3 +1,4 @@
export { audioFeatures } from '@videojs/core/dom';
export { Audio, type AudioProps } from '@/media/audio';
export * from './minimal-skin';
export * from './skin';
@@ -1,2 +1,3 @@
export { backgroundFeatures } from '@videojs/core/dom';
export { BackgroundVideo, type BackgroundVideoProps } from '@/media/background-video';
export * from './skin';
@@ -1,3 +1,4 @@
export { videoFeatures } from '@videojs/core/dom';
export { Video, type VideoProps } from '@/media/video';
export * from './minimal-skin';
export * from './minimal-skin.tailwind';