const eleventySass = require("eleventy-sass");
const lazyImagesPlugin = require('eleventy-plugin-lazyimages');

// https://www.npmjs.com/package/eleventy-plugin-img2picture
const img2picture = require("eleventy-plugin-img2picture");

// https://www.npmjs.com/package/@sardine/eleventy-plugin-tinycss
const tinyCSS = require('@sardine/eleventy-plugin-tinycss');

// https://www.npmjs.com/package/@sardine/eleventy-plugin-tinysvg
const tinysvg = require('@sardine/eleventy-plugin-tinysvg');

// https://www.npmjs.com/package/@sardine/eleventy-plugin-tinyhtml
const tinyHTML = require('@sardine/eleventy-plugin-tinyhtml');

module.exports = function (eleventyConfig) {

  // passthrus
  //eleventyConfig.addPassthroughCopy("./src/assets/styles");

  eleventyConfig.addPassthroughCopy('src/assets/fonts');
  eleventyConfig.addPassthroughCopy("./src/assets/js");
  // eleventyConfig.addPassthroughCopy('src/assets/images/**/*.png');
  // eleventyConfig.addPassthroughCopy('src/assets/images/**/*.svg');
  // eleventyConfig.addPassthroughCopy('src/assets/images/**/*.jpg');
  // eleventyConfig.addPassthroughCopy('src/assets/images/**/*.gif');


  if (true) {//(process.env.ELEVENTY_ENV === "production") {
    eleventyConfig.addPlugin(img2picture, {
      // Should be same as Eleventy input folder set using `dir.input`.
      eleventyInputDir: "src",

      // Output folder for optimized images.
      imagesOutputDir: "_site/assets/images",

      // URL prefix for images src URLS.
      // It should match with path suffix in `imagesOutputDir`.
      // Eg: imagesOutputDir with `_site/images` likely need urlPath as `/images/`
      urlPath: "/assets/images/",
    });
  } else {
    // During development, copy the files to Eleventy's `dir.output`
    eleventyConfig.addPassthroughCopy("src/assets/images");
  }

  //eleventyConfig.addNunjucksFilter('bitcoin', arr => arr.filter(e => e.name == 'Synapse'));

  //plugins
  eleventyConfig.addPlugin(eleventySass);
  //eleventyConfig.addPlugin(tinyCSS);
  eleventyConfig.addPlugin(tinyHTML);
  eleventyConfig.addPlugin(tinysvg, {
    baseUrl: 'src/_includes/components/svg/',
  });

  // eleventyConfig.addPlugin(lazyImagesPlugin, {
  //   imgSelector: 'img:not(.unlazy)', // custom image selector
  //   //cacheFile: '', // don't cache results to a file
  // });

  return {
    dir: { input: "src", output: "_site", data: "_data" },
  };
};

// module.exports = function (eleventyConfig) {
//   if (process.env.ELEVENTY_ENV === "production") {
//     eleventyConfig.addPlugin(img2picture, {
//       // Should be same as Eleventy input folder set using `dir.input`.
//       eleventyInputDir: ".",

//       // Output folder for optimized images.
//       imagesOutputDir: "_site",

//       // URL prefix for images src URLS.
//       // It should match with path suffix in `imagesOutputDir`.
//       // Eg: imagesOutputDir with `_site/images` likely need urlPath as `/images/`
//       urlPath: "",
//     });
//   } else {
//     // During development, copy the files to Eleventy's `dir.output`
//     eleventyConfig.addPassthroughCopy("./images");
//   }
// };