const cp = require('child_process');
const ph = require('path');
const os = require('os');

const libraries = [
  /* ph.join(__dirname, `node_modules`, `@telerik`, `kendo-inputs-common`),
  ph.join(__dirname, `node_modules`, `@telerik`, `kendo-intl`),
  ph.join(__dirname, `node_modules`, `@telerik`, `kendo-draggable`),

  ph.join(__dirname, `node_modules`, `@progress`, `kendo-schematics`),
  ph.join(__dirname, `node_modules`, `@progress`, 'kendo-common'),

  ph.join(__dirname, `node_modules`, `@progress`, 'kendo-data-query'),
  ph.join(__dirname, `node_modules`, `@progress`, 'kendo-date-math'),
  ph.join(__dirname, `node_modules`, `@progress`, 'kendo-drawing'),
  ph.join(__dirname, `node_modules`, `@progress`, 'kendo-file-saver'),
  ph.join(__dirname, `node_modules`, `@progress`, 'kendo-popup-common'),
  ph.join(__dirname, `node_modules`, `@progress`, 'kendo-ooxml'),

  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-common`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-intl`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-l10n`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-popup`),

  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-dialog`),

  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-progressbar`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-dateinputs`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-inputs`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-label`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-excel-export`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-pdf-export`),

  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-layout`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-menu`),

  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-buttons`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-tooltip`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-treeview`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-dropdowns`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-pager`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-grid`),
  ph.join(__dirname, `node_modules`, `@progress`, `kendo-angular-treelist`) */
];

const CMD = os.platform() === 'win32' ? `pnpx.cmd` : `pnpx`;

// --loglevel debug --async false --create-ivy-entry-points --first-only

libraries.forEach(function (lib) {
  // `--properties`, `es2015`, `browser`, `module`, `main`
  const ARGS = [`ngcc`, `--source`, lib, `--loglevel`, `debug`];

  const RES = cp.spawnSync(CMD, ARGS);

  console.log(`status -->`, RES.status);

  if (RES.status !== 0) {
    if (RES.error) {
      console.error(RES.error.toString());
    }

    if (RES.stderr) {
      console.error(RES.stderr.toString());
    }

    process.exit(1);
  } else {
    if (RES.stdout) {
      console.info(RES.stdout.toString());
    }
  }
});