wonder.js
Version:
107 lines (91 loc) • 4.33 kB
JavaScript
;
var Js_option = require("bs-platform/lib/js/js_option.js");
var Log$WonderLog = require("wonder-log/lib/js/src/Log.js");
var OptionService$Wonderjs = require("../../../atom/OptionService.js");
var ImmutableHashMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ImmutableHashMapService.js");
function createScriptAttribute(param) {
return ImmutableHashMapService$WonderCommonlib.createEmpty(/* () */0);
}
function _getTypeFromJsObj (jsObj){
return jsObj.type;
};
function _createScriptAttributeField(attributeFieldJsObj) {
var type_ = _getTypeFromJsObj(attributeFieldJsObj);
var tmp;
switch (type_) {
case "float" :
tmp = /* Float */1;
break;
case "int" :
tmp = /* Int */0;
break;
default:
tmp = Log$WonderLog.fatal(Log$WonderLog.buildFatalMessage("_createScriptAttributeField", "unknown type: " + (String(type_) + ""), "", "", ""));
}
return /* record */[
/* type_ */tmp,
/* defaultValue */attributeFieldJsObj.defaultValue,
/* value */attributeFieldJsObj.defaultValue
];
}
function addScriptAttributeFieldJsObj(fieldName, attributeFieldJsObj, attribute) {
return ImmutableHashMapService$WonderCommonlib.set(fieldName, _createScriptAttributeField(attributeFieldJsObj), attribute);
}
var removeScriptAttributeField = ImmutableHashMapService$WonderCommonlib.deleteVal;
var getScriptAttributeEntries = ImmutableHashMapService$WonderCommonlib.getValidEntries;
var getScriptAttributeField = ImmutableHashMapService$WonderCommonlib.get;
function getScriptAttributeFieldValue(fieldName, attribute) {
return Js_option.map((function (param) {
return param[/* value */2];
}), ImmutableHashMapService$WonderCommonlib.get(fieldName, attribute));
}
function unsafeGetScriptAttributeFieldValue(fieldName, attribute) {
return OptionService$Wonderjs.unsafeGet(getScriptAttributeFieldValue(fieldName, attribute));
}
function setScriptAttributeFieldValue(fieldName, value, attribute) {
var match = ImmutableHashMapService$WonderCommonlib.get(fieldName, attribute);
if (match !== undefined) {
var field = match;
return ImmutableHashMapService$WonderCommonlib.set(fieldName, /* record */[
/* type_ */field[/* type_ */0],
/* defaultValue */field[/* defaultValue */1],
/* value */value
], attribute);
} else {
return attribute;
}
}
function getScriptAttributeFieldDefaultValue(fieldName, attribute) {
return Js_option.map((function (param) {
return param[/* defaultValue */1];
}), ImmutableHashMapService$WonderCommonlib.get(fieldName, attribute));
}
function unsafeGetScriptAttributeFieldDefaultValue(fieldName, attribute) {
return OptionService$Wonderjs.unsafeGet(getScriptAttributeFieldDefaultValue(fieldName, attribute));
}
function setScriptAttributeFieldDefaultValueAndValue(fieldName, value, attribute) {
var match = ImmutableHashMapService$WonderCommonlib.get(fieldName, attribute);
if (match !== undefined) {
return ImmutableHashMapService$WonderCommonlib.set(fieldName, /* record */[
/* type_ */match[/* type_ */0],
/* defaultValue */value,
/* value */value
], attribute);
} else {
return attribute;
}
}
exports.createScriptAttribute = createScriptAttribute;
exports._getTypeFromJsObj = _getTypeFromJsObj;
exports._createScriptAttributeField = _createScriptAttributeField;
exports.addScriptAttributeFieldJsObj = addScriptAttributeFieldJsObj;
exports.removeScriptAttributeField = removeScriptAttributeField;
exports.getScriptAttributeEntries = getScriptAttributeEntries;
exports.getScriptAttributeField = getScriptAttributeField;
exports.getScriptAttributeFieldValue = getScriptAttributeFieldValue;
exports.unsafeGetScriptAttributeFieldValue = unsafeGetScriptAttributeFieldValue;
exports.setScriptAttributeFieldValue = setScriptAttributeFieldValue;
exports.getScriptAttributeFieldDefaultValue = getScriptAttributeFieldDefaultValue;
exports.unsafeGetScriptAttributeFieldDefaultValue = unsafeGetScriptAttributeFieldDefaultValue;
exports.setScriptAttributeFieldDefaultValueAndValue = setScriptAttributeFieldDefaultValueAndValue;
/* Log-WonderLog Not a pure module */