UNPKG

5.22 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.getPathKey = getPathKey;
7const os = require('os');
8const path = require('path');
9const userHome = require('./util/user-home-dir').default;
10
11var _require = require('./util/user-dirs');
12
13const getCacheDir = _require.getCacheDir,
14 getConfigDir = _require.getConfigDir,
15 getDataDir = _require.getDataDir;
16
17const isWebpackBundle = require('is-webpack-bundle');
18
19const DEPENDENCY_TYPES = exports.DEPENDENCY_TYPES = ['devDependencies', 'dependencies', 'optionalDependencies', 'peerDependencies'];
20const OWNED_DEPENDENCY_TYPES = exports.OWNED_DEPENDENCY_TYPES = ['devDependencies', 'dependencies', 'optionalDependencies'];
21
22const RESOLUTIONS = exports.RESOLUTIONS = 'resolutions';
23const MANIFEST_FIELDS = exports.MANIFEST_FIELDS = [RESOLUTIONS, ...DEPENDENCY_TYPES];
24
25const SUPPORTED_NODE_VERSIONS = exports.SUPPORTED_NODE_VERSIONS = '^4.8.0 || ^5.7.0 || ^6.2.2 || >=8.0.0';
26
27const YARN_REGISTRY = exports.YARN_REGISTRY = 'https://registry.yarnpkg.com';
28const NPM_REGISTRY_RE = exports.NPM_REGISTRY_RE = /https?:\/\/registry\.npmjs\.org/g;
29
30const YARN_DOCS = exports.YARN_DOCS = 'https://yarnpkg.com/en/docs/cli/';
31const YARN_INSTALLER_SH = exports.YARN_INSTALLER_SH = 'https://yarnpkg.com/install.sh';
32const YARN_INSTALLER_MSI = exports.YARN_INSTALLER_MSI = 'https://yarnpkg.com/latest.msi';
33
34const SELF_UPDATE_VERSION_URL = exports.SELF_UPDATE_VERSION_URL = 'https://yarnpkg.com/latest-version';
35
36// cache version, bump whenever we make backwards incompatible changes
37const CACHE_VERSION = exports.CACHE_VERSION = 6;
38
39// lockfile version, bump whenever we make backwards incompatible changes
40const LOCKFILE_VERSION = exports.LOCKFILE_VERSION = 1;
41
42// max amount of network requests to perform concurrently
43const NETWORK_CONCURRENCY = exports.NETWORK_CONCURRENCY = 8;
44
45// HTTP timeout used when downloading packages
46const NETWORK_TIMEOUT = exports.NETWORK_TIMEOUT = 30 * 1000; // in milliseconds
47
48// max amount of child processes to execute concurrently
49const CHILD_CONCURRENCY = exports.CHILD_CONCURRENCY = 5;
50
51const REQUIRED_PACKAGE_KEYS = exports.REQUIRED_PACKAGE_KEYS = ['name', 'version', '_uid'];
52
53function getPreferredCacheDirectories() {
54 const preferredCacheDirectories = [getCacheDir()];
55
56 if (process.getuid) {
57 // $FlowFixMe: process.getuid exists, dammit
58 preferredCacheDirectories.push(path.join(os.tmpdir(), `.yarn-cache-${process.getuid()}`));
59 }
60
61 preferredCacheDirectories.push(path.join(os.tmpdir(), `.yarn-cache`));
62
63 return preferredCacheDirectories;
64}
65
66const PREFERRED_MODULE_CACHE_DIRECTORIES = exports.PREFERRED_MODULE_CACHE_DIRECTORIES = getPreferredCacheDirectories();
67const CONFIG_DIRECTORY = exports.CONFIG_DIRECTORY = getConfigDir();
68const DATA_DIRECTORY = exports.DATA_DIRECTORY = getDataDir();
69const LINK_REGISTRY_DIRECTORY = exports.LINK_REGISTRY_DIRECTORY = path.join(DATA_DIRECTORY, 'link');
70const GLOBAL_MODULE_DIRECTORY = exports.GLOBAL_MODULE_DIRECTORY = path.join(DATA_DIRECTORY, 'global');
71
72const NODE_BIN_PATH = exports.NODE_BIN_PATH = process.execPath;
73const YARN_BIN_PATH = exports.YARN_BIN_PATH = getYarnBinPath();
74
75// Webpack needs to be configured with node.__dirname/__filename = false
76function getYarnBinPath() {
77 if (isWebpackBundle) {
78 return __filename;
79 } else {
80 return path.join(__dirname, '..', 'bin', 'yarn.js');
81 }
82}
83
84const NODE_MODULES_FOLDER = exports.NODE_MODULES_FOLDER = 'node_modules';
85const NODE_PACKAGE_JSON = exports.NODE_PACKAGE_JSON = 'package.json';
86
87const PNP_FILENAME = exports.PNP_FILENAME = '.pnp.js';
88
89const POSIX_GLOBAL_PREFIX = exports.POSIX_GLOBAL_PREFIX = `${process.env.DESTDIR || ''}/usr/local`;
90const FALLBACK_GLOBAL_PREFIX = exports.FALLBACK_GLOBAL_PREFIX = path.join(userHome, '.yarn');
91
92const META_FOLDER = exports.META_FOLDER = '.yarn-meta';
93const INTEGRITY_FILENAME = exports.INTEGRITY_FILENAME = '.yarn-integrity';
94const LOCKFILE_FILENAME = exports.LOCKFILE_FILENAME = 'yarn.lock';
95const METADATA_FILENAME = exports.METADATA_FILENAME = '.yarn-metadata.json';
96const TARBALL_FILENAME = exports.TARBALL_FILENAME = '.yarn-tarball.tgz';
97const CLEAN_FILENAME = exports.CLEAN_FILENAME = '.yarnclean';
98
99const NPM_LOCK_FILENAME = exports.NPM_LOCK_FILENAME = 'package-lock.json';
100const NPM_SHRINKWRAP_FILENAME = exports.NPM_SHRINKWRAP_FILENAME = 'npm-shrinkwrap.json';
101
102const DEFAULT_INDENT = exports.DEFAULT_INDENT = ' ';
103const SINGLE_INSTANCE_PORT = exports.SINGLE_INSTANCE_PORT = 31997;
104const SINGLE_INSTANCE_FILENAME = exports.SINGLE_INSTANCE_FILENAME = '.yarn-single-instance';
105
106const ENV_PATH_KEY = exports.ENV_PATH_KEY = getPathKey(process.platform, process.env);
107
108function getPathKey(platform, env) {
109 let pathKey = 'PATH';
110
111 // windows calls its path "Path" usually, but this is not guaranteed.
112 if (platform === 'win32') {
113 pathKey = 'Path';
114
115 for (const key in env) {
116 if (key.toLowerCase() === 'path') {
117 pathKey = key;
118 }
119 }
120 }
121
122 return pathKey;
123}
124
125const VERSION_COLOR_SCHEME = exports.VERSION_COLOR_SCHEME = {
126 major: 'red',
127 premajor: 'red',
128 minor: 'yellow',
129 preminor: 'yellow',
130 patch: 'green',
131 prepatch: 'green',
132 prerelease: 'red',
133 unchanged: 'white',
134 unknown: 'red'
135};
\No newline at end of file