UNPKG

craft-ai

Version:

craft ai API isomorphic (compatible with browser and nodejs) javascript client

61 lines (49 loc) 2.22 kB
'use strict'; 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; })); }