src/Payload.ts   A
last analyzed

Complexity

Total Complexity 2
Complexity/F 0

Size

Lines of Code 22
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 50%

Importance

Changes 0
Metric Value
wmc 2
eloc 18
mnd 2
bc 2
fnc 0
dl 0
loc 22
ccs 3
cts 6
cp 0.5
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
rs 10
1
import {ArrayC} from './io/ArrayC';
2
import {DocumentC} from './io/DocumentC';
3
import {JsonApiData} from './JsonApiData';
4
import {RawData} from './RawData';
5
import {ResourceRecord} from './ResourceRecord';
6
7
export type Payload = unknown
8
9
export const Payload = {
10
  fromJson: (u: unknown): Payload => {
11 2
    if (!DocumentC.is(u)) {
12
      return RawData.fromJson(u, {});
13
    }
14
15 2
    const resources = ResourceRecord.fromResources(u.included || []);
16
17 2
    return ArrayC<JsonApiData>().is(u.data)
18
      ? u.data.map(data => RawData.fromJson(data, resources))
19
      : RawData.fromJson(u.data, resources);
20
  }
21
};
22