All files / generator/models generator-options.model.ts

100% Statements 21/21
100% Branches 0/0
100% Functions 7/7
100% Lines 20/20

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66          1x 1x 1x   1x               8x 8x 8x 8x 8x     1x 8x                         1x 8x           1x 8x             1x 8x     1x 8x           1x  
import { CommonOptions } from './common-options.model';
import { StringOptions } from './string-options.model';
import { ObjectOptions } from './object-options.model';
import { ArrayOptions } from './array-options.model';
import { NumberOptions } from './number-options.model';
import { IDTypeEnum } from '../enums/id-type.enum';
import { RequiredEnum } from '../enums/required.enum';
import { ArrayValidationTypeEnum } from '../enums/array-validation-type.enum';
 
export class GeneratorOptionsModel {
    common: CommonOptions;
    objects: ObjectOptions;
    arrays: ArrayOptions;
    strings: StringOptions;
    numbers: NumberOptions;
 
    constructor() {
        this.common = this.getDefaultCommonOptions();
        this.objects = this.getDefaultObjectOptions();
        this.arrays = this.getDefaultArrayOptions();
        this.strings = this.getDefaultStringOptions();
        this.numbers = this.getDefaultNumberOptions();
    }
 
    private getDefaultCommonOptions(): CommonOptions {
        return <CommonOptions> {
            inferEnums: false,
            inclNullAsType: false,
            idType: IDTypeEnum.relative,
            inferTitle: false,
            inferDescription: false,
            inferDefault: false,
            inferExamples: false,
            readOnly: false,
            writeOnly: false
        };
    }
 
    private getDefaultObjectOptions(): ObjectOptions {
        return <ObjectOptions> {
            required: RequiredEnum.ifValue,
            additionalProperties: true
        };
    }
 
    private getDefaultArrayOptions(): ArrayOptions {
        return <ArrayOptions> {
            uniqueItems: false,
            additionalItems: true,
            validationType: ArrayValidationTypeEnum.listValidation
        };
    }
 
    private getDefaultStringOptions(): StringOptions {
        return <StringOptions> {};
    }
 
    private getDefaultNumberOptions(): NumberOptions {
        return <NumberOptions> {
            exclusiveMinimum: false,
            exclusiveMaximum: false,
            detectInteger: true
        };
    }
}