export default function prependSlide(slides) {
  const swiper = this;
  const {
    params,
    activeIndex,
    slidesEl
  } = swiper;

  if (params.loop) {
    swiper.loopDestroy();
  }

  let newActiveIndex = activeIndex + 1;

  const prependElement = slideEl => {
    if (typeof slideEl === 'string') {
      const tempDOM = document.createElement('div');
      tempDOM.innerHTML = slideEl;
      slidesEl.prepend(tempDOM.children[0]);
      tempDOM.innerHTML = '';
    } else {
      slidesEl.prepend(slideEl);
    }
  };

  if (typeof slides === 'object' && 'length' in slides) {
    for (let i = 0; i < slides.length; i += 1) {
      if (slides[i]) prependElement(slides[i]);
    }

    newActiveIndex = activeIndex + slides.length;
  } else {
    prependElement(slides);
  }

  swiper.recalcSlides();

  if (params.loop) {
    swiper.loopCreate();
  }

  if (!params.observer || swiper.isElement) {
    swiper.update();
  }

  swiper.slideTo(newActiveIndex, 0, false);
}