UNPKG

@se-puu/qpack

Version:

Quick serializer and de-serializer

49 lines (48 loc) 2.38 kB
import { QDecoder } from "../../src/decoder/decoder"; import { QEncoder } from "../../src/encoder/encoder"; import { ExtRegistry, ExtEntry } from "../../src/lib/ext-registry"; import { isEqual, logTextMaker, runGc } from "../lib"; import { TestExt16_1 } from "./extension-16"; import { TestExt24_1 } from "./extension-24"; import { TestExt32_1, TestExt32_2 } from "./extension-32"; import { TestExt8_1 } from "./extension-8"; function _testExt(classD: unknown,extRegistry:ExtRegistry): boolean { const data = new (classD as ExtEntry<object> & {new()})(); if(!extRegistry.register(classD as ExtEntry<object>)){ return false; } const encoder = QEncoder.create({extRegistry}); const buf = encoder.encode(data); if (!buf) { return false; } const decoder = QDecoder.create({extRegistry}); const decode = decoder.decode<typeof classD>(buf); if (decode === undefined) { return false; } return isEqual(data, decode, encoder.__extRegistry); } export function testExtHeavy(): boolean { let outputText = "Extension\t>>>"; let status = true; const extRegistry = ExtRegistry.create(); outputText += logTextMaker(_testExt(TestExt8_1,extRegistry) ? status &&= true : status = false, `Extension8 test1`, "✓", "✗"); outputText += logTextMaker(_testExt(TestExt16_1,extRegistry) ? status &&= true : status = false, `Extension16 test1`, "✓", "✗"); outputText += logTextMaker(_testExt(TestExt24_1,extRegistry) ? status &&= true : status = false, `Extension24 test1`, "✓", "✗"); outputText += logTextMaker(_testExt(TestExt32_1,extRegistry) ? status &&= true : status = false, `Extension32 test1`, "✓", "✗"); outputText += logTextMaker(_testExt(TestExt32_2,extRegistry) ? status &&= true : status = false, `Extension32 test2`, "✓", "✗"); console.log(outputText); runGc(); return status; } export function testExt(): boolean { let outputText = "Extension\t>>>"; let status = true; const extRegistry = ExtRegistry.create(); outputText += logTextMaker(_testExt(TestExt8_1,extRegistry) ? status &&= true : status = false, `Extension8 test1`, "✓", "✗"); outputText += logTextMaker(_testExt(TestExt16_1,extRegistry) ? status &&= true : status = false, `Extension16 test1`, "✓", "✗"); console.log(outputText); runGc(); return status; }