@form8ion/project 13.0.2 → 13.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +12 -30
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/package.json +2 -2
package/lib/index.js
CHANGED
|
@@ -22,24 +22,6 @@ var hoek = require('@hapi/hoek');
|
|
|
22
22
|
|
|
23
23
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
24
24
|
|
|
25
|
-
function _interopNamespace(e) {
|
|
26
|
-
if (e && e.__esModule) return e;
|
|
27
|
-
var n = Object.create(null);
|
|
28
|
-
if (e) {
|
|
29
|
-
Object.keys(e).forEach(function (k) {
|
|
30
|
-
if (k !== 'default') {
|
|
31
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
32
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function () { return e[k]; }
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
n["default"] = e;
|
|
40
|
-
return Object.freeze(n);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
25
|
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
|
|
44
26
|
var deepmerge__default = /*#__PURE__*/_interopDefaultLegacy(deepmerge);
|
|
45
27
|
var execa__default = /*#__PURE__*/_interopDefaultLegacy(execa);
|
|
@@ -48,7 +30,7 @@ var nodegit__default = /*#__PURE__*/_interopDefaultLegacy(nodegit);
|
|
|
48
30
|
var inquirer__default = /*#__PURE__*/_interopDefaultLegacy(inquirer);
|
|
49
31
|
var wrap__default = /*#__PURE__*/_interopDefaultLegacy(wrap);
|
|
50
32
|
var spdxLicenseList__default = /*#__PURE__*/_interopDefaultLegacy(spdxLicenseList);
|
|
51
|
-
var
|
|
33
|
+
var joi__default = /*#__PURE__*/_interopDefaultLegacy(joi);
|
|
52
34
|
var hoek__default = /*#__PURE__*/_interopDefaultLegacy(hoek);
|
|
53
35
|
|
|
54
36
|
const questionNames$1 = {
|
|
@@ -292,18 +274,18 @@ async function scaffoldDependencyUpdater (scaffolders, decisions, options) {
|
|
|
292
274
|
}
|
|
293
275
|
|
|
294
276
|
function validate(options) {
|
|
295
|
-
const schema =
|
|
296
|
-
languages:
|
|
297
|
-
overrides:
|
|
298
|
-
vcsHosts:
|
|
299
|
-
scaffolder:
|
|
300
|
-
prompt:
|
|
301
|
-
public:
|
|
302
|
-
private:
|
|
277
|
+
const schema = joi__default["default"].object({
|
|
278
|
+
languages: joi__default["default"].object().pattern(/^/, joi__default["default"].func().arity(1)),
|
|
279
|
+
overrides: joi__default["default"].object({copyrightHolder: joi__default["default"].string()}),
|
|
280
|
+
vcsHosts: joi__default["default"].object().pattern(/^/, joi__default["default"].object({
|
|
281
|
+
scaffolder: joi__default["default"].func().arity(1).required(),
|
|
282
|
+
prompt: joi__default["default"].func().required(),
|
|
283
|
+
public: joi__default["default"].boolean(),
|
|
284
|
+
private: joi__default["default"].boolean()
|
|
303
285
|
})),
|
|
304
|
-
decisions:
|
|
305
|
-
dependencyUpdaters:
|
|
306
|
-
scaffolder:
|
|
286
|
+
decisions: joi__default["default"].object(),
|
|
287
|
+
dependencyUpdaters: joi__default["default"].object().pattern(/^/, joi__default["default"].object({
|
|
288
|
+
scaffolder: joi__default["default"].func().arity(1).required()
|
|
307
289
|
})).default({})
|
|
308
290
|
});
|
|
309
291
|
const validated = schema.validate(options);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/prompts/question-names.js","../src/language-scaffolder.js","../src/readme.js","../thirdparty-wrappers/hosted-git-info.js","../src/prompts/conditionals.js","../src/prompts/questions.js","../src/vcs/git.js","../src/license.js","../src/vcs/host.js","../src/dependency-updater/prompt.js","../src/dependency-updater/scaffolder.js","../src/options-validator.js","../src/scaffolder.js","../src/lift.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n GIT_REPO: 'gitRepo',\n REPO_HOST: 'repoHost',\n REPO_OWNER: 'repoOwner',\n PROJECT_LANGUAGE: 'projectLanguage',\n DEPENDENCY_UPDATER: 'dependencyUpdater'\n};\n","export function scaffold(scaffolders, chosenLanguage, options) {\n const scaffolder = scaffolders[chosenLanguage];\n\n if (scaffolder) return scaffolder(options);\n\n return undefined;\n}\n","import {promises as fs} from 'fs';\nimport path from 'path';\nimport mustache from 'mustache';\nimport {info} from '@travi/cli-messages';\nimport {lift as liftReadme} from '@form8ion/readme';\n\nexport default async function ({projectName, projectRoot, description, badges, documentation}) {\n info('Generating README');\n\n const initialRender = mustache.render(\n await fs.readFile(path.resolve(__dirname, '..', 'templates/README.mustache'), 'utf8'),\n {projectName, description, documentation}\n );\n\n await fs.writeFile(`${projectRoot}/README.md`, initialRender);\n\n return liftReadme({projectRoot, results: {badges}});\n}\n","import {fromUrl as hostedFromUrl} from 'hosted-git-info';\n\nexport function fromUrl(...args) {\n return hostedFromUrl(...args);\n}\n","import inquirer from 'inquirer';\nimport {questionNames} from './question-names';\n\nconst {Separator} = inquirer;\n\nexport function unlicensedConfirmationShouldBePresented(answers) {\n return 'Private' === answers[questionNames.VISIBILITY];\n}\n\nexport function licenseChoicesShouldBePresented(answers) {\n return 'Public' === answers[questionNames.VISIBILITY] || !answers[questionNames.UNLICENSED];\n}\n\nexport function copyrightInformationShouldBeRequested(answers) {\n return !!answers[questionNames.LICENSE];\n}\n\nexport function filterChoicesByVisibility(choices, visibility) {\n return [\n ...Object.entries(choices)\n .filter(([, choice]) => choice[visibility.toLowerCase()])\n .reduce((acc, [name]) => ([...acc, name]), []),\n new Separator(),\n 'Other'\n ];\n}\n","import inquirer from 'inquirer';\nimport {questionsForBaseDetails} from '@form8ion/core';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {filterChoicesByVisibility} from './conditionals';\nimport {questionNames} from './question-names';\n\nconst {Separator} = inquirer;\n\nexport function promptForBaseDetails(projectRoot, copyrightHolder, decisions) {\n return prompt([\n ...questionsForBaseDetails(decisions, projectRoot, copyrightHolder),\n {name: questionNames.GIT_REPO, type: 'confirm', default: true, message: 'Should a git repository be initialized?'}\n ], decisions);\n}\n\nexport function promptForLanguageDetails(languages, decisions) {\n return prompt([{\n name: questionNames.PROJECT_LANGUAGE,\n type: 'list',\n message: 'What type of project is this?',\n choices: [...Object.keys(languages), new Separator(), 'Other']\n }], decisions);\n}\n\nexport async function promptForVcsHostDetails(hosts, visibility, decisions) {\n const answers = await prompt([{\n name: questionNames.REPO_HOST,\n type: 'list',\n message: 'Where will the repository be hosted?',\n choices: filterChoicesByVisibility(hosts, visibility)\n }], decisions);\n const host = hosts[answers[questionNames.REPO_HOST]];\n\n return {...answers, ...host && await host.prompt({decisions})};\n}\n","import nodegit from 'nodegit';\nimport {promises} from 'fs';\nimport {directoryExists} from '@form8ion/core';\nimport {info, warn} from '@travi/cli-messages';\nimport {fromUrl} from '../../thirdparty-wrappers/hosted-git-info';\nimport {promptForVcsHostDetails} from '../prompts/questions';\nimport {questionNames} from '../prompts/question-names';\n\nconst {Remote: gitRemote, Repository: gitRepository} = nodegit;\n\nfunction createIgnoreFile(projectRoot, ignore) {\n const {directories, files} = ignore;\n\n return promises.writeFile(`${projectRoot}/.gitignore`, `${directories.join('\\n')}\\n\\n${files.join('\\n')}`);\n}\n\nfunction generateConfigFiles(projectRoot, ignore) {\n info('Generating Git config files', {level: 'secondary'});\n\n return Promise.all([\n promises.writeFile(`${projectRoot}/.gitattributes`, '* text=auto'),\n ignore ? createIgnoreFile(projectRoot, ignore) : undefined\n ].filter(Boolean));\n}\n\nasync function defineRemoteOrigin(projectRoot, origin) {\n const repository = await gitRepository.open(projectRoot);\n const existingRemotes = await gitRemote.list(repository);\n\n if (existingRemotes.includes('origin')) {\n warn('The `origin` remote is already defined for this repository');\n\n return {nextSteps: []};\n }\n\n if (origin.sshUrl) {\n info(`Setting remote origin to ${origin.sshUrl}`, {level: 'secondary'});\n\n await gitRemote.create(repository, 'origin', origin.sshUrl);\n\n // info('Setting the local `master` branch to track `origin/master`');\n //\n // await gitBranch.setUpstream(\n // await gitBranch.lookup(repository, 'master', gitBranch.BRANCH.LOCAL),\n // 'origin/master'\n // );\n\n return {nextSteps: [{summary: 'Set local `master` branch to track upstream `origin/master`'}]};\n }\n\n warn('URL not available to configure remote `origin`');\n\n return {nextSteps: []};\n}\n\nexport async function initialize(\n gitRepoShouldBeInitialized,\n projectRoot,\n projectName,\n vcsHosts,\n visibility,\n decisions\n) {\n if (gitRepoShouldBeInitialized) {\n if (await directoryExists(`${projectRoot}/.git`)) {\n info('Git repository already exists');\n\n const repository = await gitRepository.open(projectRoot);\n const remoteOrigin = await gitRemote.lookup(repository, 'origin');\n const {user, project, type} = fromUrl(remoteOrigin.url());\n\n return {owner: user, name: project, host: type};\n }\n\n info('Initializing Git Repository');\n\n const [answers] = await Promise.all([\n promptForVcsHostDetails(vcsHosts, visibility, decisions),\n gitRepository.init(projectRoot, 0)\n ]);\n\n return {\n host: answers[questionNames.REPO_HOST].toLowerCase(),\n owner: answers[questionNames.REPO_OWNER],\n name: projectName\n };\n }\n\n return undefined;\n}\n\nexport async function scaffold({projectRoot, ignore, origin}) {\n info('Finishing Git Configuration');\n\n const [remoteOriginResults] = await Promise.all([\n defineRemoteOrigin(projectRoot, origin),\n generateConfigFiles(projectRoot, ignore)\n ]);\n\n return {nextSteps: [{summary: 'Commit scaffolded files'}, ...remoteOriginResults.nextSteps]};\n}\n","import {promises} from 'fs';\nimport wrap from 'word-wrap';\nimport mustache from 'mustache';\n// eslint-disable-next-line import/extensions\nimport spdxLicenseList from 'spdx-license-list/full.js';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot, license, copyright, vcs}) {\n if (license) {\n info('Generating License');\n\n let licenseContent = spdxLicenseList[license].licenseText;\n\n if ('MIT' === license) {\n licenseContent = licenseContent.replace('(including the next paragraph) ', '');\n }\n\n await promises.writeFile(\n `${projectRoot}/LICENSE`,\n `${wrap(\n mustache.render(licenseContent, {year: copyright.year, 'copyright holders': copyright.holder}, {}, ['<', '>']),\n {width: 80, indent: ''}\n )}\\n`\n );\n\n return {\n ...vcs && 'github' === vcs.host && {\n badges: {\n consumer: {\n license: {\n img: `https://img.shields.io/github/license/${vcs.owner}/${vcs.name}.svg`,\n text: `${license} license`,\n link: 'LICENSE'\n }\n }\n }\n }\n };\n }\n\n return {};\n}\n","export default function (hosts, options) {\n const lowercasedHosts = Object.fromEntries(\n Object.entries(hosts).map(([name, details]) => [name.toLowerCase(), details])\n );\n const {host: chosenHost, ...rest} = options;\n const host = lowercasedHosts[chosenHost];\n\n if (host) return host.scaffolder(rest);\n\n return {};\n}\n","import inquirer from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nconst {Separator} = inquirer;\n\nexport async function promptForDependencyUpdaterChoice(updaters, decisions) {\n return prompt([{\n name: questionNames.DEPENDENCY_UPDATER,\n type: 'list',\n message: 'Which dependency-update service do you want to manage this project?',\n choices: [...Object.keys(updaters), new Separator(), 'Other']\n }], decisions);\n}\n","import {questionNames} from '../prompts/question-names';\nimport {promptForDependencyUpdaterChoice} from './prompt';\n\nexport default async function (scaffolders, decisions, options) {\n if (!Object.keys(scaffolders).length) return undefined;\n\n const scaffolderDetails = scaffolders[\n (await promptForDependencyUpdaterChoice(scaffolders, decisions))[questionNames.DEPENDENCY_UPDATER]\n ];\n\n if (scaffolderDetails) return scaffolderDetails.scaffolder(options);\n\n return undefined;\n}\n","import * as joi from 'joi';\nimport hoek from '@hapi/hoek';\n\nexport function validate(options) {\n const schema = joi.object({\n languages: joi.object().pattern(/^/, joi.func().arity(1)),\n overrides: joi.object({copyrightHolder: joi.string()}),\n vcsHosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n prompt: joi.func().required(),\n public: joi.boolean(),\n private: joi.boolean()\n })),\n decisions: joi.object(),\n dependencyUpdaters: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({})\n });\n const validated = schema.validate(options);\n\n hoek.assert(!validated.error, validated.error);\n\n return validated.value || {};\n}\n","import {resolve} from 'path';\nimport {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {reportResults} from '@form8ion/results-reporter';\nimport {info} from '@travi/cli-messages';\nimport execa from '../thirdparty-wrappers/execa';\nimport {scaffold as scaffoldLanguage} from './language-scaffolder';\nimport scaffoldReadme from './readme';\nimport {initialize as initializeGit, scaffold as scaffoldGit} from './vcs/git';\nimport scaffoldLicense from './license';\nimport scaffoldVcsHost from './vcs/host';\nimport scaffoldDependencyUpdater from './dependency-updater/scaffolder';\nimport {promptForBaseDetails, promptForLanguageDetails} from './prompts/questions';\nimport {validate} from './options-validator';\nimport {questionNames} from './prompts/question-names';\n\nexport async function scaffold(options) {\n const projectRoot = process.cwd();\n const {languages = {}, overrides = {}, vcsHosts = {}, decisions, dependencyUpdaters} = validate(options);\n const {copyrightHolder} = overrides;\n\n const {\n [coreQuestionNames.PROJECT_NAME]: projectName,\n [coreQuestionNames.LICENSE]: chosenLicense,\n [coreQuestionNames.VISIBILITY]: visibility,\n [coreQuestionNames.DESCRIPTION]: description,\n [questionNames.GIT_REPO]: gitRepo,\n [coreQuestionNames.COPYRIGHT_YEAR]: copyrightYear,\n [coreQuestionNames.COPYRIGHT_HOLDER]: copyHolder\n } = await promptForBaseDetails(projectRoot, copyrightHolder, decisions);\n const copyright = {year: copyrightYear, holder: copyHolder};\n\n const vcs = await initializeGit(gitRepo, projectRoot, projectName, vcsHosts, visibility, decisions);\n\n const {[questionNames.PROJECT_LANGUAGE]: projectLanguage} = await promptForLanguageDetails(languages, decisions);\n\n const [license, language] = await Promise.all([\n scaffoldLicense({projectRoot, license: chosenLicense, copyright, vcs}),\n scaffoldLanguage(\n languages,\n projectLanguage,\n {projectRoot, projectName, vcs, visibility, license: chosenLicense || 'UNLICENSED', description}\n )\n ]);\n\n const dependencyUpdaterResults = vcs && await scaffoldDependencyUpdater(\n dependencyUpdaters,\n decisions,\n {projectRoot, vcs}\n );\n\n const contributors = [license, language, dependencyUpdaterResults].filter(Boolean);\n const contributedTasks = contributors\n .map(contributor => contributor.nextSteps)\n .filter(Boolean)\n .reduce((acc, contributedNextSteps) => ([...acc, ...contributedNextSteps]), []);\n\n const vcsHostResults = vcs && await scaffoldVcsHost(vcsHosts, {\n ...vcs,\n projectRoot,\n projectType: projectLanguage,\n description,\n visibility,\n ...language && {\n homepage: language.projectDetails && language.projectDetails.homepage,\n tags: language.tags\n },\n nextSteps: contributedTasks\n });\n\n await Promise.all([\n scaffoldReadme({\n projectName,\n projectRoot,\n description,\n ...language && {documentation: language.documentation},\n badges: deepmerge.all([\n {\n contribution: {\n ...'Public' === visibility && {\n PRs: {\n text: 'PRs Welcome',\n link: 'http://makeapullrequest.com',\n img: 'https://img.shields.io/badge/PRs-welcome-brightgreen.svg'\n }\n }\n },\n status: {},\n consumer: {}\n },\n ...contributors.map(contributor => contributor.badges).filter(Boolean)\n ])\n }),\n fs.copyFile(resolve(__dirname, '..', 'templates', 'editorconfig.txt'), `${projectRoot}/.editorconfig`)\n ]);\n\n const gitResults = gitRepo && await scaffoldGit({\n projectRoot,\n ...language && {ignore: language.vcsIgnore},\n origin: vcsHostResults\n });\n\n if (language && language.verificationCommand) {\n info('Verifying the generated project');\n\n const subprocess = execa(language.verificationCommand, {shell: true});\n subprocess.stdout.pipe(process.stdout);\n await subprocess;\n }\n\n reportResults({\n nextSteps: [\n ...(gitResults && gitResults.nextSteps) ? gitResults.nextSteps : [],\n ...contributedTasks\n ]\n });\n}\n","import deepmerge from 'deepmerge';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftReadme} from '@form8ion/readme';\n\nexport default async function ({projectRoot, results, enhancers, vcs}) {\n const enhancerResults = await applyEnhancers({results, enhancers, options: {projectRoot, vcs}});\n\n await liftReadme({projectRoot, results: deepmerge.all([results, enhancerResults])});\n\n return enhancerResults;\n}\n","import {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {questionNames as projectScaffolderQuestionNames} from './prompts/question-names';\n\nexport * from './scaffolder';\nexport {default as lift} from './lift';\nexport const questionNames = {\n ...coreQuestionNames,\n ...projectScaffolderQuestionNames\n};\n"],"names":["questionNames","scaffold","info","mustache","fs","path","liftReadme","hostedFromUrl","Separator","inquirer","prompt","questionsForBaseDetails","nodegit","promises","warn","directoryExists","spdxLicenseList","wrap","joi","hoek","coreQuestionNames","initializeGit","scaffoldLanguage","deepmerge","resolve","scaffoldGit","execa","reportResults","applyEnhancers","projectScaffolderQuestionNames"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/prompts/question-names.js","../src/language-scaffolder.js","../src/readme.js","../thirdparty-wrappers/hosted-git-info.js","../src/prompts/conditionals.js","../src/prompts/questions.js","../src/vcs/git.js","../src/license.js","../src/vcs/host.js","../src/dependency-updater/prompt.js","../src/dependency-updater/scaffolder.js","../src/options-validator.js","../src/scaffolder.js","../src/lift.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n GIT_REPO: 'gitRepo',\n REPO_HOST: 'repoHost',\n REPO_OWNER: 'repoOwner',\n PROJECT_LANGUAGE: 'projectLanguage',\n DEPENDENCY_UPDATER: 'dependencyUpdater'\n};\n","export function scaffold(scaffolders, chosenLanguage, options) {\n const scaffolder = scaffolders[chosenLanguage];\n\n if (scaffolder) return scaffolder(options);\n\n return undefined;\n}\n","import {promises as fs} from 'fs';\nimport path from 'path';\nimport mustache from 'mustache';\nimport {info} from '@travi/cli-messages';\nimport {lift as liftReadme} from '@form8ion/readme';\n\nexport default async function ({projectName, projectRoot, description, badges, documentation}) {\n info('Generating README');\n\n const initialRender = mustache.render(\n await fs.readFile(path.resolve(__dirname, '..', 'templates/README.mustache'), 'utf8'),\n {projectName, description, documentation}\n );\n\n await fs.writeFile(`${projectRoot}/README.md`, initialRender);\n\n return liftReadme({projectRoot, results: {badges}});\n}\n","import {fromUrl as hostedFromUrl} from 'hosted-git-info';\n\nexport function fromUrl(...args) {\n return hostedFromUrl(...args);\n}\n","import inquirer from 'inquirer';\nimport {questionNames} from './question-names';\n\nconst {Separator} = inquirer;\n\nexport function unlicensedConfirmationShouldBePresented(answers) {\n return 'Private' === answers[questionNames.VISIBILITY];\n}\n\nexport function licenseChoicesShouldBePresented(answers) {\n return 'Public' === answers[questionNames.VISIBILITY] || !answers[questionNames.UNLICENSED];\n}\n\nexport function copyrightInformationShouldBeRequested(answers) {\n return !!answers[questionNames.LICENSE];\n}\n\nexport function filterChoicesByVisibility(choices, visibility) {\n return [\n ...Object.entries(choices)\n .filter(([, choice]) => choice[visibility.toLowerCase()])\n .reduce((acc, [name]) => ([...acc, name]), []),\n new Separator(),\n 'Other'\n ];\n}\n","import inquirer from 'inquirer';\nimport {questionsForBaseDetails} from '@form8ion/core';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {filterChoicesByVisibility} from './conditionals';\nimport {questionNames} from './question-names';\n\nconst {Separator} = inquirer;\n\nexport function promptForBaseDetails(projectRoot, copyrightHolder, decisions) {\n return prompt([\n ...questionsForBaseDetails(decisions, projectRoot, copyrightHolder),\n {name: questionNames.GIT_REPO, type: 'confirm', default: true, message: 'Should a git repository be initialized?'}\n ], decisions);\n}\n\nexport function promptForLanguageDetails(languages, decisions) {\n return prompt([{\n name: questionNames.PROJECT_LANGUAGE,\n type: 'list',\n message: 'What type of project is this?',\n choices: [...Object.keys(languages), new Separator(), 'Other']\n }], decisions);\n}\n\nexport async function promptForVcsHostDetails(hosts, visibility, decisions) {\n const answers = await prompt([{\n name: questionNames.REPO_HOST,\n type: 'list',\n message: 'Where will the repository be hosted?',\n choices: filterChoicesByVisibility(hosts, visibility)\n }], decisions);\n const host = hosts[answers[questionNames.REPO_HOST]];\n\n return {...answers, ...host && await host.prompt({decisions})};\n}\n","import nodegit from 'nodegit';\nimport {promises} from 'fs';\nimport {directoryExists} from '@form8ion/core';\nimport {info, warn} from '@travi/cli-messages';\nimport {fromUrl} from '../../thirdparty-wrappers/hosted-git-info';\nimport {promptForVcsHostDetails} from '../prompts/questions';\nimport {questionNames} from '../prompts/question-names';\n\nconst {Remote: gitRemote, Repository: gitRepository} = nodegit;\n\nfunction createIgnoreFile(projectRoot, ignore) {\n const {directories, files} = ignore;\n\n return promises.writeFile(`${projectRoot}/.gitignore`, `${directories.join('\\n')}\\n\\n${files.join('\\n')}`);\n}\n\nfunction generateConfigFiles(projectRoot, ignore) {\n info('Generating Git config files', {level: 'secondary'});\n\n return Promise.all([\n promises.writeFile(`${projectRoot}/.gitattributes`, '* text=auto'),\n ignore ? createIgnoreFile(projectRoot, ignore) : undefined\n ].filter(Boolean));\n}\n\nasync function defineRemoteOrigin(projectRoot, origin) {\n const repository = await gitRepository.open(projectRoot);\n const existingRemotes = await gitRemote.list(repository);\n\n if (existingRemotes.includes('origin')) {\n warn('The `origin` remote is already defined for this repository');\n\n return {nextSteps: []};\n }\n\n if (origin.sshUrl) {\n info(`Setting remote origin to ${origin.sshUrl}`, {level: 'secondary'});\n\n await gitRemote.create(repository, 'origin', origin.sshUrl);\n\n // info('Setting the local `master` branch to track `origin/master`');\n //\n // await gitBranch.setUpstream(\n // await gitBranch.lookup(repository, 'master', gitBranch.BRANCH.LOCAL),\n // 'origin/master'\n // );\n\n return {nextSteps: [{summary: 'Set local `master` branch to track upstream `origin/master`'}]};\n }\n\n warn('URL not available to configure remote `origin`');\n\n return {nextSteps: []};\n}\n\nexport async function initialize(\n gitRepoShouldBeInitialized,\n projectRoot,\n projectName,\n vcsHosts,\n visibility,\n decisions\n) {\n if (gitRepoShouldBeInitialized) {\n if (await directoryExists(`${projectRoot}/.git`)) {\n info('Git repository already exists');\n\n const repository = await gitRepository.open(projectRoot);\n const remoteOrigin = await gitRemote.lookup(repository, 'origin');\n const {user, project, type} = fromUrl(remoteOrigin.url());\n\n return {owner: user, name: project, host: type};\n }\n\n info('Initializing Git Repository');\n\n const [answers] = await Promise.all([\n promptForVcsHostDetails(vcsHosts, visibility, decisions),\n gitRepository.init(projectRoot, 0)\n ]);\n\n return {\n host: answers[questionNames.REPO_HOST].toLowerCase(),\n owner: answers[questionNames.REPO_OWNER],\n name: projectName\n };\n }\n\n return undefined;\n}\n\nexport async function scaffold({projectRoot, ignore, origin}) {\n info('Finishing Git Configuration');\n\n const [remoteOriginResults] = await Promise.all([\n defineRemoteOrigin(projectRoot, origin),\n generateConfigFiles(projectRoot, ignore)\n ]);\n\n return {nextSteps: [{summary: 'Commit scaffolded files'}, ...remoteOriginResults.nextSteps]};\n}\n","import {promises} from 'fs';\nimport wrap from 'word-wrap';\nimport mustache from 'mustache';\n// eslint-disable-next-line import/extensions\nimport spdxLicenseList from 'spdx-license-list/full.js';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot, license, copyright, vcs}) {\n if (license) {\n info('Generating License');\n\n let licenseContent = spdxLicenseList[license].licenseText;\n\n if ('MIT' === license) {\n licenseContent = licenseContent.replace('(including the next paragraph) ', '');\n }\n\n await promises.writeFile(\n `${projectRoot}/LICENSE`,\n `${wrap(\n mustache.render(licenseContent, {year: copyright.year, 'copyright holders': copyright.holder}, {}, ['<', '>']),\n {width: 80, indent: ''}\n )}\\n`\n );\n\n return {\n ...vcs && 'github' === vcs.host && {\n badges: {\n consumer: {\n license: {\n img: `https://img.shields.io/github/license/${vcs.owner}/${vcs.name}.svg`,\n text: `${license} license`,\n link: 'LICENSE'\n }\n }\n }\n }\n };\n }\n\n return {};\n}\n","export default function (hosts, options) {\n const lowercasedHosts = Object.fromEntries(\n Object.entries(hosts).map(([name, details]) => [name.toLowerCase(), details])\n );\n const {host: chosenHost, ...rest} = options;\n const host = lowercasedHosts[chosenHost];\n\n if (host) return host.scaffolder(rest);\n\n return {};\n}\n","import inquirer from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nconst {Separator} = inquirer;\n\nexport async function promptForDependencyUpdaterChoice(updaters, decisions) {\n return prompt([{\n name: questionNames.DEPENDENCY_UPDATER,\n type: 'list',\n message: 'Which dependency-update service do you want to manage this project?',\n choices: [...Object.keys(updaters), new Separator(), 'Other']\n }], decisions);\n}\n","import {questionNames} from '../prompts/question-names';\nimport {promptForDependencyUpdaterChoice} from './prompt';\n\nexport default async function (scaffolders, decisions, options) {\n if (!Object.keys(scaffolders).length) return undefined;\n\n const scaffolderDetails = scaffolders[\n (await promptForDependencyUpdaterChoice(scaffolders, decisions))[questionNames.DEPENDENCY_UPDATER]\n ];\n\n if (scaffolderDetails) return scaffolderDetails.scaffolder(options);\n\n return undefined;\n}\n","import joi from 'joi';\nimport hoek from '@hapi/hoek';\n\nexport function validate(options) {\n const schema = joi.object({\n languages: joi.object().pattern(/^/, joi.func().arity(1)),\n overrides: joi.object({copyrightHolder: joi.string()}),\n vcsHosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n prompt: joi.func().required(),\n public: joi.boolean(),\n private: joi.boolean()\n })),\n decisions: joi.object(),\n dependencyUpdaters: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({})\n });\n const validated = schema.validate(options);\n\n hoek.assert(!validated.error, validated.error);\n\n return validated.value || {};\n}\n","import {resolve} from 'path';\nimport {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {reportResults} from '@form8ion/results-reporter';\nimport {info} from '@travi/cli-messages';\nimport execa from '../thirdparty-wrappers/execa';\nimport {scaffold as scaffoldLanguage} from './language-scaffolder';\nimport scaffoldReadme from './readme';\nimport {initialize as initializeGit, scaffold as scaffoldGit} from './vcs/git';\nimport scaffoldLicense from './license';\nimport scaffoldVcsHost from './vcs/host';\nimport scaffoldDependencyUpdater from './dependency-updater/scaffolder';\nimport {promptForBaseDetails, promptForLanguageDetails} from './prompts/questions';\nimport {validate} from './options-validator';\nimport {questionNames} from './prompts/question-names';\n\nexport async function scaffold(options) {\n const projectRoot = process.cwd();\n const {languages = {}, overrides = {}, vcsHosts = {}, decisions, dependencyUpdaters} = validate(options);\n const {copyrightHolder} = overrides;\n\n const {\n [coreQuestionNames.PROJECT_NAME]: projectName,\n [coreQuestionNames.LICENSE]: chosenLicense,\n [coreQuestionNames.VISIBILITY]: visibility,\n [coreQuestionNames.DESCRIPTION]: description,\n [questionNames.GIT_REPO]: gitRepo,\n [coreQuestionNames.COPYRIGHT_YEAR]: copyrightYear,\n [coreQuestionNames.COPYRIGHT_HOLDER]: copyHolder\n } = await promptForBaseDetails(projectRoot, copyrightHolder, decisions);\n const copyright = {year: copyrightYear, holder: copyHolder};\n\n const vcs = await initializeGit(gitRepo, projectRoot, projectName, vcsHosts, visibility, decisions);\n\n const {[questionNames.PROJECT_LANGUAGE]: projectLanguage} = await promptForLanguageDetails(languages, decisions);\n\n const [license, language] = await Promise.all([\n scaffoldLicense({projectRoot, license: chosenLicense, copyright, vcs}),\n scaffoldLanguage(\n languages,\n projectLanguage,\n {projectRoot, projectName, vcs, visibility, license: chosenLicense || 'UNLICENSED', description}\n )\n ]);\n\n const dependencyUpdaterResults = vcs && await scaffoldDependencyUpdater(\n dependencyUpdaters,\n decisions,\n {projectRoot, vcs}\n );\n\n const contributors = [license, language, dependencyUpdaterResults].filter(Boolean);\n const contributedTasks = contributors\n .map(contributor => contributor.nextSteps)\n .filter(Boolean)\n .reduce((acc, contributedNextSteps) => ([...acc, ...contributedNextSteps]), []);\n\n const vcsHostResults = vcs && await scaffoldVcsHost(vcsHosts, {\n ...vcs,\n projectRoot,\n projectType: projectLanguage,\n description,\n visibility,\n ...language && {\n homepage: language.projectDetails && language.projectDetails.homepage,\n tags: language.tags\n },\n nextSteps: contributedTasks\n });\n\n await Promise.all([\n scaffoldReadme({\n projectName,\n projectRoot,\n description,\n ...language && {documentation: language.documentation},\n badges: deepmerge.all([\n {\n contribution: {\n ...'Public' === visibility && {\n PRs: {\n text: 'PRs Welcome',\n link: 'http://makeapullrequest.com',\n img: 'https://img.shields.io/badge/PRs-welcome-brightgreen.svg'\n }\n }\n },\n status: {},\n consumer: {}\n },\n ...contributors.map(contributor => contributor.badges).filter(Boolean)\n ])\n }),\n fs.copyFile(resolve(__dirname, '..', 'templates', 'editorconfig.txt'), `${projectRoot}/.editorconfig`)\n ]);\n\n const gitResults = gitRepo && await scaffoldGit({\n projectRoot,\n ...language && {ignore: language.vcsIgnore},\n origin: vcsHostResults\n });\n\n if (language && language.verificationCommand) {\n info('Verifying the generated project');\n\n const subprocess = execa(language.verificationCommand, {shell: true});\n subprocess.stdout.pipe(process.stdout);\n await subprocess;\n }\n\n reportResults({\n nextSteps: [\n ...(gitResults && gitResults.nextSteps) ? gitResults.nextSteps : [],\n ...contributedTasks\n ]\n });\n}\n","import deepmerge from 'deepmerge';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftReadme} from '@form8ion/readme';\n\nexport default async function ({projectRoot, results, enhancers, vcs}) {\n const enhancerResults = await applyEnhancers({results, enhancers, options: {projectRoot, vcs}});\n\n await liftReadme({projectRoot, results: deepmerge.all([results, enhancerResults])});\n\n return enhancerResults;\n}\n","import {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {questionNames as projectScaffolderQuestionNames} from './prompts/question-names';\n\nexport * from './scaffolder';\nexport {default as lift} from './lift';\nexport const questionNames = {\n ...coreQuestionNames,\n ...projectScaffolderQuestionNames\n};\n"],"names":["questionNames","scaffold","info","mustache","fs","path","liftReadme","hostedFromUrl","Separator","inquirer","prompt","questionsForBaseDetails","nodegit","promises","warn","directoryExists","spdxLicenseList","wrap","joi","hoek","coreQuestionNames","initializeGit","scaffoldLanguage","deepmerge","resolve","scaffoldGit","execa","reportResults","applyEnhancers","projectScaffolderQuestionNames"],"mappings":"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"}
|
package/lib/index.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import inquirer from 'inquirer';
|
|
|
13
13
|
import { prompt } from '@form8ion/overridable-prompts';
|
|
14
14
|
import wrap from 'word-wrap';
|
|
15
15
|
import spdxLicenseList from 'spdx-license-list/full.js';
|
|
16
|
-
import
|
|
16
|
+
import joi from 'joi';
|
|
17
17
|
import hoek from '@hapi/hoek';
|
|
18
18
|
|
|
19
19
|
const questionNames$1 = {
|
package/lib/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/prompts/question-names.js","../src/language-scaffolder.js","../src/readme.js","../thirdparty-wrappers/hosted-git-info.js","../src/prompts/conditionals.js","../src/prompts/questions.js","../src/vcs/git.js","../src/license.js","../src/vcs/host.js","../src/dependency-updater/prompt.js","../src/dependency-updater/scaffolder.js","../src/options-validator.js","../src/scaffolder.js","../src/lift.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n GIT_REPO: 'gitRepo',\n REPO_HOST: 'repoHost',\n REPO_OWNER: 'repoOwner',\n PROJECT_LANGUAGE: 'projectLanguage',\n DEPENDENCY_UPDATER: 'dependencyUpdater'\n};\n","export function scaffold(scaffolders, chosenLanguage, options) {\n const scaffolder = scaffolders[chosenLanguage];\n\n if (scaffolder) return scaffolder(options);\n\n return undefined;\n}\n","import {promises as fs} from 'fs';\nimport path from 'path';\nimport mustache from 'mustache';\nimport {info} from '@travi/cli-messages';\nimport {lift as liftReadme} from '@form8ion/readme';\n\nexport default async function ({projectName, projectRoot, description, badges, documentation}) {\n info('Generating README');\n\n const initialRender = mustache.render(\n await fs.readFile(path.resolve(__dirname, '..', 'templates/README.mustache'), 'utf8'),\n {projectName, description, documentation}\n );\n\n await fs.writeFile(`${projectRoot}/README.md`, initialRender);\n\n return liftReadme({projectRoot, results: {badges}});\n}\n","import {fromUrl as hostedFromUrl} from 'hosted-git-info';\n\nexport function fromUrl(...args) {\n return hostedFromUrl(...args);\n}\n","import inquirer from 'inquirer';\nimport {questionNames} from './question-names';\n\nconst {Separator} = inquirer;\n\nexport function unlicensedConfirmationShouldBePresented(answers) {\n return 'Private' === answers[questionNames.VISIBILITY];\n}\n\nexport function licenseChoicesShouldBePresented(answers) {\n return 'Public' === answers[questionNames.VISIBILITY] || !answers[questionNames.UNLICENSED];\n}\n\nexport function copyrightInformationShouldBeRequested(answers) {\n return !!answers[questionNames.LICENSE];\n}\n\nexport function filterChoicesByVisibility(choices, visibility) {\n return [\n ...Object.entries(choices)\n .filter(([, choice]) => choice[visibility.toLowerCase()])\n .reduce((acc, [name]) => ([...acc, name]), []),\n new Separator(),\n 'Other'\n ];\n}\n","import inquirer from 'inquirer';\nimport {questionsForBaseDetails} from '@form8ion/core';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {filterChoicesByVisibility} from './conditionals';\nimport {questionNames} from './question-names';\n\nconst {Separator} = inquirer;\n\nexport function promptForBaseDetails(projectRoot, copyrightHolder, decisions) {\n return prompt([\n ...questionsForBaseDetails(decisions, projectRoot, copyrightHolder),\n {name: questionNames.GIT_REPO, type: 'confirm', default: true, message: 'Should a git repository be initialized?'}\n ], decisions);\n}\n\nexport function promptForLanguageDetails(languages, decisions) {\n return prompt([{\n name: questionNames.PROJECT_LANGUAGE,\n type: 'list',\n message: 'What type of project is this?',\n choices: [...Object.keys(languages), new Separator(), 'Other']\n }], decisions);\n}\n\nexport async function promptForVcsHostDetails(hosts, visibility, decisions) {\n const answers = await prompt([{\n name: questionNames.REPO_HOST,\n type: 'list',\n message: 'Where will the repository be hosted?',\n choices: filterChoicesByVisibility(hosts, visibility)\n }], decisions);\n const host = hosts[answers[questionNames.REPO_HOST]];\n\n return {...answers, ...host && await host.prompt({decisions})};\n}\n","import nodegit from 'nodegit';\nimport {promises} from 'fs';\nimport {directoryExists} from '@form8ion/core';\nimport {info, warn} from '@travi/cli-messages';\nimport {fromUrl} from '../../thirdparty-wrappers/hosted-git-info';\nimport {promptForVcsHostDetails} from '../prompts/questions';\nimport {questionNames} from '../prompts/question-names';\n\nconst {Remote: gitRemote, Repository: gitRepository} = nodegit;\n\nfunction createIgnoreFile(projectRoot, ignore) {\n const {directories, files} = ignore;\n\n return promises.writeFile(`${projectRoot}/.gitignore`, `${directories.join('\\n')}\\n\\n${files.join('\\n')}`);\n}\n\nfunction generateConfigFiles(projectRoot, ignore) {\n info('Generating Git config files', {level: 'secondary'});\n\n return Promise.all([\n promises.writeFile(`${projectRoot}/.gitattributes`, '* text=auto'),\n ignore ? createIgnoreFile(projectRoot, ignore) : undefined\n ].filter(Boolean));\n}\n\nasync function defineRemoteOrigin(projectRoot, origin) {\n const repository = await gitRepository.open(projectRoot);\n const existingRemotes = await gitRemote.list(repository);\n\n if (existingRemotes.includes('origin')) {\n warn('The `origin` remote is already defined for this repository');\n\n return {nextSteps: []};\n }\n\n if (origin.sshUrl) {\n info(`Setting remote origin to ${origin.sshUrl}`, {level: 'secondary'});\n\n await gitRemote.create(repository, 'origin', origin.sshUrl);\n\n // info('Setting the local `master` branch to track `origin/master`');\n //\n // await gitBranch.setUpstream(\n // await gitBranch.lookup(repository, 'master', gitBranch.BRANCH.LOCAL),\n // 'origin/master'\n // );\n\n return {nextSteps: [{summary: 'Set local `master` branch to track upstream `origin/master`'}]};\n }\n\n warn('URL not available to configure remote `origin`');\n\n return {nextSteps: []};\n}\n\nexport async function initialize(\n gitRepoShouldBeInitialized,\n projectRoot,\n projectName,\n vcsHosts,\n visibility,\n decisions\n) {\n if (gitRepoShouldBeInitialized) {\n if (await directoryExists(`${projectRoot}/.git`)) {\n info('Git repository already exists');\n\n const repository = await gitRepository.open(projectRoot);\n const remoteOrigin = await gitRemote.lookup(repository, 'origin');\n const {user, project, type} = fromUrl(remoteOrigin.url());\n\n return {owner: user, name: project, host: type};\n }\n\n info('Initializing Git Repository');\n\n const [answers] = await Promise.all([\n promptForVcsHostDetails(vcsHosts, visibility, decisions),\n gitRepository.init(projectRoot, 0)\n ]);\n\n return {\n host: answers[questionNames.REPO_HOST].toLowerCase(),\n owner: answers[questionNames.REPO_OWNER],\n name: projectName\n };\n }\n\n return undefined;\n}\n\nexport async function scaffold({projectRoot, ignore, origin}) {\n info('Finishing Git Configuration');\n\n const [remoteOriginResults] = await Promise.all([\n defineRemoteOrigin(projectRoot, origin),\n generateConfigFiles(projectRoot, ignore)\n ]);\n\n return {nextSteps: [{summary: 'Commit scaffolded files'}, ...remoteOriginResults.nextSteps]};\n}\n","import {promises} from 'fs';\nimport wrap from 'word-wrap';\nimport mustache from 'mustache';\n// eslint-disable-next-line import/extensions\nimport spdxLicenseList from 'spdx-license-list/full.js';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot, license, copyright, vcs}) {\n if (license) {\n info('Generating License');\n\n let licenseContent = spdxLicenseList[license].licenseText;\n\n if ('MIT' === license) {\n licenseContent = licenseContent.replace('(including the next paragraph) ', '');\n }\n\n await promises.writeFile(\n `${projectRoot}/LICENSE`,\n `${wrap(\n mustache.render(licenseContent, {year: copyright.year, 'copyright holders': copyright.holder}, {}, ['<', '>']),\n {width: 80, indent: ''}\n )}\\n`\n );\n\n return {\n ...vcs && 'github' === vcs.host && {\n badges: {\n consumer: {\n license: {\n img: `https://img.shields.io/github/license/${vcs.owner}/${vcs.name}.svg`,\n text: `${license} license`,\n link: 'LICENSE'\n }\n }\n }\n }\n };\n }\n\n return {};\n}\n","export default function (hosts, options) {\n const lowercasedHosts = Object.fromEntries(\n Object.entries(hosts).map(([name, details]) => [name.toLowerCase(), details])\n );\n const {host: chosenHost, ...rest} = options;\n const host = lowercasedHosts[chosenHost];\n\n if (host) return host.scaffolder(rest);\n\n return {};\n}\n","import inquirer from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nconst {Separator} = inquirer;\n\nexport async function promptForDependencyUpdaterChoice(updaters, decisions) {\n return prompt([{\n name: questionNames.DEPENDENCY_UPDATER,\n type: 'list',\n message: 'Which dependency-update service do you want to manage this project?',\n choices: [...Object.keys(updaters), new Separator(), 'Other']\n }], decisions);\n}\n","import {questionNames} from '../prompts/question-names';\nimport {promptForDependencyUpdaterChoice} from './prompt';\n\nexport default async function (scaffolders, decisions, options) {\n if (!Object.keys(scaffolders).length) return undefined;\n\n const scaffolderDetails = scaffolders[\n (await promptForDependencyUpdaterChoice(scaffolders, decisions))[questionNames.DEPENDENCY_UPDATER]\n ];\n\n if (scaffolderDetails) return scaffolderDetails.scaffolder(options);\n\n return undefined;\n}\n","import * as joi from 'joi';\nimport hoek from '@hapi/hoek';\n\nexport function validate(options) {\n const schema = joi.object({\n languages: joi.object().pattern(/^/, joi.func().arity(1)),\n overrides: joi.object({copyrightHolder: joi.string()}),\n vcsHosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n prompt: joi.func().required(),\n public: joi.boolean(),\n private: joi.boolean()\n })),\n decisions: joi.object(),\n dependencyUpdaters: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({})\n });\n const validated = schema.validate(options);\n\n hoek.assert(!validated.error, validated.error);\n\n return validated.value || {};\n}\n","import {resolve} from 'path';\nimport {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {reportResults} from '@form8ion/results-reporter';\nimport {info} from '@travi/cli-messages';\nimport execa from '../thirdparty-wrappers/execa';\nimport {scaffold as scaffoldLanguage} from './language-scaffolder';\nimport scaffoldReadme from './readme';\nimport {initialize as initializeGit, scaffold as scaffoldGit} from './vcs/git';\nimport scaffoldLicense from './license';\nimport scaffoldVcsHost from './vcs/host';\nimport scaffoldDependencyUpdater from './dependency-updater/scaffolder';\nimport {promptForBaseDetails, promptForLanguageDetails} from './prompts/questions';\nimport {validate} from './options-validator';\nimport {questionNames} from './prompts/question-names';\n\nexport async function scaffold(options) {\n const projectRoot = process.cwd();\n const {languages = {}, overrides = {}, vcsHosts = {}, decisions, dependencyUpdaters} = validate(options);\n const {copyrightHolder} = overrides;\n\n const {\n [coreQuestionNames.PROJECT_NAME]: projectName,\n [coreQuestionNames.LICENSE]: chosenLicense,\n [coreQuestionNames.VISIBILITY]: visibility,\n [coreQuestionNames.DESCRIPTION]: description,\n [questionNames.GIT_REPO]: gitRepo,\n [coreQuestionNames.COPYRIGHT_YEAR]: copyrightYear,\n [coreQuestionNames.COPYRIGHT_HOLDER]: copyHolder\n } = await promptForBaseDetails(projectRoot, copyrightHolder, decisions);\n const copyright = {year: copyrightYear, holder: copyHolder};\n\n const vcs = await initializeGit(gitRepo, projectRoot, projectName, vcsHosts, visibility, decisions);\n\n const {[questionNames.PROJECT_LANGUAGE]: projectLanguage} = await promptForLanguageDetails(languages, decisions);\n\n const [license, language] = await Promise.all([\n scaffoldLicense({projectRoot, license: chosenLicense, copyright, vcs}),\n scaffoldLanguage(\n languages,\n projectLanguage,\n {projectRoot, projectName, vcs, visibility, license: chosenLicense || 'UNLICENSED', description}\n )\n ]);\n\n const dependencyUpdaterResults = vcs && await scaffoldDependencyUpdater(\n dependencyUpdaters,\n decisions,\n {projectRoot, vcs}\n );\n\n const contributors = [license, language, dependencyUpdaterResults].filter(Boolean);\n const contributedTasks = contributors\n .map(contributor => contributor.nextSteps)\n .filter(Boolean)\n .reduce((acc, contributedNextSteps) => ([...acc, ...contributedNextSteps]), []);\n\n const vcsHostResults = vcs && await scaffoldVcsHost(vcsHosts, {\n ...vcs,\n projectRoot,\n projectType: projectLanguage,\n description,\n visibility,\n ...language && {\n homepage: language.projectDetails && language.projectDetails.homepage,\n tags: language.tags\n },\n nextSteps: contributedTasks\n });\n\n await Promise.all([\n scaffoldReadme({\n projectName,\n projectRoot,\n description,\n ...language && {documentation: language.documentation},\n badges: deepmerge.all([\n {\n contribution: {\n ...'Public' === visibility && {\n PRs: {\n text: 'PRs Welcome',\n link: 'http://makeapullrequest.com',\n img: 'https://img.shields.io/badge/PRs-welcome-brightgreen.svg'\n }\n }\n },\n status: {},\n consumer: {}\n },\n ...contributors.map(contributor => contributor.badges).filter(Boolean)\n ])\n }),\n fs.copyFile(resolve(__dirname, '..', 'templates', 'editorconfig.txt'), `${projectRoot}/.editorconfig`)\n ]);\n\n const gitResults = gitRepo && await scaffoldGit({\n projectRoot,\n ...language && {ignore: language.vcsIgnore},\n origin: vcsHostResults\n });\n\n if (language && language.verificationCommand) {\n info('Verifying the generated project');\n\n const subprocess = execa(language.verificationCommand, {shell: true});\n subprocess.stdout.pipe(process.stdout);\n await subprocess;\n }\n\n reportResults({\n nextSteps: [\n ...(gitResults && gitResults.nextSteps) ? gitResults.nextSteps : [],\n ...contributedTasks\n ]\n });\n}\n","import deepmerge from 'deepmerge';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftReadme} from '@form8ion/readme';\n\nexport default async function ({projectRoot, results, enhancers, vcs}) {\n const enhancerResults = await applyEnhancers({results, enhancers, options: {projectRoot, vcs}});\n\n await liftReadme({projectRoot, results: deepmerge.all([results, enhancerResults])});\n\n return enhancerResults;\n}\n","import {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {questionNames as projectScaffolderQuestionNames} from './prompts/question-names';\n\nexport * from './scaffolder';\nexport {default as lift} from './lift';\nexport const questionNames = {\n ...coreQuestionNames,\n ...projectScaffolderQuestionNames\n};\n"],"names":["questionNames","scaffold","fs","liftReadme","hostedFromUrl","Separator","coreQuestionNames","initializeGit","scaffoldLanguage","scaffoldGit","projectScaffolderQuestionNames"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/prompts/question-names.js","../src/language-scaffolder.js","../src/readme.js","../thirdparty-wrappers/hosted-git-info.js","../src/prompts/conditionals.js","../src/prompts/questions.js","../src/vcs/git.js","../src/license.js","../src/vcs/host.js","../src/dependency-updater/prompt.js","../src/dependency-updater/scaffolder.js","../src/options-validator.js","../src/scaffolder.js","../src/lift.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n GIT_REPO: 'gitRepo',\n REPO_HOST: 'repoHost',\n REPO_OWNER: 'repoOwner',\n PROJECT_LANGUAGE: 'projectLanguage',\n DEPENDENCY_UPDATER: 'dependencyUpdater'\n};\n","export function scaffold(scaffolders, chosenLanguage, options) {\n const scaffolder = scaffolders[chosenLanguage];\n\n if (scaffolder) return scaffolder(options);\n\n return undefined;\n}\n","import {promises as fs} from 'fs';\nimport path from 'path';\nimport mustache from 'mustache';\nimport {info} from '@travi/cli-messages';\nimport {lift as liftReadme} from '@form8ion/readme';\n\nexport default async function ({projectName, projectRoot, description, badges, documentation}) {\n info('Generating README');\n\n const initialRender = mustache.render(\n await fs.readFile(path.resolve(__dirname, '..', 'templates/README.mustache'), 'utf8'),\n {projectName, description, documentation}\n );\n\n await fs.writeFile(`${projectRoot}/README.md`, initialRender);\n\n return liftReadme({projectRoot, results: {badges}});\n}\n","import {fromUrl as hostedFromUrl} from 'hosted-git-info';\n\nexport function fromUrl(...args) {\n return hostedFromUrl(...args);\n}\n","import inquirer from 'inquirer';\nimport {questionNames} from './question-names';\n\nconst {Separator} = inquirer;\n\nexport function unlicensedConfirmationShouldBePresented(answers) {\n return 'Private' === answers[questionNames.VISIBILITY];\n}\n\nexport function licenseChoicesShouldBePresented(answers) {\n return 'Public' === answers[questionNames.VISIBILITY] || !answers[questionNames.UNLICENSED];\n}\n\nexport function copyrightInformationShouldBeRequested(answers) {\n return !!answers[questionNames.LICENSE];\n}\n\nexport function filterChoicesByVisibility(choices, visibility) {\n return [\n ...Object.entries(choices)\n .filter(([, choice]) => choice[visibility.toLowerCase()])\n .reduce((acc, [name]) => ([...acc, name]), []),\n new Separator(),\n 'Other'\n ];\n}\n","import inquirer from 'inquirer';\nimport {questionsForBaseDetails} from '@form8ion/core';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {filterChoicesByVisibility} from './conditionals';\nimport {questionNames} from './question-names';\n\nconst {Separator} = inquirer;\n\nexport function promptForBaseDetails(projectRoot, copyrightHolder, decisions) {\n return prompt([\n ...questionsForBaseDetails(decisions, projectRoot, copyrightHolder),\n {name: questionNames.GIT_REPO, type: 'confirm', default: true, message: 'Should a git repository be initialized?'}\n ], decisions);\n}\n\nexport function promptForLanguageDetails(languages, decisions) {\n return prompt([{\n name: questionNames.PROJECT_LANGUAGE,\n type: 'list',\n message: 'What type of project is this?',\n choices: [...Object.keys(languages), new Separator(), 'Other']\n }], decisions);\n}\n\nexport async function promptForVcsHostDetails(hosts, visibility, decisions) {\n const answers = await prompt([{\n name: questionNames.REPO_HOST,\n type: 'list',\n message: 'Where will the repository be hosted?',\n choices: filterChoicesByVisibility(hosts, visibility)\n }], decisions);\n const host = hosts[answers[questionNames.REPO_HOST]];\n\n return {...answers, ...host && await host.prompt({decisions})};\n}\n","import nodegit from 'nodegit';\nimport {promises} from 'fs';\nimport {directoryExists} from '@form8ion/core';\nimport {info, warn} from '@travi/cli-messages';\nimport {fromUrl} from '../../thirdparty-wrappers/hosted-git-info';\nimport {promptForVcsHostDetails} from '../prompts/questions';\nimport {questionNames} from '../prompts/question-names';\n\nconst {Remote: gitRemote, Repository: gitRepository} = nodegit;\n\nfunction createIgnoreFile(projectRoot, ignore) {\n const {directories, files} = ignore;\n\n return promises.writeFile(`${projectRoot}/.gitignore`, `${directories.join('\\n')}\\n\\n${files.join('\\n')}`);\n}\n\nfunction generateConfigFiles(projectRoot, ignore) {\n info('Generating Git config files', {level: 'secondary'});\n\n return Promise.all([\n promises.writeFile(`${projectRoot}/.gitattributes`, '* text=auto'),\n ignore ? createIgnoreFile(projectRoot, ignore) : undefined\n ].filter(Boolean));\n}\n\nasync function defineRemoteOrigin(projectRoot, origin) {\n const repository = await gitRepository.open(projectRoot);\n const existingRemotes = await gitRemote.list(repository);\n\n if (existingRemotes.includes('origin')) {\n warn('The `origin` remote is already defined for this repository');\n\n return {nextSteps: []};\n }\n\n if (origin.sshUrl) {\n info(`Setting remote origin to ${origin.sshUrl}`, {level: 'secondary'});\n\n await gitRemote.create(repository, 'origin', origin.sshUrl);\n\n // info('Setting the local `master` branch to track `origin/master`');\n //\n // await gitBranch.setUpstream(\n // await gitBranch.lookup(repository, 'master', gitBranch.BRANCH.LOCAL),\n // 'origin/master'\n // );\n\n return {nextSteps: [{summary: 'Set local `master` branch to track upstream `origin/master`'}]};\n }\n\n warn('URL not available to configure remote `origin`');\n\n return {nextSteps: []};\n}\n\nexport async function initialize(\n gitRepoShouldBeInitialized,\n projectRoot,\n projectName,\n vcsHosts,\n visibility,\n decisions\n) {\n if (gitRepoShouldBeInitialized) {\n if (await directoryExists(`${projectRoot}/.git`)) {\n info('Git repository already exists');\n\n const repository = await gitRepository.open(projectRoot);\n const remoteOrigin = await gitRemote.lookup(repository, 'origin');\n const {user, project, type} = fromUrl(remoteOrigin.url());\n\n return {owner: user, name: project, host: type};\n }\n\n info('Initializing Git Repository');\n\n const [answers] = await Promise.all([\n promptForVcsHostDetails(vcsHosts, visibility, decisions),\n gitRepository.init(projectRoot, 0)\n ]);\n\n return {\n host: answers[questionNames.REPO_HOST].toLowerCase(),\n owner: answers[questionNames.REPO_OWNER],\n name: projectName\n };\n }\n\n return undefined;\n}\n\nexport async function scaffold({projectRoot, ignore, origin}) {\n info('Finishing Git Configuration');\n\n const [remoteOriginResults] = await Promise.all([\n defineRemoteOrigin(projectRoot, origin),\n generateConfigFiles(projectRoot, ignore)\n ]);\n\n return {nextSteps: [{summary: 'Commit scaffolded files'}, ...remoteOriginResults.nextSteps]};\n}\n","import {promises} from 'fs';\nimport wrap from 'word-wrap';\nimport mustache from 'mustache';\n// eslint-disable-next-line import/extensions\nimport spdxLicenseList from 'spdx-license-list/full.js';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot, license, copyright, vcs}) {\n if (license) {\n info('Generating License');\n\n let licenseContent = spdxLicenseList[license].licenseText;\n\n if ('MIT' === license) {\n licenseContent = licenseContent.replace('(including the next paragraph) ', '');\n }\n\n await promises.writeFile(\n `${projectRoot}/LICENSE`,\n `${wrap(\n mustache.render(licenseContent, {year: copyright.year, 'copyright holders': copyright.holder}, {}, ['<', '>']),\n {width: 80, indent: ''}\n )}\\n`\n );\n\n return {\n ...vcs && 'github' === vcs.host && {\n badges: {\n consumer: {\n license: {\n img: `https://img.shields.io/github/license/${vcs.owner}/${vcs.name}.svg`,\n text: `${license} license`,\n link: 'LICENSE'\n }\n }\n }\n }\n };\n }\n\n return {};\n}\n","export default function (hosts, options) {\n const lowercasedHosts = Object.fromEntries(\n Object.entries(hosts).map(([name, details]) => [name.toLowerCase(), details])\n );\n const {host: chosenHost, ...rest} = options;\n const host = lowercasedHosts[chosenHost];\n\n if (host) return host.scaffolder(rest);\n\n return {};\n}\n","import inquirer from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nconst {Separator} = inquirer;\n\nexport async function promptForDependencyUpdaterChoice(updaters, decisions) {\n return prompt([{\n name: questionNames.DEPENDENCY_UPDATER,\n type: 'list',\n message: 'Which dependency-update service do you want to manage this project?',\n choices: [...Object.keys(updaters), new Separator(), 'Other']\n }], decisions);\n}\n","import {questionNames} from '../prompts/question-names';\nimport {promptForDependencyUpdaterChoice} from './prompt';\n\nexport default async function (scaffolders, decisions, options) {\n if (!Object.keys(scaffolders).length) return undefined;\n\n const scaffolderDetails = scaffolders[\n (await promptForDependencyUpdaterChoice(scaffolders, decisions))[questionNames.DEPENDENCY_UPDATER]\n ];\n\n if (scaffolderDetails) return scaffolderDetails.scaffolder(options);\n\n return undefined;\n}\n","import joi from 'joi';\nimport hoek from '@hapi/hoek';\n\nexport function validate(options) {\n const schema = joi.object({\n languages: joi.object().pattern(/^/, joi.func().arity(1)),\n overrides: joi.object({copyrightHolder: joi.string()}),\n vcsHosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n prompt: joi.func().required(),\n public: joi.boolean(),\n private: joi.boolean()\n })),\n decisions: joi.object(),\n dependencyUpdaters: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({})\n });\n const validated = schema.validate(options);\n\n hoek.assert(!validated.error, validated.error);\n\n return validated.value || {};\n}\n","import {resolve} from 'path';\nimport {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {reportResults} from '@form8ion/results-reporter';\nimport {info} from '@travi/cli-messages';\nimport execa from '../thirdparty-wrappers/execa';\nimport {scaffold as scaffoldLanguage} from './language-scaffolder';\nimport scaffoldReadme from './readme';\nimport {initialize as initializeGit, scaffold as scaffoldGit} from './vcs/git';\nimport scaffoldLicense from './license';\nimport scaffoldVcsHost from './vcs/host';\nimport scaffoldDependencyUpdater from './dependency-updater/scaffolder';\nimport {promptForBaseDetails, promptForLanguageDetails} from './prompts/questions';\nimport {validate} from './options-validator';\nimport {questionNames} from './prompts/question-names';\n\nexport async function scaffold(options) {\n const projectRoot = process.cwd();\n const {languages = {}, overrides = {}, vcsHosts = {}, decisions, dependencyUpdaters} = validate(options);\n const {copyrightHolder} = overrides;\n\n const {\n [coreQuestionNames.PROJECT_NAME]: projectName,\n [coreQuestionNames.LICENSE]: chosenLicense,\n [coreQuestionNames.VISIBILITY]: visibility,\n [coreQuestionNames.DESCRIPTION]: description,\n [questionNames.GIT_REPO]: gitRepo,\n [coreQuestionNames.COPYRIGHT_YEAR]: copyrightYear,\n [coreQuestionNames.COPYRIGHT_HOLDER]: copyHolder\n } = await promptForBaseDetails(projectRoot, copyrightHolder, decisions);\n const copyright = {year: copyrightYear, holder: copyHolder};\n\n const vcs = await initializeGit(gitRepo, projectRoot, projectName, vcsHosts, visibility, decisions);\n\n const {[questionNames.PROJECT_LANGUAGE]: projectLanguage} = await promptForLanguageDetails(languages, decisions);\n\n const [license, language] = await Promise.all([\n scaffoldLicense({projectRoot, license: chosenLicense, copyright, vcs}),\n scaffoldLanguage(\n languages,\n projectLanguage,\n {projectRoot, projectName, vcs, visibility, license: chosenLicense || 'UNLICENSED', description}\n )\n ]);\n\n const dependencyUpdaterResults = vcs && await scaffoldDependencyUpdater(\n dependencyUpdaters,\n decisions,\n {projectRoot, vcs}\n );\n\n const contributors = [license, language, dependencyUpdaterResults].filter(Boolean);\n const contributedTasks = contributors\n .map(contributor => contributor.nextSteps)\n .filter(Boolean)\n .reduce((acc, contributedNextSteps) => ([...acc, ...contributedNextSteps]), []);\n\n const vcsHostResults = vcs && await scaffoldVcsHost(vcsHosts, {\n ...vcs,\n projectRoot,\n projectType: projectLanguage,\n description,\n visibility,\n ...language && {\n homepage: language.projectDetails && language.projectDetails.homepage,\n tags: language.tags\n },\n nextSteps: contributedTasks\n });\n\n await Promise.all([\n scaffoldReadme({\n projectName,\n projectRoot,\n description,\n ...language && {documentation: language.documentation},\n badges: deepmerge.all([\n {\n contribution: {\n ...'Public' === visibility && {\n PRs: {\n text: 'PRs Welcome',\n link: 'http://makeapullrequest.com',\n img: 'https://img.shields.io/badge/PRs-welcome-brightgreen.svg'\n }\n }\n },\n status: {},\n consumer: {}\n },\n ...contributors.map(contributor => contributor.badges).filter(Boolean)\n ])\n }),\n fs.copyFile(resolve(__dirname, '..', 'templates', 'editorconfig.txt'), `${projectRoot}/.editorconfig`)\n ]);\n\n const gitResults = gitRepo && await scaffoldGit({\n projectRoot,\n ...language && {ignore: language.vcsIgnore},\n origin: vcsHostResults\n });\n\n if (language && language.verificationCommand) {\n info('Verifying the generated project');\n\n const subprocess = execa(language.verificationCommand, {shell: true});\n subprocess.stdout.pipe(process.stdout);\n await subprocess;\n }\n\n reportResults({\n nextSteps: [\n ...(gitResults && gitResults.nextSteps) ? gitResults.nextSteps : [],\n ...contributedTasks\n ]\n });\n}\n","import deepmerge from 'deepmerge';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftReadme} from '@form8ion/readme';\n\nexport default async function ({projectRoot, results, enhancers, vcs}) {\n const enhancerResults = await applyEnhancers({results, enhancers, options: {projectRoot, vcs}});\n\n await liftReadme({projectRoot, results: deepmerge.all([results, enhancerResults])});\n\n return enhancerResults;\n}\n","import {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {questionNames as projectScaffolderQuestionNames} from './prompts/question-names';\n\nexport * from './scaffolder';\nexport {default as lift} from './lift';\nexport const questionNames = {\n ...coreQuestionNames,\n ...projectScaffolderQuestionNames\n};\n"],"names":["questionNames","scaffold","fs","liftReadme","hostedFromUrl","Separator","coreQuestionNames","initializeGit","scaffoldLanguage","scaffoldGit","projectScaffolderQuestionNames"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@form8ion/project",
|
|
3
3
|
"description": "opinionated scaffolder for new projects",
|
|
4
|
-
"version": "13.0.
|
|
4
|
+
"version": "13.0.5",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/index.mjs",
|
|
7
7
|
"exports": {
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"unist-util-find": "1.0.2"
|
|
97
97
|
},
|
|
98
98
|
"dependencies": {
|
|
99
|
-
"@form8ion/core": "^1.
|
|
99
|
+
"@form8ion/core": "^1.6.0-alpha.2",
|
|
100
100
|
"@form8ion/overridable-prompts": "^1.1.0",
|
|
101
101
|
"@form8ion/readme": "2.0.0",
|
|
102
102
|
"@form8ion/results-reporter": "^1.1.0",
|