Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions types/srtparsejs/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Type definitions for srtparsejs 1.0
// Project: https://github.com/Qiming-Liu/srtparse.js
// Definitions by: Qiming-Liu <https://github.com/Qiming-Liu>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped

export interface srtArray {
id: string;
startTime: string;
endTime: string;
text: string;
}

export interface srtPlayer {
id: number;
time: string;
srtArray: srtArray;
setText: (text: string) => void;
update: (time: string) => void;
getEndTime: () => string;
}

export function parse(srtText: string): srtArray[];
export function toSrt(data: srtArray[]): string;
export function toMS(timeString: string): number;
export function toTime(timeNumber: number): string;
export function compareTime(timeString: string, startString: string, endString: string): number;
export function getSrtArrayIndex(
srtArray: srtArray[],
startindex: number,
endindex: number,
timeString: string,
): number | undefined;
export function setPlayer(srtArray: srtArray[], setText: (text: string) => void): srtPlayer;
38 changes: 38 additions & 0 deletions types/srtparsejs/srtparsejs-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { srtArray, srtPlayer, parse, toSrt, toMS, toTime, compareTime, getSrtArrayIndex, setPlayer } from 'srtparsejs';

const srtText = '1\r\n00:00:11,544 --> 00:00:12,682\r\nHello\r\n\r\n';

// $ExpectType srtArray[]
const parse_result: srtArray[] = parse(srtText);
// @ts-expect-error
const parse_error = parse(parse_result);

// $ExpectType string
const toSrt_result: string = toSrt(parse_result);
// @ts-expect-error
const toSrt_error = toSrt(toSrt_result);

// $ExpectType number
const toMS_result: number = toMS('00:00:11,544');
// @ts-expect-error
const toMS_error = toMS(toMS_result);

// $ExpectType string
const toTime_result: string = toTime(11544);
// @ts-expect-error
const toTime_error = toTime(toTime_result);

// $ExpectType number
const compareTime_result: number = compareTime('00:00:11,544', '00:00:11,543', '00:00:11,545');
// @ts-expect-error
const compareTime_error = compareTime(11544, 11543, 11545);

// $ExpectType number | undefined
const getSrtArrayIndex_result: number | undefined = getSrtArrayIndex(parse_result, 0, 0, '00:00:11,545');
// @ts-expect-error
const getSrtArrayIndex_error = getSrtArrayIndex(toTime_result);

// $ExpectType srtPlayer
const setPlayer_result: srtPlayer = setPlayer(parse_result, text => {});
// @ts-expect-error
const setPlayer_error = setPlayer(srtText, text => {});
23 changes: 23 additions & 0 deletions types/srtparsejs/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"srtparsejs-tests.ts"
]
}
3 changes: 3 additions & 0 deletions types/srtparsejs/tslint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "@definitelytyped/dtslint/dt.json"
}