JezK
Edit File: init.js.map
{"version":3,"file":"init.js","names":["objectPath","require","path","yn","setFlags","commander","description","option","hasWrapper","args","shouldRunInCurrentCwd","run","config","reporter","flags","installVersion","install","forwardedArgs","process","argv","slice","indexOf","env","COREPACK_ROOT","child","spawn","NODE_BIN_PATH","join","stdio","cwd","lockfilePath","resolve","fs","exists","writeFile","getRootManifests","manifests","repository","author","name","getOption","email","url","type","undefined","getGitConfigInfo","keys","key","question","basename","validation","validate","isValidPackageName","validationError","String","extractRepositoryUrl","stringifyPerson","inputFormatter","pkg","entry","yes","privateFlag","manifestKey","def","registryNames","registryName","object","val","get","answer","validAnswer","error","lang","set","GitHubResolver","isVersion","targetManifests","info","push","length","npm","targetManifest","Object","assign","success","loc","saveRootManifests","credential"],"sourceRoot":"../../../src","sources":["cli/commands/init.js"],"sourcesContent":["/* @flow */\n\nimport type {Reporter} from '../../reporters/index.js';\nimport type Config from '../../config.js';\nimport {stringifyPerson, extractRepositoryUrl} from '../../util/normalize-manifest/util.js';\nimport {registryNames} from '../../registries/index.js';\nimport GitHubResolver from '../../resolvers/exotics/github-resolver.js';\nimport * as child from '../../util/child.js';\nimport * as fs from '../../util/fs.js';\nimport * as validate from '../../util/normalize-manifest/validate.js';\nimport {NODE_BIN_PATH} from '../../constants';\n\nconst objectPath = require('object-path');\nconst path = require('path');\nconst yn = require('yn');\n\nexport function setFlags(commander: Object) {\n commander.description('Interactively creates or updates a package.json file.');\n commander.option('-y, --yes', 'use default options');\n commander.option('-p, --private', 'use default options and private true');\n commander.option('-i, --install <value>', 'install a specific Yarn release');\n commander.option('-2', 'generates the project using Yarn 2');\n}\n\nexport function hasWrapper(commander: Object, args: Array<string>): boolean {\n return true;\n}\n\nexport const shouldRunInCurrentCwd = true;\n\nexport async function run(config: Config, reporter: Reporter, commander: Object, flags: Object, args: Array<string>): Promise<void> {\n const installVersion = flags[`2`] ? `berry` : flags.install;\n const forwardedArgs = process.argv.slice(process.argv.indexOf('init', 2) + 1);\n\n if (installVersion) {\n if (flags[`2`] && process.env.COREPACK_ROOT) {\n await child.spawn(\n NODE_BIN_PATH,\n [\n path.join(process.env.COREPACK_ROOT, 'dist/corepack.js'),\n `yarn@${flags.install || `stable`}`,\n `init`,\n ...forwardedArgs,\n `--install=self`,\n ],\n {\n stdio: 'inherit',\n cwd: config.cwd,\n },\n );\n } else {\n const lockfilePath = path.resolve(config.cwd, 'yarn.lock');\n if (!await fs.exists(lockfilePath)) {\n await fs.writeFile(lockfilePath, '');\n }\n await child.spawn(NODE_BIN_PATH, [process.argv[1], 'policies', 'set-version', installVersion, '--silent'], {\n stdio: 'inherit',\n cwd: config.cwd,\n });\n await child.spawn(NODE_BIN_PATH, [process.argv[1], 'init', ...forwardedArgs], {\n stdio: 'inherit',\n cwd: config.cwd,\n });\n }\n return;\n }\n\n const manifests = await config.getRootManifests();\n\n let repository = {};\n const author = {\n name: config.getOption('init-author-name'),\n email: config.getOption('init-author-email'),\n url: config.getOption('init-author-url'),\n };\n if (await fs.exists(path.join(config.cwd, '.git'))) {\n // get git origin of the cwd\n try {\n repository = {\n type: 'git',\n url: await child.spawn('git', ['config', 'remote.origin.url'], {\n cwd: config.cwd,\n }),\n };\n } catch (ex) {\n // Ignore - Git repo may not have an origin URL yet (eg. if it only exists locally)\n }\n\n if (author.name === undefined) {\n author.name = await getGitConfigInfo('user.name');\n }\n\n if (author.email === undefined) {\n author.email = await getGitConfigInfo('user.email');\n }\n }\n\n const keys = [\n {\n key: 'name',\n question: 'name',\n default: path.basename(config.cwd),\n validation: validate.isValidPackageName,\n validationError: 'invalidPackageName',\n },\n {\n key: 'version',\n question: 'version',\n default: String(config.getOption('init-version')),\n },\n {\n key: 'description',\n question: 'description',\n default: '',\n },\n {\n key: 'main',\n question: 'entry point',\n default: 'index.js',\n },\n {\n key: 'repository',\n question: 'repository url',\n default: extractRepositoryUrl(repository),\n },\n {\n key: 'author',\n question: 'author',\n default: stringifyPerson(author),\n },\n {\n key: 'license',\n question: 'license',\n default: String(config.getOption('init-license')),\n },\n {\n key: 'private',\n question: 'private',\n default: config.getOption('init-private') || '',\n inputFormatter: yn,\n },\n ];\n\n // get answers\n const pkg = {};\n for (const entry of keys) {\n const {yes, private: privateFlag} = flags;\n const {key: manifestKey} = entry;\n let {question, default: def} = entry;\n\n for (const registryName of registryNames) {\n const {object} = manifests[registryName];\n let val = objectPath.get(object, manifestKey);\n if (!val) {\n break;\n }\n if (typeof val === 'object') {\n if (manifestKey === 'author') {\n val = stringifyPerson(val);\n } else if (manifestKey === 'repository') {\n val = extractRepositoryUrl(val);\n }\n }\n def = val;\n }\n\n if (manifestKey === 'private' && privateFlag) {\n def = true;\n }\n\n if (def) {\n question += ` (${String(def)})`;\n }\n\n let answer;\n let validAnswer = false;\n\n if (yes) {\n answer = def;\n } else {\n // loop until a valid answer is provided, if validation is on entry\n if (entry.validation) {\n while (!validAnswer) {\n answer = (await reporter.question(question)) || def;\n // validate answer\n if (entry.validation(String(answer))) {\n validAnswer = true;\n } else {\n reporter.error(reporter.lang('invalidPackageName'));\n }\n }\n } else {\n answer = (await reporter.question(question)) || def;\n }\n }\n\n if (answer) {\n if (entry.inputFormatter) {\n answer = entry.inputFormatter(answer);\n }\n objectPath.set(pkg, manifestKey, answer);\n }\n }\n\n if (pkg.repository && GitHubResolver.isVersion(pkg.repository)) {\n pkg.repository = `https://github.com/${pkg.repository}`;\n }\n\n // save answers\n const targetManifests = [];\n for (const registryName of registryNames) {\n const info = manifests[registryName];\n if (info.exists) {\n targetManifests.push(info);\n }\n }\n if (!targetManifests.length) {\n targetManifests.push(manifests.npm);\n }\n for (const targetManifest of targetManifests) {\n Object.assign(targetManifest.object, pkg);\n reporter.success(`Saved ${path.basename(targetManifest.loc)}`);\n }\n\n await config.saveRootManifests(manifests);\n}\n\nexport async function getGitConfigInfo(credential: string, spawn = child.spawn): Promise<string> {\n try {\n // try to get author default based on git config\n return await spawn('git', ['config', credential]);\n } catch (e) {\n return '';\n }\n}\n"],"mappings":"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"}