src/frames/generic.ts   A
last analyzed

Complexity

Total Complexity 2
Complexity/F 0

Size

Lines of Code 38
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 25
mnd 2
bc 2
fnc 0
dl 0
loc 38
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 { TextEncoding } from "../definitions/Encoding"
4
5
export const GENERIC_TEXT = {
6
    create: (frameIdentifier: string, text: string): Buffer => {
7
        if(text == undefined) {
8
            throw new TypeError(
9
                `A text must be provided for frame id ${frameIdentifier}`
10
            )
11
        }
12
        return new FrameBuilder(frameIdentifier, TextEncoding.UTF_16_WITH_BOM)
13
            .appendTextWithFrameEncoding(text)
14
            .getBufferWithPartialHeader()
15
    },
16
    read: (buffer: Buffer) => {
17
        const reader = new FrameReader(buffer, {consumeEncodingByte: true})
18
        return reader.consumeTextWithFrameEncoding()
19
    }
20
}
21
22
export const GENERIC_URL = {
23
    create: (frameIdentifier: string, url: string): Buffer => {
24
        if(url == undefined) {
25
            throw new TypeError(
26
                `An url must be provided for frame id ${frameIdentifier}`
27
            )
28
        }
29
        return new FrameBuilder(frameIdentifier)
30
            .appendText(url)
31
            .getBufferWithPartialHeader()
32
    },
33
    read: (buffer: Buffer) => {
34
        const reader = new FrameReader(buffer)
35
        return reader.consumeText()
36
    }
37
}
38