videomail-client
Version:
A wicked npm package to record videos directly in the browser, wohooo!
125 lines (124 loc) • 3.81 kB
TypeScript
import { PartialDeep } from "type-fest";
import { PartialVideomail, Videomail } from "./Videomail";
export interface VideomailClientOptions {
logger: {
debug: (message: unknown) => void;
info: (message: unknown) => void;
warn: (message: unknown) => void;
error: (message: unknown) => void;
getLines?: () => string[];
};
logStackSize: number;
verbose: boolean;
apiUrl: string;
socketUrl: string;
whitelistKey: string;
enablePause: boolean;
enableAutoPause: boolean;
enableSpace: boolean;
submitWithVideomail: boolean;
disableSubmit: boolean;
enableAutoValidation: boolean;
enableAutoUnload: boolean;
enableAutoSubmission: boolean;
enctype: string;
selectors: {
containerId?: string | undefined;
containerClass: string;
replayClass: string;
userMediaClass: string;
visualsClass: string;
buttonClass?: string | undefined;
buttonsClass: string;
recordButtonClass: string;
pauseButtonClass: string;
resumeButtonClass: string;
previewButtonClass: string;
recordAgainButtonClass: string;
submitButtonClass: string;
subjectInputName: string;
fromInputName: string;
toInputName: string;
ccInputName: string;
bccInputName: string;
bodyInputName: string;
sendCopyInputName: string;
keyInputName: string;
parentKeyInputName: string;
formId?: string | undefined;
submitButtonId?: string | undefined;
submitButtonSelector?: string | undefined;
};
audio: {
enabled?: boolean | undefined;
switch?: boolean | undefined;
volume: number;
bufferSize?: number | "auto";
};
video: {
fps: number;
limitSeconds: number;
countdown?: number | boolean;
width?: number | undefined;
height?: number | undefined;
facingMode: ConstrainDOMString;
facingModeButton: boolean;
stretch: boolean;
mobileBreakPoint?: number | undefined;
autoPlay?: boolean | undefined;
};
image: {
quality: number;
types: string[];
};
text: {
pausedHeader: string;
pausedHint?: string | undefined;
sending: string;
encoding: string;
limitReached: string;
audioOff: string;
audioOn: string;
buttons: {
record: string;
recordAgain: string;
resume: string;
pause: string;
preview: string;
};
};
notifier: {
entertain: boolean;
entertainClass: string;
entertainLimit: number;
entertainInterval: number;
};
timeouts: {
userMedia: number;
connection: number;
pingInterval: number;
};
loadUserMediaOnRecord: boolean;
callbacks: {
adjustFormDataBeforePosting?: undefined | ((videomail: PartialVideomail) => PartialVideomail);
adjustFormValueBeforePopulating?: undefined | ((name: string, value: any, videomail: Videomail) => string);
};
defaults: {
from?: string | undefined;
to?: string | undefined;
cc?: string | undefined;
bcc?: string | undefined;
subject?: string | undefined;
body?: string | undefined;
};
displayErrors: boolean;
adjustFormOnBrowserError: boolean;
reportErrors: boolean;
disableFormWhenSubmitting?: boolean | undefined;
fakeUaString?: string | undefined;
recalculateDimensionsOnWindowResize?: boolean;
versions?: {
videomailNinjaFormPlugin?: string | undefined;
};
}
export type PartialVideomailClientOptions = PartialDeep<VideomailClientOptions>;