Skip to content

ValueTransformer RandomInteger

SmartJSONEditor edited this page Aug 9, 2017 · 4 revisions

Usage

Generates random Integer value with defined range.

Source Code

Github Link

var ValueTransformer = function () {
    
    this.displayName = "Random Integer";
    this.shortDescription = "Generate random integer number with min/max range."
    this.isEditingDisabled = true;
    this.infoUrl = "https://github.com/SmartJSONEditor/PublicDocuments/wiki/ValueTransformer-RandomInteger";
    
    this.parameters = function () {
        
	var minUIParam = { 
            type: "Number", 
            name: "min",
            displayName: "Min", 
            description: "Minimum",
            defaultValue: "0"
        };
        
        var maxUIParam = { 
            type: "Number",
            name: "max",
            displayName: "Max", 
            description: "Maximum",
            defaultValue: "100" 
        };

	var segmentsDefaultValues = [
            { displayName: "Prepend", enabled: 0 }, 
            { displayName: "Replace" , enabled: 1 }, 
            { displayName: "Append" , enabled: 0 }
        ];
        
        var outputUIParam = { 
            type: "Segments", 
            name: "output", 
            displayName: "Output",
            description: "Select how to output the value.", 
            defaultValue: segmentsDefaultValues 
        };

        return [minUIParam,maxUIParam,outputUIParam];
    }

    this.transform = function (inputValue, jsonValue, arrayIndex, parameters, info) {
		
        var minRaw = parameters.min;
        var maxRaw = parameters.max;
        var minValue = minRaw;
        var maxValue = maxRaw;
        
        if (minRaw > maxRaw) {
            minValue = maxRaw;
            maxValue = minRaw;
        }
        
        var randomInt = randomIntFromInterval(minValue,maxValue);
                
	if (parameters.output[0].enabled == 1) { return inputValue + randomInt; }
	if (parameters.output[1].enabled == 1) { return randomInt; }
	if (parameters.output[2].enabled == 1) { return randomInt + inputValue; }
        return "Error: Invalid parameters";
    };
    
    function randomIntFromInterval(min,max) {
        return Math.floor(Math.random()*(max-min+1)+min);
    }
}

function sjeClass() {
    return new ValueTransformer();
}

Clone this wiki locally