use extends to extends typescript constructor parameters

pull/1151/head
Audric Ackermann 5 years ago
parent 1961ae8908
commit cb74c9fe1d
No known key found for this signature in database
GPG Key ID: 999F434D76324AD4

@ -1,9 +1,14 @@
export interface MessageParams {
timestamp: number;
identifier: string;
}
export abstract class Message {
public readonly timestamp: number;
public identifier: string;
constructor({ timestamp, identifier }: { timestamp: number; identifier: string }) {
constructor({ timestamp, identifier }: MessageParams) {
if (identifier.length === 0) {
throw new Error('Cannot set empty identifier');
}

@ -1,10 +1,8 @@
import { Message } from './Message';
import { Message, MessageParams } from './Message';
import { AttachmentType } from '../../../types/Attachment';
import { QuotedAttachmentType } from '../../../components/conversation/Quote';
interface OpenGroupMessageParams {
timestamp: number;
identifier: string;
interface OpenGroupMessageParams extends MessageParams {
server: string;
attachments: [AttachmentType];
body?: string;

@ -1,5 +1,6 @@
import { ContentMessage } from './ContentMessage';
import { SignalService } from '../../../../protobuf';
import { MessageParams } from '../Message';
export interface PreKeyBundleType {
@ -13,9 +14,7 @@ export interface PreKeyBundleType {
}
interface SessionResetParams {
timestamp: number;
identifier: string;
interface SessionResetParams extends MessageParams {
preKeyBundle: PreKeyBundleType;
}

@ -1,10 +1,9 @@
import { ContentMessage } from './ContentMessage';
import { SignalService } from '../../../../protobuf';
import { TextEncoder } from 'util';
import { MessageParams } from '../Message';
interface TypingMessageParams {
timestamp: number;
identifier: string;
interface TypingMessageParams extends MessageParams {
isTyping: boolean;
typingTimestamp: number | null;
groupId: string | null;

@ -1,9 +1,8 @@
import { DataMessage } from './DataMessage';
import { SignalService } from '../../../../../protobuf';
import { MessageParams } from '../../Message';
interface GroupInvitationMessageParams {
timestamp: number;
identifier: string;
interface GroupInvitationMessageParams extends MessageParams {
serverAddress: string;
channelId: number;
serverName: string;

@ -1,17 +1,9 @@
import { SignalService } from '../../../../../protobuf';
import { DeviceLinkRequestMessage } from './DeviceLinkRequestMessage';
import { DeviceLinkMessageParams, DeviceLinkRequestMessage } from './DeviceLinkRequestMessage';
import { LokiProfile } from '../../../../../types/Message';
interface DeviceLinkGrantMessageParams {
timestamp: number;
identifier: string;
// pairing authorisation
primaryDevicePubKey: string;
secondaryDevicePubKey: string;
requestSignature: Uint8Array;
interface DeviceLinkGrantMessageParams extends DeviceLinkMessageParams {
grantSignature: Uint8Array;
lokiProfile: LokiProfile;
}

@ -1,9 +1,7 @@
import { ContentMessage } from '../ContentMessage';
import { SignalService } from '../../../../../protobuf';
interface DeviceLinkMessageParams {
timestamp: number;
identifier: string;
import { MessageParams } from '../../Message';
export interface DeviceLinkMessageParams extends MessageParams{
primaryDevicePubKey: string;
secondaryDevicePubKey: string;
requestSignature: Uint8Array;

@ -1,11 +1,15 @@
import { ContentMessage } from '../ContentMessage';
import { SignalService } from '../../../../../protobuf';
import { MessageParams } from '../../Message';
interface ReceiptMessageParams extends MessageParams {
timestamps: Array<number>;
}
export abstract class ReceiptMessage extends ContentMessage {
private readonly timestamps: Array<number>;
constructor({ timestamp, identifier, timestamps }:
{ timestamp: number; identifier: string; timestamps: Array<number> }) {
ReceiptMessageParams) {
super({timestamp, identifier});
this.timestamps = timestamps;
}

Loading…
Cancel
Save