craft-ai
Version:
craft ai API isomorphic (compatible with browser and nodejs) javascript client
61 lines (49 loc) • 2.22 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createContext;
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _time = require('./time');
var _time2 = _interopRequireDefault(_time);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function createContext(configuration) {
if (_lodash2.default.isUndefined(configuration) || _lodash2.default.isUndefined(configuration.context)) {
throw new Error('Unable to create context, the given configuration is not valid');
}
var inputContext = _lodash2.default.omit(configuration.context, configuration.output);
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
return _lodash2.default.reduce(args, function (context, arg) {
if (arg instanceof _time2.default) {
var day_of_week = arg.day_of_week,
time_of_day = arg.time_of_day,
day_of_month = arg.day_of_month,
month_of_year = arg.month_of_year,
timezone = arg.timezone;
return _lodash2.default.mapValues(inputContext, function (v, k) {
if (v.type === 'day_of_week' && (_lodash2.default.isUndefined(v.is_generated) || v.is_generated)) {
return day_of_week;
} else if (v.type === 'time_of_day' && (_lodash2.default.isUndefined(v.is_generated) || v.is_generated)) {
return time_of_day;
} else if (v.type === 'day_of_month' && (_lodash2.default.isUndefined(v.is_generated) || v.is_generated)) {
return day_of_month;
} else if (v.type === 'month_of_year' && (_lodash2.default.isUndefined(v.is_generated) || v.is_generated)) {
return month_of_year;
} else if (v.type === 'timezone') {
return timezone;
} else {
return context[k];
}
});
} else {
return _lodash2.default.mapValues(inputContext, function (v, k) {
return _lodash2.default.isUndefined(arg[k]) ? context[k] : arg[k];
});
}
}, _lodash2.default.mapValues(inputContext, function () {
return undefined;
}));
}
;