[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/patternfly/patternfly-react/main/scripts/exportSubpaths.mjs [Back]  [Original]

/* eslint-disable no-console */
import fse from 'fs-extra';
import { createRequire } from 'node:module';
import path from 'node:path';

const require = createRequire(import.meta.url);
const root = process.cwd();
const packageJson = require(`${root}/package.json`);

if (!(process.argv.includes('--config') && process.argv.indexOf('--config') + 1 < process.argv.length)) {
  console.log('--config is required followed by the config file name');
  process.exit(1);
}

const configJson = require(`${root}/${process.argv[process.argv.indexOf('--config') + 1]}`);

if (!configJson.paths || configJson.paths.length === 0) {
  console.log('directories are required');
  process.exit(1);
}

const packageName = configJson.packageName;
if (!packageName) {
  console.log('packageName is required');
  process.exit(1);
}

/**
 * Re-export subpath modules into the package root directory for ease of access.
 */
async function createPackage(directoryName) {
  const content = {
    name: `${packageName}-${directoryName}`,
    main: `../dist/js/${directoryName}/index.js`,
    module: `../dist/esm/${directoryName}/index.js`,
    typings: `../dist/esm/${directoryName}/index.d.ts`,
    version: packageJson.version,
    private: true
  };

  const dirPath = path.join(root, directoryName);

  await fse.mkdir(dirPath);
  await fse.writeJSON(path.join(dirPath, 'package.json'), content);
}

configJson.paths.forEach((dirName) => {
  try {
    createPackage(dirName);
  } catch (error) {
    console.log('failed to create re-export package file');
    console.log(error);
  }
});

Web Proxy Viewer  |  New URL  |  Original Page