Skip to content

Commit 914d95c

Browse files
committed
Add typescript support
1 parent dd5f088 commit 914d95c

13 files changed

+1786
-16
lines changed

dist/main.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { hmsToSeconds } from "./src/helpers.js";
2+
import { toVttCue } from "./src/helpers.js";
3+
import { transformSrtTracks } from "./src/transformer.js";
4+
import { srt2vtt } from "./src/helpers.js";
5+
import { fetchTrack } from "./src/helpers.js";
6+
export { hmsToSeconds, toVttCue, transformSrtTracks, srt2vtt, fetchTrack };
7+
//# sourceMappingURL=main.d.ts.map

dist/main.d.ts.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/src/cue.d.ts

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* A valid VTT cue
3+
*
4+
* The properties of this class are compatible with `VTTCue`
5+
* and can be used to create a `new VTTCue` instance
6+
*
7+
* *Example*
8+
* ```js
9+
* new VTTCue(cue.startTime, cue.endTime, cue.text);
10+
* ```
11+
*
12+
* @property {number} number
13+
* @property {number} startTime
14+
* @property {number} endTime
15+
* @property {string} text
16+
*/
17+
export default class Cue {
18+
/**
19+
*
20+
* @param {number} number
21+
* @param {number} startTime
22+
* @param {number} endTime
23+
* @param {string} text
24+
*/
25+
constructor(number: number, startTime: number, endTime: number, text: string);
26+
/**
27+
* @readonly
28+
* @type {number}
29+
*/
30+
readonly number: number;
31+
/**
32+
* @readonly
33+
* @type {number}
34+
*/
35+
readonly startTime: number;
36+
/**
37+
* @readonly
38+
* @type {number}
39+
*/
40+
readonly endTime: number;
41+
/**
42+
* @readonly
43+
* @type {string}
44+
*/
45+
readonly text: string;
46+
}
47+
//# sourceMappingURL=cue.d.ts.map

dist/src/cue.d.ts.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/src/helpers.d.ts

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
/**
2+
* Converts an SRT cue into a VTT compatible cue
3+
*
4+
* For example
5+
*
6+
* ```txt
7+
* 1
8+
* 00:00:00,498 --> 00:00:02,827
9+
* Here's what I love most
10+
* about food and diet.
11+
* ```
12+
*
13+
* Will be converted into
14+
*
15+
* ```js
16+
* Cue {
17+
* number: 1,
18+
* startTime: 0.498
19+
* endTime: 2.827,
20+
* text: 'Here\'s what I love most\n about food and diet.'
21+
* }
22+
* ```
23+
*
24+
* @param {string} srtCue
25+
* @returns Cue
26+
*/
27+
export function toVttCue(srtCue: string): Cue;
28+
/**
29+
* Converts a VTT or SRT timing `string`
30+
* to a `number` in seconds + milliseconds
31+
*
32+
* *Example*
33+
* ```js
34+
* const seconds = hmsToSeconds('00:00:02.827'); // 2.827
35+
* ```
36+
*
37+
* @param {string} str
38+
* @returns number
39+
*/
40+
export function hmsToSeconds(str: string): number;
41+
/**
42+
* Fetches the contents of a track source
43+
*
44+
* *Example*
45+
* ```js
46+
* const content = await fetchTrack('https://example.com/path/my-subtitle.srt')
47+
* ```
48+
* @param {string} src - url
49+
* @param {string} encoding - file encoding format
50+
* @returns Promise<string>
51+
*/
52+
export function fetchTrack(src: string, encoding?: string): Promise<string>;
53+
/**
54+
* Converts SRT formatted string into a WebVTT formated string
55+
*
56+
* *Example*
57+
*
58+
* Converts
59+
* ```text
60+
* 1
61+
* 00:00:00,498 --> 00:00:02,827
62+
* - Here's what I love most
63+
* about food and diet.
64+
*
65+
* 2
66+
* 00:00:02,827 --> 00:00:06,383
67+
* We all eat several times a day,
68+
* and we're totally in charge
69+
* ```
70+
*
71+
* Into
72+
* ```text
73+
* WEBVTT
74+
*
75+
* 1
76+
* 00:00:00.498 --> 00:00:02.827
77+
* - Here's what I love most
78+
* about food and diet.
79+
*
80+
* 2
81+
* 00:00:02.827 --> 00:00:06.383
82+
* We all eat several times a day,
83+
* and we're totally in charge
84+
* ```
85+
*
86+
* @param {string} srtBody
87+
* @returns string
88+
*/
89+
export function srt2vtt(srtBody: string): string;
90+
import Cue from "./cue.js";
91+
//# sourceMappingURL=helpers.d.ts.map

dist/src/helpers.d.ts.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/src/track.d.ts

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/**
2+
* @property {string} src
3+
* @property {string} encoding
4+
* @property {string} lang
5+
* @property {string} kind
6+
* @property {string} label
7+
* @property {string} default
8+
* @property {string} body
9+
* @property {boolean} needsTransform
10+
* @property {Cue[]} cues
11+
*/
12+
export default class Track {
13+
/**
14+
* Parses a `HTMLTrackElement`
15+
*
16+
* @param {HTMLTrackElement} track
17+
*/
18+
constructor(track: HTMLTrackElement);
19+
/**
20+
* @readonly
21+
* @type {string}
22+
*/
23+
readonly src: string;
24+
/**
25+
* @readonly
26+
* @type {string}
27+
*/
28+
readonly encoding: string;
29+
/**
30+
* @readonly
31+
* @type {string}
32+
*/
33+
readonly lang: string;
34+
/**
35+
* @readonly
36+
* @type {string}
37+
*/
38+
readonly kind: string;
39+
/**
40+
* @readonly
41+
* @type {string}
42+
*/
43+
readonly label: string;
44+
/**
45+
* @readonly
46+
* @type {boolean}
47+
*/
48+
readonly default: boolean;
49+
/**
50+
* @readonly
51+
* @type {string}
52+
*/
53+
readonly body: string;
54+
/**
55+
* @readonly
56+
* @type {boolean}
57+
*/
58+
readonly needsTransform: boolean;
59+
/**
60+
* @readonly
61+
* @type {Cue[]}
62+
*/
63+
readonly cues: Cue[];
64+
parse(): Promise<void>;
65+
}
66+
import Cue from "./cue.js";
67+
//# sourceMappingURL=track.d.ts.map

dist/src/track.d.ts.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/src/transformer.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* Converts all SRT files into WebVTT files.
3+
*
4+
* @param {HTMLVideoElement} video
5+
*/
6+
export function transformSrtTracks(video: HTMLVideoElement): Promise<void>;
7+
//# sourceMappingURL=transformer.d.ts.map

dist/src/transformer.d.ts.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)