Home / File/ validate-skip-packages.js — react Source File

validate-skip-packages.js — react Source File

Architecture documentation for validate-skip-packages.js, a javascript file in the react codebase.

Entity Profile

Relationship Graph

Source Code

#!/usr/bin/env node

'use strict';

const {readJson} = require('fs-extra');
const {join} = require('path');
const theme = require('../theme');
const {execRead} = require('../utils');

const readPackageJSON = async (cwd, name) => {
  const packageJSONPath = join(
    cwd,
    'build',
    'node_modules',
    name,
    'package.json'
  );
  return await readJson(packageJSONPath);
};

const run = async ({cwd, packages, skipPackages}) => {
  if (skipPackages.length === 0) {
    return;
  }

  const validateDependencies = async (name, dependencies) => {
    if (!dependencies) {
      return;
    }

    for (let dependency in dependencies) {
      // Do we depend on a package that has been skipped?
      if (skipPackages.includes(dependency)) {
        const version = dependencies[dependency];
        // Do we depend on a version of the package that has not been published to NPM?
        const info = await execRead(`npm view ${dependency}@${version}`);
        if (!info) {
          console.log(
            theme`{error Package} {package ${name}} {error depends on an unpublished skipped package}`,
            theme`{package ${dependency}}@{version ${version}}`
          );
          process.exit(1);
        }
      }
    }
  };

  // Make sure none of the other packages depend on a skipped package,
  // unless the dependency has already been published to NPM.
  for (let i = 0; i < packages.length; i++) {
    const name = packages[i];
    const {dependencies, peerDependencies} = await readPackageJSON(cwd, name);

    validateDependencies(name, dependencies);
    validateDependencies(name, peerDependencies);
  }
};

module.exports = run;

Domain

Subdomains

Frequently Asked Questions

What does validate-skip-packages.js do?
validate-skip-packages.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Optimization subdomain.
What functions are defined in validate-skip-packages.js?
validate-skip-packages.js defines 2 function(s): readPackageJSON, run.
Where is validate-skip-packages.js in the architecture?
validate-skip-packages.js is located at scripts/release/publish-commands/validate-skip-packages.js (domain: BabelCompiler, subdomain: Optimization, directory: scripts/release/publish-commands).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free