Completed
Push — master ( c68c1b...64b526 )
by Mark
16s queued 12s
created

src/Store/Model/Util/Setup.ts   A

Complexity

Total Complexity 8
Complexity/F 2.67

Size

Lines of Code 34
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 24
dl 0
loc 34
rs 10
c 0
b 0
f 0
wmc 8
mnd 5
bc 5
fnc 3
bpm 1.6666
cpm 2.6666
noi 0

3 Functions

Rating   Name   Duplication   Size   Complexity  
A Setup.ts ➔ setFields 0 6 2
A Setup.ts ➔ addRelationFieldsToList 0 10 2
A Setup.ts ➔ setupTable 0 9 4
1
import Relation from "../Relation";
2
import ForeignKey from "../Field/ForeignKey";
3
import HasManyThrough from "../Relation/HasManyThrough";
4
5
6
export function addRelationFieldsToList(fields) {
7
    const fieldList = [...fields];
8
    fields.forEach((field, i) => {
9
        if (field instanceof Relation) {
10
            fieldList.splice(i, 0, ...field.getRelationalFields());
11
        }
12
    });
13
    return fieldList;
14
}
15
16
export function setFields(model, fields) {
17
    model._originalFields = [...fields];
18
    model.numberOfFields = model.originalFields.length;
19
    for (let i = 0; i < model.numberOfFields; i++) {
20
        model.originalFields[i].setup(model);
21
    }
22
}
23
24
export function setupTable(model, table) {
25
    for (let i = 0; i < model.numberOfFields; i++) {
26
        if (model.originalFields[i] instanceof ForeignKey) {
27
            model.originalFields[i].tableSetup(table);
28
        }
29
30
        if (model.originalFields[i] instanceof HasManyThrough) {
31
            model.originalFields[i].tableSetup(table);
32
        }
33
    }
34
}