Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"use strict";

const _require = require('fs'),
      lstatSync = _require.lstatSync,
      readdirSync = _require.readdirSync;

const _require2 = require('path'),
      join = _require2.join,
      resolve = _require2.resolve;

const _require3 = require('rollup'),
      rollup = _require3.rollup;

const log = require('fliplog');

const createPlugins = require("./plugins");

const keys = Object.keys;
const cwd = process.cwd();

const res = rel => resolve(__dirname, rel);

const ROOT = res('../');

const rez = rel => resolve(ROOT, rel);

const pkgJSON = require(join(cwd, 'package.json'));

let version = pkgJSON.version,
    _pkgJSON$rollup = pkgJSON.rollup,
    rollupConfig = _pkgJSON$rollup === void 0 ? {} : _pkgJSON$rollup,
    _pkgJSON$dependencies = pkgJSON.dependencies,
    dependencies = _pkgJSON$dependencies === void 0 ? {} : _pkgJSON$dependencies;
const bundledDependencies = rollupConfig.bundledDependencies,
      moduleName = rollupConfig.moduleName;
const bundleDeps = bundledDependencies || [];

const createBundle = options => {
  const exportName = options.exportName,
        format = options.format; // const filename = `${options.name}${options.env === 'production'
  //   ? '.min'
  //   : ''}.js`

  let filename = (exportName || pkgJSON[format] || format + '/index.js').replace('dists/', '');

  if (!filename.endsWith('.js') || !filename.includes('/')) {
    filename += '/index.js';
  }

  const dest = rez(`dists/${filename}`);
  const bundleOptions = {
    dest,
    indent: true,
    format,
    // globals: Object.assign(moduleGlobals, rollupConfig.moduleGlobals),
    moduleName,
    // sourceMap: false,
    sourceMap: true
  };

  if (format === 'amd') {
    options.moduleId = moduleName;
  }

  bundleOptions.externals = [require.resolve("../src/deps/env/debuggable.js")];
  log.data(bundleOptions).echo(); // log.quick(bundleOptions)
  // if (options.format === 'cjs') bundleOptions.exports = 'named'

  return ({
    write
  }) => write(bundleOptions);
};

const createRollup = options => {
  const external = keys(dependencies).filter(n => !bundleDeps.includes(n));
  const plugins = createPlugins(version, options);
  const config = {
    entry: options.entry || join(cwd, 'dist/index.js'),
    external,

    onwarn(warning) {
      log.red(warning).echo();
    },

    plugins
  };
  return rollup(config);
};

module.exports = {
  createRollup,
  createBundle
};