falcor
Version:
A JavaScript library for efficient data fetching.
40 lines (32 loc) • 1.1 kB
JavaScript
var pathSyntax = require("falcor-path-syntax");
var isPathValue = require("./../support/isPathValue");
var setPathValues = require("./../set/setPathValues");
module.exports = function setValueSync(pathArg, valueArg, errorSelectorArg, comparatorArg) {
var path = pathSyntax.fromPath(pathArg);
var value = valueArg;
var errorSelector = errorSelectorArg;
// XXX comparator is never used.
var comparator = comparatorArg;
if (isPathValue(path)) {
comparator = errorSelector;
errorSelector = value;
value = path;
} else {
value = {
path: path,
value: value
};
}
if (isPathValue(value) === false) {
throw new Error("Model#setValueSync must be called with an Array path.");
}
if (typeof errorSelector !== "function") {
errorSelector = this._root._errorSelector;
}
if (typeof comparator !== "function") {
comparator = this._root._comparator;
}
this._syncCheck("setValueSync");
setPathValues(this, [value]);
return this._getValueSync(value.path);
};