UNPKG

1.08 kBJavaScriptView Raw
1import { resolve, basename } from 'path';
2import { red, yellow } from 'kleur';
3import { readFile, stderr, safeVariableName } from '../utils';
4
5/** */
6export async function getConfigFromPkgJson(cwd) {
7 let hasPackageJson = false;
8 let pkg;
9 try {
10 const packageJson = await readFile(resolve(cwd, 'package.json'), 'utf8');
11 pkg = JSON.parse(packageJson);
12 hasPackageJson = true;
13 } catch (err) {
14 const pkgName = basename(cwd);
15
16 stderr(
17 yellow().inverse('WARN'),
18 yellow(` no package.json, assuming package name is "${pkgName}".`),
19 );
20
21 let msg = String(err.message || err);
22 if (!msg.match(/ENOENT/)) stderr(` ${red().dim(msg)}`);
23
24 pkg = { name: pkgName };
25 }
26
27 return { hasPackageJson, pkg };
28}
29export function getName({ name, pkgName, amdName, cwd, hasPackageJson }) {
30 if (!pkgName) {
31 pkgName = basename(cwd);
32 if (hasPackageJson) {
33 stderr(
34 yellow().inverse('WARN'),
35 yellow(` missing package.json "name" field. Assuming "${pkgName}".`),
36 );
37 }
38 }
39
40 const finalName = name || amdName || safeVariableName(pkgName);
41
42 return { finalName, pkgName };
43}