Skip to content

Commit

Permalink
Add named exports for classes and enums that we already export as types
Browse files Browse the repository at this point in the history
Resolves #5630
  • Loading branch information
robwalch committed Oct 24, 2023
1 parent ef81686 commit 1846aac
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 43 deletions.
1 change: 1 addition & 0 deletions api-extractor/report/hls.js.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -1647,6 +1647,7 @@ class Hls implements HlsEventEmitter {
readonly userConfig: Partial<HlsConfig>;
static get version(): string;
}
export { Hls }
export default Hls;

// Warning: (ae-missing-release-tag) "HlsChunkPerformanceTiming" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Expand Down
1 change: 1 addition & 0 deletions build-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,7 @@ const buildRollupConfig = ({
},
output: {
name: 'Hls',
exports: 'named',
file: outputFile
? outputFile
: minified
Expand Down
80 changes: 38 additions & 42 deletions src/hls.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import type FPSController from './controller/fps-controller';
* The `Hls` class is the core of the HLS.js library used to instantiate player instances.
* @public
*/
export default class Hls implements HlsEventEmitter {
export class Hls implements HlsEventEmitter {
private static defaultConfig: HlsConfig | undefined;

/**
Expand Down Expand Up @@ -928,17 +928,16 @@ export default class Hls implements HlsEventEmitter {
}
}

export type {
MediaPlaylist,
// Default export (for ESM and UMD backwards compatibility)
// Named export at class definition
export default Hls;

// Named exports (classes and enums)
export {
ErrorDetails,
ErrorTypes,
Events,
Level,
HlsListeners,
HlsEventEmitter,
HlsConfig,
BufferInfo,
HdcpLevel,
AbrController,
AudioStreamController,
AudioTrackController,
Expand All @@ -953,6 +952,33 @@ export type {
FPSController,
SubtitleTrackController,
};
export { SubtitleStreamController } from './controller/subtitle-stream-controller';
export { TimelineController } from './controller/timeline-controller';
export { KeySystems, KeySystemFormats } from './utils/mediakeys-helper';
export { DateRange } from './loader/date-range';
export { LoadStats } from './loader/load-stats';
export { LevelKey } from './loader/level-key';
export { LevelDetails } from './loader/level-details';
export { MetadataSchema } from './types/demuxer';
export { HlsSkip, HlsUrlParameters } from './types/level';
export { PlaylistLevelType } from './types/loader';
export { ChunkMetadata } from './types/transmuxer';
export { BaseSegment, Fragment, Part } from './loader/fragment';
export {
NetworkErrorAction,
ErrorActionFlags,
} from './controller/error-controller';
export { AttrList } from './utils/attr-list';

// TypeScript exports (interfaces and types)
export type {
MediaPlaylist,
HlsConfig,
BufferInfo,
HdcpLevel,
HlsListeners,
HlsEventEmitter,
};
export type {
ComponentAPI,
AbrComponentAPI,
Expand Down Expand Up @@ -990,34 +1016,13 @@ export type {
SteeringManifest,
UriReplacement,
} from './controller/content-steering-controller';
export type { SubtitleStreamController } from './controller/subtitle-stream-controller';
export type { TimelineController } from './controller/timeline-controller';
export type { CuesInterface } from './utils/cues';
export type {
MediaKeyFunc,
KeySystems,
KeySystemFormats,
} from './utils/mediakeys-helper';
export type { DateRange } from './loader/date-range';
export type { LoadStats } from './loader/load-stats';
export type { LevelKey } from './loader/level-key';
export type { LevelDetails } from './loader/level-details';
export type { MediaKeyFunc } from './utils/mediakeys-helper';
export type { SourceBufferName } from './types/buffer';
export type {
MetadataSample,
MetadataSchema,
UserdataSample,
} from './types/demuxer';
export type {
HlsSkip,
HlsUrlParameters,
LevelAttributes,
LevelParsed,
VariableMap,
} from './types/level';
export type { MetadataSample, UserdataSample } from './types/demuxer';
export type { LevelAttributes, LevelParsed, VariableMap } from './types/level';
export type { MediaDecodingInfo } from './utils/mediacapabilities-helper';
export type {
PlaylistLevelType,
HlsChunkPerformanceTiming,
HlsPerformanceTiming,
HlsProgressivePerformanceTiming,
Expand All @@ -1044,11 +1049,7 @@ export type {
SubtitlePlaylistType,
} from './types/media-playlist';
export type { Track, TrackSet } from './types/track';
export type { ChunkMetadata } from './types/transmuxer';
export type {
BaseSegment,
Fragment,
Part,
ElementaryStreams,
ElementaryStreamTypes,
ElementaryStreamInfo,
Expand Down Expand Up @@ -1107,9 +1108,4 @@ export type {
SubtitleTracksUpdatedData,
SubtitleTrackSwitchData,
} from './types/events';
export type {
NetworkErrorAction,
ErrorActionFlags,
IErrorAction,
} from './controller/error-controller';
export type { AttrList } from './utils/attr-list';
export type { IErrorAction } from './controller/error-controller';
5 changes: 4 additions & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
"src/**/*",
"tests/**/*",
"demo/**/*",
"tests/**/.eslintrc.js" /* needed for eslint to work for some reason ¯\_(ツ)_/¯ */
/* needed for eslint to work for some reason ¯\_(ツ)_/¯ */
"tests/**/.eslintrc.js",
"rollup.config.js",
"build-config.js"
]
}

0 comments on commit 1846aac

Please sign in to comment.