{"version":3,"sources":["src/common/ConnectionMessage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,oBAAY,WAAW;IACnB,IAAI,IAAA;IACJ,MAAM,IAAA;CACT;AAED,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAa;IAE7B,OAAO,CAAC,MAAM,CAAS;gBAGnB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACnC,EAAE,CAAC,EAAE,MAAM;aAgBJ,WAAW,EAAI,WAAW;aAI1B,OAAO,EAAI,GAAG;aAId,IAAI,EAAI,GAAG;aAIX,QAAQ,EAAI,MAAM;aAQlB,UAAU,EAAI,WAAW;aAQzB,EAAE,EAAI,MAAM;CAG1B","file":"ConnectionMessage.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport { InvalidOperationError } from \"./Error\";\nimport { createNoDashGuid } from \"./Guid\";\nimport { IStringDictionary } from \"./IDictionary\";\n\nexport enum MessageType {\n    Text,\n    Binary,\n}\n\nexport class ConnectionMessage {\n\n    private privMessageType: MessageType;\n    private privHeaders: IStringDictionary<string>;\n    private privBody: any = null;\n\n    private privId: string;\n\n    public constructor(\n        messageType: MessageType,\n        body: any,\n        headers?: IStringDictionary<string>,\n        id?: string) {\n\n        if (messageType === MessageType.Text && body && !(typeof (body) === \"string\")) {\n            throw new InvalidOperationError(\"Payload must be a string\");\n        }\n\n        if (messageType === MessageType.Binary && body && !(body instanceof ArrayBuffer)) {\n            throw new InvalidOperationError(\"Payload must be ArrayBuffer\");\n        }\n\n        this.privMessageType = messageType;\n        this.privBody = body;\n        this.privHeaders = headers ? headers : {};\n        this.privId = id ? id : createNoDashGuid();\n    }\n\n    public get messageType(): MessageType {\n        return this.privMessageType;\n    }\n\n    public get headers(): any {\n        return this.privHeaders;\n    }\n\n    public get body(): any {\n        return this.privBody;\n    }\n\n    public get textBody(): string {\n        if (this.privMessageType === MessageType.Binary) {\n            throw new InvalidOperationError(\"Not supported for binary message\");\n        }\n\n        return this.privBody as string;\n    }\n\n    public get binaryBody(): ArrayBuffer {\n        if (this.privMessageType === MessageType.Text) {\n            throw new InvalidOperationError(\"Not supported for text message\");\n        }\n\n        return this.privBody;\n    }\n\n    public get id(): string {\n        return this.privId;\n    }\n}\n"]}