code: function createService(_ref) {
    var _ref$lang = _ref.lang,
        lang = _ref$lang === void 0 ? "en" : _ref$lang,
        _ref$type = _ref.type,
        type = _ref$type === void 0 ? "gregorian" : _ref$type,
        _ref$specialDays = _ref.specialDays,
        specialDays = _ref$specialDays === void 0 ? {} : _ref$specialDays,
        _ref$firstDayOfWeek = _ref.firstDayOfWeek,
        firstDayOfWeek = _ref$firstDayOfWeek === void 0 ? 0 : _ref$firstDayOfWeek;
    var service;
    var current;
    service = _DateWrapper.default;
    current = _moment.default;
  
    switch (type) {
      case 'hijri':
        service = _DateWrapperHijri.default;
        current = _momentHijri.default;
        break;
    }
  
    current.locale(lang);
    var weekdays = current.localeData().weekdays();
    current.updateLocale(lang, {
      week: {
        dow: firstDayOfWeek,
        doy: 6
      }
    });
    var specialDaysService = (0, _SpecialDaysService.default)(specialDays);
    return {
      /**
       * Returns current calendar month data
       */
      getCalendarMonth: getCalendarMonth.bind(null, current, service, function (args) {
        args.lang = lang;
        args.calendar = type;
        return specialDaysService.getSpecialDay(args);
      }),
  
      /**
       * Returns current month data
       */
      getMonth: getMonth.bind(null, current, service)
    };
  }
docs: momentHijri().format('iYYYY/iM/iD'); moment.locale(["en", "ar-sa", "ar", "tr"]); momentHijri.locale("en"); 
  Creates a service by specified parameters
  
  @param {string} lang - Calendar language
  @param {string} type - Calendar type
  @param {Object} specialDays - Special days data
  @param {integer} dow - Day of week
  
  @returns {Object}