fluxtuate
Version:
a javascript ES7 library for handling complex data transactions
41 lines (28 loc) • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (valueClass, typeProperty, typeChecks) {
if (!(0, _lang.isArray)(valueClass) && typeChecks) {
return convert.apply(this, [(0, _instanceOf2.default)(), valueClass, typeProperty, typeChecks]);
} else {
return convert.bind(this, (0, _instanceOf2.default)(valueClass, typeProperty, typeChecks));
}
};
var _observableArray = require("../observable-array");
var _observableArray2 = _interopRequireDefault(_observableArray);
var _lang = require("lodash/lang");
var _instanceOf = require("./instance-of");
var _instanceOf2 = _interopRequireDefault(_instanceOf);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function defineArrayProps(returnArray, name, parentName, convertFunction) {
return _observableArray2.default.getInstance(returnArray, name, parentName, convertFunction);
}
function convert(conversionFunction, data, parentName, parentProperty) {
if (data === undefined) return undefined;
if (!(0, _lang.isArray)(data)) throw new Error("Value must be of type Array");
var returnArray = data.map(function (d, i) {
return conversionFunction(d, parentName, parentProperty + "[" + i + "]");
});
return defineArrayProps(returnArray, parentProperty, parentName, conversionFunction);
}