Passed
Pull Request — master (#156)
by
unknown
01:41
created

src/frames/frame-ufid.ts   A

Complexity

Total Complexity 2
Complexity/F 0

Size

Lines of Code 27
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 18
mnd 2
bc 2
fnc 0
dl 0
loc 27
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 UFID = {
6
    create: (data: Data) => {
7
        if (!(data instanceof Array)) {
8
            data = [data]
9
        }
10
11
        return Buffer.concat(data.map((ufid: Data) => new FrameBuilder("UFID")
12
            .appendNullTerminatedValue(ufid.ownerIdentifier)
13
            .appendValue(
14
                ufid.identifier instanceof Buffer ?
15
                ufid.identifier : Buffer.from(ufid.identifier, "utf8")
16
            )
17
            .getBuffer()))
18
    },
19
    read: (buffer: Buffer) => {
20
        const reader = new FrameReader(buffer)
21
        return {
22
            ownerIdentifier: reader.consumeNullTerminatedValue('string'),
23
            identifier: reader.consumeStaticValue()
24
        }
25
    }
26
}
27