UNPKG

wampy

Version:

Amazingly fast, feature-rich, lightweight WAMP Javascript client (for browser and node.js)

1 lines 1.59 kB
{"version":3,"sources":["../../../src/serializers/cbor-serializer.ts"],"sourcesContent":["import { Encoder, type Options } from 'cbor-x';\nimport type { Serializer } from './serializer.js';\n\n/**\n * Extended options interface to include int64AsNumber which is supported\n * at runtime by cbor-x but missing from its type declarations.\n */\ninterface CborxOptions extends Options {\n int64AsNumber?: boolean;\n}\n\nconst cborxOptions: CborxOptions = {\n useRecords: false,\n mapsAsObjects: true,\n int64AsNumber: true,\n largeBigIntToFloat: true\n};\n\nexport class CborSerializer implements Serializer {\n protocol: string = 'cbor';\n isBinary: boolean = true;\n encoder: Encoder;\n\n constructor(options?: CborxOptions) {\n const initOptions = options ?? cborxOptions;\n this.encoder = new Encoder(initOptions as Options);\n }\n\n encode (data: unknown): Uint8Array {\n return this.encoder.encode(data);\n }\n\n decode (data: string | ArrayBuffer | Uint8Array): unknown {\n return this.encoder.decode(new Uint8Array(data as ArrayBuffer));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAsC;AAWtC,IAAM,eAA6B;AAAA,EAC/B,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,eAAe;AAAA,EACf,oBAAoB;AACxB;AAEO,IAAM,iBAAN,MAA2C;AAAA,EAC9C,WAAmB;AAAA,EACnB,WAAoB;AAAA,EACpB;AAAA,EAEA,YAAY,SAAwB;AAChC,UAAM,cAAc,WAAW;AAC/B,SAAK,UAAU,IAAI,sBAAQ,WAAsB;AAAA,EACrD;AAAA,EAEA,OAAQ,MAA2B;AAC/B,WAAO,KAAK,QAAQ,OAAO,IAAI;AAAA,EACnC;AAAA,EAEA,OAAQ,MAAkD;AACtD,WAAO,KAAK,QAAQ,OAAO,IAAI,WAAW,IAAmB,CAAC;AAAA,EAClE;AACJ;","names":[]}