Completed
Push — master ( 61d444...b3f358 )
by Jan
16s queued 14s
created

src/frames/frame-priv.ts   A

Complexity

Total Complexity 2
Complexity/F 0

Size

Lines of Code 24
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 17
mnd 2
bc 2
fnc 0
dl 0
loc 24
rs 10
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
1
import { FrameBuilder } from "../FrameBuilder"
2
import { FrameReader } from "../FrameReader"
3
import type { Data } from "./type"
4
5
export const PRIV = {
6
    create: (data: Data) => {
7
        if(!(data instanceof Array)) {
8
            data = [data]
9
        }
10
11
        return Buffer.concat(data.map((priv: Data) => new FrameBuilder("PRIV")
12
            .appendNullTerminatedValue(priv.ownerIdentifier)
13
            .appendValue(priv.data instanceof Buffer ? priv.data : Buffer.from(priv.data, "utf8"))
14
            .getBuffer()))
15
    },
16
    read: (buffer: Buffer) => {
17
        const reader = new FrameReader(buffer)
18
        return {
19
            ownerIdentifier: reader.consumeNullTerminatedValue('string'),
20
            data: reader.consumeStaticValue()
21
        }
22
    }
23
}
24