create-typescript-app 1.75.1 → 1.77.0
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/README.md +1 -1
- package/lib/bin/help.js +35 -35
- package/lib/bin/help.js.map +1 -1
- package/lib/bin/promptForMode.js +6 -6
- package/lib/bin/promptForMode.js.map +1 -1
- package/lib/create/createWithOptions.js +12 -13
- package/lib/create/createWithOptions.js.map +1 -1
- package/lib/index.d.ts +45 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -1
- package/lib/next/base.d.ts +101 -0
- package/lib/next/base.js +140 -0
- package/lib/next/base.js.map +1 -0
- package/lib/next/blocks/blockAllContributors.d.ts +48 -0
- package/lib/next/blocks/blockAllContributors.js +59 -0
- package/lib/next/blocks/blockAllContributors.js.map +1 -0
- package/lib/next/blocks/blockAreTheTypesWrong.d.ts +48 -0
- package/lib/next/blocks/blockAreTheTypesWrong.js +29 -0
- package/lib/next/blocks/blockAreTheTypesWrong.js.map +1 -0
- package/lib/next/blocks/blockCSpell.d.ts +51 -0
- package/lib/next/blocks/blockCSpell.js +77 -0
- package/lib/next/blocks/blockCSpell.js.map +1 -0
- package/lib/next/blocks/blockContributingDocs.d.ts +48 -0
- package/lib/next/blocks/blockContributingDocs.js +116 -0
- package/lib/next/blocks/blockContributingDocs.js.map +1 -0
- package/lib/next/blocks/blockContributorCovenant.d.ts +48 -0
- package/lib/next/blocks/blockContributorCovenant.js +151 -0
- package/lib/next/blocks/blockContributorCovenant.js.map +1 -0
- package/lib/next/blocks/blockDevelopmentDocs.d.ts +62 -0
- package/lib/next/blocks/blockDevelopmentDocs.js +86 -0
- package/lib/next/blocks/blockDevelopmentDocs.js.map +1 -0
- package/lib/next/blocks/blockESLint.d.ts +73 -0
- package/lib/next/blocks/blockESLint.js +225 -0
- package/lib/next/blocks/blockESLint.js.map +1 -0
- package/lib/next/blocks/blockESLintComments.d.ts +48 -0
- package/lib/next/blocks/blockESLintComments.js +26 -0
- package/lib/next/blocks/blockESLintComments.js.map +1 -0
- package/lib/next/blocks/blockESLintJSDoc.d.ts +48 -0
- package/lib/next/blocks/blockESLintJSDoc.js +25 -0
- package/lib/next/blocks/blockESLintJSDoc.js.map +1 -0
- package/lib/next/blocks/blockESLintJSONC.d.ts +48 -0
- package/lib/next/blocks/blockESLintJSONC.js +21 -0
- package/lib/next/blocks/blockESLintJSONC.js.map +1 -0
- package/lib/next/blocks/blockESLintMarkdown.d.ts +48 -0
- package/lib/next/blocks/blockESLintMarkdown.js +27 -0
- package/lib/next/blocks/blockESLintMarkdown.js.map +1 -0
- package/lib/next/blocks/blockESLintMoreStyling.d.ts +48 -0
- package/lib/next/blocks/blockESLintMoreStyling.js +34 -0
- package/lib/next/blocks/blockESLintMoreStyling.js.map +1 -0
- package/lib/next/blocks/blockESLintNode.d.ts +48 -0
- package/lib/next/blocks/blockESLintNode.js +33 -0
- package/lib/next/blocks/blockESLintNode.js.map +1 -0
- package/lib/next/blocks/blockESLintPackageJson.d.ts +48 -0
- package/lib/next/blocks/blockESLintPackageJson.js +26 -0
- package/lib/next/blocks/blockESLintPackageJson.js.map +1 -0
- package/lib/next/blocks/blockESLintPerfectionist.d.ts +48 -0
- package/lib/next/blocks/blockESLintPerfectionist.js +32 -0
- package/lib/next/blocks/blockESLintPerfectionist.js.map +1 -0
- package/lib/next/blocks/blockESLintRegexp.d.ts +48 -0
- package/lib/next/blocks/blockESLintRegexp.js +23 -0
- package/lib/next/blocks/blockESLintRegexp.js.map +1 -0
- package/lib/next/blocks/blockESLintYML.d.ts +48 -0
- package/lib/next/blocks/blockESLintYML.js +46 -0
- package/lib/next/blocks/blockESLintYML.js.map +1 -0
- package/lib/next/blocks/blockFunding.d.ts +48 -0
- package/lib/next/blocks/blockFunding.js +20 -0
- package/lib/next/blocks/blockFunding.js.map +1 -0
- package/lib/next/blocks/blockGitHubActionsCI.d.ts +60 -0
- package/lib/next/blocks/blockGitHubActionsCI.js +122 -0
- package/lib/next/blocks/blockGitHubActionsCI.js.map +1 -0
- package/lib/next/blocks/blockGitHubIssueTemplates.d.ts +48 -0
- package/lib/next/blocks/blockGitHubIssueTemplates.js +217 -0
- package/lib/next/blocks/blockGitHubIssueTemplates.js.map +1 -0
- package/lib/next/blocks/blockGitHubPRTemplate.d.ts +48 -0
- package/lib/next/blocks/blockGitHubPRTemplate.js +32 -0
- package/lib/next/blocks/blockGitHubPRTemplate.js.map +1 -0
- package/lib/next/blocks/blockGitignore.d.ts +50 -0
- package/lib/next/blocks/blockGitignore.js +23 -0
- package/lib/next/blocks/blockGitignore.js.map +1 -0
- package/lib/next/blocks/blockKnip.d.ts +48 -0
- package/lib/next/blocks/blockKnip.js +58 -0
- package/lib/next/blocks/blockKnip.js.map +1 -0
- package/lib/next/blocks/blockMITLicense.d.ts +48 -0
- package/lib/next/blocks/blockMITLicense.js +46 -0
- package/lib/next/blocks/blockMITLicense.js.map +1 -0
- package/lib/next/blocks/blockMarkdownlint.d.ts +50 -0
- package/lib/next/blocks/blockMarkdownlint.js +77 -0
- package/lib/next/blocks/blockMarkdownlint.js.map +1 -0
- package/lib/next/blocks/blockNvmrc.d.ts +48 -0
- package/lib/next/blocks/blockNvmrc.js +26 -0
- package/lib/next/blocks/blockNvmrc.js.map +1 -0
- package/lib/next/blocks/blockPRCompliance.d.ts +48 -0
- package/lib/next/blocks/blockPRCompliance.js +48 -0
- package/lib/next/blocks/blockPRCompliance.js.map +1 -0
- package/lib/next/blocks/blockPackageJson.d.ts +56 -0
- package/lib/next/blocks/blockPackageJson.js +81 -0
- package/lib/next/blocks/blockPackageJson.js.map +1 -0
- package/lib/next/blocks/blockPnpmDedupe.d.ts +48 -0
- package/lib/next/blocks/blockPnpmDedupe.js +51 -0
- package/lib/next/blocks/blockPnpmDedupe.js.map +1 -0
- package/lib/next/blocks/blockPrettier.d.ts +57 -0
- package/lib/next/blocks/blockPrettier.js +104 -0
- package/lib/next/blocks/blockPrettier.js.map +1 -0
- package/lib/next/blocks/blockPrettierPluginCurly.d.ts +48 -0
- package/lib/next/blocks/blockPrettierPluginCurly.js +20 -0
- package/lib/next/blocks/blockPrettierPluginCurly.js.map +1 -0
- package/lib/next/blocks/blockPrettierPluginPackageJson.d.ts +48 -0
- package/lib/next/blocks/blockPrettierPluginPackageJson.js +20 -0
- package/lib/next/blocks/blockPrettierPluginPackageJson.js.map +1 -0
- package/lib/next/blocks/blockPrettierPluginSh.d.ts +48 -0
- package/lib/next/blocks/blockPrettierPluginSh.js +20 -0
- package/lib/next/blocks/blockPrettierPluginSh.js.map +1 -0
- package/lib/next/blocks/blockREADME.d.ts +50 -0
- package/lib/next/blocks/blockREADME.js +63 -0
- package/lib/next/blocks/blockREADME.js.map +1 -0
- package/lib/next/blocks/blockReleaseIt.d.ts +48 -0
- package/lib/next/blocks/blockReleaseIt.js +126 -0
- package/lib/next/blocks/blockReleaseIt.js.map +1 -0
- package/lib/next/blocks/blockRenovate.d.ts +48 -0
- package/lib/next/blocks/blockRenovate.js +34 -0
- package/lib/next/blocks/blockRenovate.js.map +1 -0
- package/lib/next/blocks/blockSecurityDocs.d.ts +48 -0
- package/lib/next/blocks/blockSecurityDocs.js +28 -0
- package/lib/next/blocks/blockSecurityDocs.js.map +1 -0
- package/lib/next/blocks/blockTSup.d.ts +50 -0
- package/lib/next/blocks/blockTSup.js +78 -0
- package/lib/next/blocks/blockTSup.js.map +1 -0
- package/lib/next/blocks/blockTemplatedBy.d.ts +50 -0
- package/lib/next/blocks/blockTemplatedBy.js +34 -0
- package/lib/next/blocks/blockTemplatedBy.js.map +1 -0
- package/lib/next/blocks/blockTypeScript.d.ts +48 -0
- package/lib/next/blocks/blockTypeScript.js +109 -0
- package/lib/next/blocks/blockTypeScript.js.map +1 -0
- package/lib/next/blocks/blockVSCode.d.ts +57 -0
- package/lib/next/blocks/blockVSCode.js +87 -0
- package/lib/next/blocks/blockVSCode.js.map +1 -0
- package/lib/next/blocks/blockVitest.d.ts +55 -0
- package/lib/next/blocks/blockVitest.js +154 -0
- package/lib/next/blocks/blockVitest.js.map +1 -0
- package/lib/next/blocks/index.d.ts +43 -0
- package/lib/next/blocks/index.js +43 -0
- package/lib/next/blocks/index.js.map +1 -0
- package/lib/next/blocks/options.fakes.d.ts +13 -0
- package/lib/next/blocks/options.fakes.js +15 -0
- package/lib/next/blocks/options.fakes.js.map +1 -0
- package/lib/next/blocks/packageData.d.ts +5 -0
- package/lib/next/blocks/packageData.js +25 -0
- package/lib/next/blocks/packageData.js.map +1 -0
- package/lib/next/presetCommon.d.ts +99 -0
- package/lib/next/presetCommon.js +21 -0
- package/lib/next/presetCommon.js.map +1 -0
- package/lib/next/presetEverything.d.ts +99 -0
- package/lib/next/presetEverything.js +59 -0
- package/lib/next/presetEverything.js.map +1 -0
- package/lib/next/presetMinimal.d.ts +99 -0
- package/lib/next/presetMinimal.js +45 -0
- package/lib/next/presetMinimal.js.map +1 -0
- package/lib/next/template.d.ts +99 -0
- package/lib/next/template.js +21 -0
- package/lib/next/template.js.map +1 -0
- package/lib/next/utils/removeTrailingSlash.d.ts +3 -0
- package/lib/next/utils/removeTrailingSlash.js +7 -0
- package/lib/next/utils/removeTrailingSlash.js.map +1 -0
- package/lib/next/utils/sortObject.d.ts +5 -0
- package/lib/next/utils/sortObject.js +9 -0
- package/lib/next/utils/sortObject.js.map +1 -0
- package/lib/next/utils/swallowError.d.ts +3 -0
- package/lib/next/utils/swallowError.js +7 -0
- package/lib/next/utils/swallowError.js.map +1 -0
- package/lib/shared/cli/spinners.d.ts +1 -1
- package/lib/shared/cli/spinners.js.map +1 -1
- package/lib/shared/isUsingCreateEngine.d.ts +3 -0
- package/lib/shared/isUsingCreateEngine.js +7 -0
- package/lib/shared/isUsingCreateEngine.js.map +1 -0
- package/lib/shared/options/args.d.ts +39 -13
- package/lib/shared/options/args.js +5 -0
- package/lib/shared/options/args.js.map +1 -1
- package/lib/shared/options/augmentOptionsWithExcludes.js +2 -2
- package/lib/shared/options/augmentOptionsWithExcludes.js.map +1 -1
- package/lib/shared/options/createOptionDefaults/index.d.ts +2 -4
- package/lib/shared/options/createOptionDefaults/index.js +4 -13
- package/lib/shared/options/createOptionDefaults/index.js.map +1 -1
- package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js +4 -1
- package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js.map +1 -1
- package/lib/shared/options/createOptionDefaults/readEmails.d.ts +11 -0
- package/lib/shared/options/createOptionDefaults/readEmails.js +14 -0
- package/lib/shared/options/createOptionDefaults/readEmails.js.map +1 -0
- package/lib/shared/options/createOptionDefaults/readFunding.d.ts +3 -0
- package/lib/shared/options/createOptionDefaults/readFunding.js +11 -0
- package/lib/shared/options/createOptionDefaults/readFunding.js.map +1 -0
- package/lib/shared/options/createOptionDefaults/readGuide.d.ts +6 -0
- package/lib/shared/options/createOptionDefaults/readGuide.js +18 -0
- package/lib/shared/options/createOptionDefaults/readGuide.js.map +1 -0
- package/lib/shared/options/ensureRepositoryExists.js +1 -1
- package/lib/shared/options/ensureRepositoryExists.js.map +1 -1
- package/lib/shared/options/exclusionKeys.d.ts +1 -1
- package/lib/shared/options/exclusionKeys.js +6 -0
- package/lib/shared/options/exclusionKeys.js.map +1 -1
- package/lib/shared/options/optionsSchema.d.ts +6 -2
- package/lib/shared/options/optionsSchema.js +1 -0
- package/lib/shared/options/optionsSchema.js.map +1 -1
- package/lib/shared/options/readOptions.d.ts +1 -1
- package/lib/shared/options/readOptions.js +1 -0
- package/lib/shared/options/readOptions.js.map +1 -1
- package/lib/shared/types.d.ts +32 -24
- package/lib/steps/addOwnerAsAllContributor.js +2 -2
- package/lib/steps/addOwnerAsAllContributor.js.map +1 -1
- package/lib/steps/clearUnnecessaryFiles.js +3 -4
- package/lib/steps/clearUnnecessaryFiles.js.map +1 -1
- package/lib/steps/finalizeDependencies.js +47 -44
- package/lib/steps/finalizeDependencies.js.map +1 -1
- package/lib/steps/populateCSpellDictionary.js +7 -7
- package/lib/steps/populateCSpellDictionary.js.map +1 -1
- package/lib/steps/removeSetupScripts.js +9 -3
- package/lib/steps/removeSetupScripts.js.map +1 -1
- package/lib/steps/uninstallPackages.js +10 -3
- package/lib/steps/uninstallPackages.js.map +1 -1
- package/lib/steps/updateReadme.d.ts +1 -1
- package/lib/steps/updateReadme.js +1 -1
- package/lib/steps/updateReadme.js.map +1 -1
- package/lib/steps/writeReadme/index.js +19 -19
- package/lib/steps/writeReadme/index.js.map +1 -1
- package/lib/steps/writing/creation/createCSpellConfig.d.ts +7 -0
- package/lib/steps/writing/creation/createCSpellConfig.js +27 -0
- package/lib/steps/writing/creation/createCSpellConfig.js.map +1 -0
- package/lib/steps/writing/creation/createDotGitignore.js +7 -5
- package/lib/steps/writing/creation/createDotGitignore.js.map +1 -1
- package/lib/steps/writing/creation/createESLintConfig.js +22 -46
- package/lib/steps/writing/creation/createESLintConfig.js.map +1 -1
- package/lib/steps/writing/creation/createTsupConfig.js +10 -10
- package/lib/steps/writing/creation/createTsupConfig.js.map +1 -1
- package/lib/steps/writing/creation/dotGitHub/createDevelopment/index.js +57 -41
- package/lib/steps/writing/creation/dotGitHub/createDevelopment/index.js.map +1 -1
- package/lib/steps/writing/creation/dotGitHub/createDevelopment/splitIntoSections.js +1 -1
- package/lib/steps/writing/creation/dotGitHub/createDevelopment/splitIntoSections.js.map +1 -1
- package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js +5 -5
- package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js.map +1 -1
- package/lib/steps/writing/creation/dotGitHub/createMultiWorkflowFile.d.ts +11 -9
- package/lib/steps/writing/creation/dotGitHub/createMultiWorkflowFile.js.map +1 -1
- package/lib/steps/writing/creation/dotGitHub/createSoloWorkflowFile.d.ts +16 -16
- package/lib/steps/writing/creation/dotGitHub/createSoloWorkflowFile.js.map +1 -1
- package/lib/steps/writing/creation/dotGitHub/createWorkflows.js +5 -1
- package/lib/steps/writing/creation/dotGitHub/createWorkflows.js.map +1 -1
- package/lib/steps/writing/creation/formatters/formatIgnoreFile.d.ts +1 -1
- package/lib/steps/writing/creation/formatters/formatIgnoreFile.js +1 -1
- package/lib/steps/writing/creation/formatters/formatIgnoreFile.js.map +1 -1
- package/lib/steps/writing/creation/formatters/formatTypeScript.js +1 -1
- package/lib/steps/writing/creation/formatters/formatTypeScript.js.map +1 -1
- package/lib/steps/writing/creation/formatters/formatYaml.js +3 -1
- package/lib/steps/writing/creation/formatters/formatYaml.js.map +1 -1
- package/lib/steps/writing/creation/index.d.ts +1 -1
- package/lib/steps/writing/creation/index.js +49 -1
- package/lib/steps/writing/creation/index.js.map +1 -1
- package/lib/steps/writing/creation/rootFiles.js +5 -15
- package/lib/steps/writing/creation/rootFiles.js.map +1 -1
- package/lib/steps/writing/creation/writePackageJson.js +69 -62
- package/lib/steps/writing/creation/writePackageJson.js.map +1 -1
- package/lib/steps/writing/types.d.ts +1 -1
- package/lib/steps/writing/writeStructure.js +9 -1
- package/lib/steps/writing/writeStructure.js.map +1 -1
- package/lib/steps/writing/writeStructureWorker.js +1 -1
- package/lib/steps/writing/writeStructureWorker.js.map +1 -1
- package/package.json +57 -52
- package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.d.ts +0 -8
- package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.js +0 -22
- package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<h1 align="center">Create TypeScript App</h1>
|
|
2
2
|
|
|
3
|
-
<p align="center">Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling.
|
|
3
|
+
<p align="center">Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. ❤️🔥</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
6
|
<!-- prettier-ignore-start -->
|
package/lib/bin/help.js
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { allArgOptions } from "../shared/options/args.js";
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
3
|
+
function logHelpText(introLogs) {
|
|
4
|
+
const helpTextSections = createHelpTextSections();
|
|
5
|
+
for (const log of introLogs) {
|
|
6
|
+
console.log(log);
|
|
7
|
+
console.log(" ");
|
|
8
|
+
}
|
|
9
|
+
console.log(
|
|
10
|
+
chalk.cyan(
|
|
11
|
+
`
|
|
12
|
+
A quickstart-friendly TypeScript template with comprehensive formatting,
|
|
13
|
+
linting, releases, testing, and other great tooling built-in.
|
|
14
|
+
`
|
|
15
|
+
)
|
|
16
|
+
);
|
|
17
|
+
for (const section of helpTextSections) {
|
|
18
|
+
logHelpTextSection(section);
|
|
19
|
+
console.log();
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
22
|
function createHelpTextSections() {
|
|
@@ -92,23 +91,24 @@ using any or all of the following CLI flags:`
|
|
|
92
91
|
}
|
|
93
92
|
return [core, optional, optOut, offline];
|
|
94
93
|
}
|
|
95
|
-
function
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
94
|
+
function logHelpTextSection(section) {
|
|
95
|
+
console.log(" ");
|
|
96
|
+
console.log(chalk.black.bgGreenBright(section.sectionHeading));
|
|
97
|
+
for (const subsection of section.subsections) {
|
|
98
|
+
if (subsection.warning) {
|
|
99
|
+
console.log(chalk.yellow(subsection.warning));
|
|
100
|
+
}
|
|
101
|
+
if (subsection.subheading) {
|
|
102
|
+
console.log(chalk.green(subsection.subheading));
|
|
103
|
+
}
|
|
104
|
+
for (const { description, flag, type } of subsection.flags) {
|
|
105
|
+
console.log(
|
|
106
|
+
chalk.cyan(
|
|
107
|
+
`
|
|
108
|
+
--${flag}${type !== "boolean" ? ` (${chalk.cyanBright(type)})` : ""}: ${description}`
|
|
109
|
+
)
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
export {
|
package/lib/bin/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bin/help.ts"],"sourcesContent":["import chalk from \"chalk\";\n\nimport { allArgOptions } from \"../shared/options/args.js\";\n\ninterface HelpTextSection {\n\tsectionHeading: string;\n\tsubsections: {\n\t\tflags: SubsectionFlag[];\n\t\tsubheading?: string;\n\t\twarning?: string;\n\t}[];\n}\n\ninterface SubsectionFlag {\n\tdescription: string;\n\tflag: string;\n\ttype: string;\n}\n\
|
|
1
|
+
{"version":3,"sources":["../../src/bin/help.ts"],"sourcesContent":["import chalk from \"chalk\";\n\nimport { allArgOptions } from \"../shared/options/args.js\";\n\ninterface HelpTextSection {\n\tsectionHeading: string;\n\tsubsections: {\n\t\tflags: SubsectionFlag[];\n\t\tsubheading?: string;\n\t\twarning?: string;\n\t}[];\n}\n\ninterface SubsectionFlag {\n\tdescription: string;\n\tflag: string;\n\ttype: string;\n}\n\nexport function logHelpText(introLogs: string[]): void {\n\tconst helpTextSections = createHelpTextSections();\n\n\tfor (const log of introLogs) {\n\t\tconsole.log(log);\n\t\tconsole.log(\" \");\n\t}\n\n\tconsole.log(\n\t\tchalk.cyan(\n\t\t\t`\nA quickstart-friendly TypeScript template with comprehensive formatting, \nlinting, releases, testing, and other great tooling built-in.\n `,\n\t\t),\n\t);\n\n\tfor (const section of helpTextSections) {\n\t\tlogHelpTextSection(section);\n\n\t\tconsole.log();\n\t}\n}\n\nfunction createHelpTextSections(): HelpTextSection[] {\n\tconst core: HelpTextSection = {\n\t\tsectionHeading: \"Core options:\",\n\t\tsubsections: [\n\t\t\t{\n\t\t\t\tflags: [],\n\t\t\t},\n\t\t],\n\t};\n\n\tconst optional: HelpTextSection = {\n\t\tsectionHeading: \"Optional options:\",\n\t\tsubsections: [\n\t\t\t{\n\t\t\t\tflags: [],\n\t\t\t},\n\t\t],\n\t};\n\n\tconst optOut: HelpTextSection = {\n\t\tsectionHeading: \"Opt-outs:\",\n\t\tsubsections: [\n\t\t\t{\n\t\t\t\tflags: [],\n\t\t\t\twarning: `\n ⚠️ Warning: Specifying any --exclude-* flag on the command-line will \n cause the setup script to skip prompting for more excludes. ⚠️`,\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdescription: `Skips network calls that fetch all-contributors\n data from GitHub`,\n\t\t\t\t\t\tflag: \"exclude-contributors\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tsubheading: `\nYou can prevent the migration script from making some network-based \nchanges using any or all of the following CLI flags:`,\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: [],\n\t\t\t\tsubheading: `\nYou can prevent the migration script from making some changes on disk \nusing any or all of the following CLI flags:`,\n\t\t\t},\n\t\t],\n\t};\n\n\tconst offline: HelpTextSection = {\n\t\tsectionHeading: \"Offline Mode:\",\n\t\tsubsections: [\n\t\t\t{\n\t\t\t\tflags: [],\n\t\t\t},\n\t\t],\n\t};\n\n\tconst subsections = {\n\t\tcore: core.subsections[0],\n\t\toffline: offline.subsections[0],\n\t\t\"opt-out\": optOut.subsections[0],\n\t\toptional: optional.subsections[0],\n\t\t\"skip-disk\": optOut.subsections[2],\n\t\t\"skip-net\": optOut.subsections[1],\n\t};\n\n\tfor (const [option, data] of Object.entries(allArgOptions)) {\n\t\tsubsections[data.docsSection].flags.push({\n\t\t\tdescription: data.description,\n\t\t\tflag: option,\n\t\t\ttype: data.type,\n\t\t});\n\t}\n\n\treturn [core, optional, optOut, offline];\n}\n\nfunction logHelpTextSection(section: HelpTextSection): void {\n\tconsole.log(\" \");\n\n\tconsole.log(chalk.black.bgGreenBright(section.sectionHeading));\n\n\tfor (const subsection of section.subsections) {\n\t\tif (subsection.warning) {\n\t\t\tconsole.log(chalk.yellow(subsection.warning));\n\t\t}\n\n\t\tif (subsection.subheading) {\n\t\t\tconsole.log(chalk.green(subsection.subheading));\n\t\t}\n\n\t\tfor (const { description, flag, type } of subsection.flags) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.cyan(\n\t\t\t\t\t`\n --${flag}${\n\t\ttype !== \"boolean\" ? ` (${chalk.cyanBright(type)})` : \"\"\n\t}: ${description}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":"AAAA,OAAO,WAAW;AAElB,SAAS,qBAAqB;AAiBvB,SAAS,YAAY,WAA2B;AACtD,QAAM,mBAAmB,uBAAuB;AAEhD,aAAW,OAAO,WAAW;AAC5B,YAAQ,IAAI,GAAG;AACf,YAAQ,IAAI,GAAG;AAAA,EAChB;AAEA,UAAQ;AAAA,IACP,MAAM;AAAA,MACL;AAAA;AAAA;AAAA;AAAA,IAID;AAAA,EACD;AAEA,aAAW,WAAW,kBAAkB;AACvC,uBAAmB,OAAO;AAE1B,YAAQ,IAAI;AAAA,EACb;AACD;AAEA,SAAS,yBAA4C;AACpD,QAAM,OAAwB;AAAA,IAC7B,gBAAgB;AAAA,IAChB,aAAa;AAAA,MACZ;AAAA,QACC,OAAO,CAAC;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,QAAM,WAA4B;AAAA,IACjC,gBAAgB;AAAA,IAChB,aAAa;AAAA,MACZ;AAAA,QACC,OAAO,CAAC;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,QAAM,SAA0B;AAAA,IAC/B,gBAAgB;AAAA,IAChB,aAAa;AAAA,MACZ;AAAA,QACC,OAAO,CAAC;AAAA,QACR,SAAS;AAAA;AAAA;AAAA,MAGV;AAAA,MACA;AAAA,QACC,OAAO;AAAA,UACN;AAAA,YACC,aAAa;AAAA;AAAA,YAEb,MAAM;AAAA,YACN,MAAM;AAAA,UACP;AAAA,QACD;AAAA,QACA,YAAY;AAAA;AAAA;AAAA,MAGb;AAAA,MACA;AAAA,QACC,OAAO,CAAC;AAAA,QACR,YAAY;AAAA;AAAA;AAAA,MAGb;AAAA,IACD;AAAA,EACD;AAEA,QAAM,UAA2B;AAAA,IAChC,gBAAgB;AAAA,IAChB,aAAa;AAAA,MACZ;AAAA,QACC,OAAO,CAAC;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,QAAM,cAAc;AAAA,IACnB,MAAM,KAAK,YAAY,CAAC;AAAA,IACxB,SAAS,QAAQ,YAAY,CAAC;AAAA,IAC9B,WAAW,OAAO,YAAY,CAAC;AAAA,IAC/B,UAAU,SAAS,YAAY,CAAC;AAAA,IAChC,aAAa,OAAO,YAAY,CAAC;AAAA,IACjC,YAAY,OAAO,YAAY,CAAC;AAAA,EACjC;AAEA,aAAW,CAAC,QAAQ,IAAI,KAAK,OAAO,QAAQ,aAAa,GAAG;AAC3D,gBAAY,KAAK,WAAW,EAAE,MAAM,KAAK;AAAA,MACxC,aAAa,KAAK;AAAA,MAClB,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,IACZ,CAAC;AAAA,EACF;AAEA,SAAO,CAAC,MAAM,UAAU,QAAQ,OAAO;AACxC;AAEA,SAAS,mBAAmB,SAAgC;AAC3D,UAAQ,IAAI,GAAG;AAEf,UAAQ,IAAI,MAAM,MAAM,cAAc,QAAQ,cAAc,CAAC;AAE7D,aAAW,cAAc,QAAQ,aAAa;AAC7C,QAAI,WAAW,SAAS;AACvB,cAAQ,IAAI,MAAM,OAAO,WAAW,OAAO,CAAC;AAAA,IAC7C;AAEA,QAAI,WAAW,YAAY;AAC1B,cAAQ,IAAI,MAAM,MAAM,WAAW,UAAU,CAAC;AAAA,IAC/C;AAEA,eAAW,EAAE,aAAa,MAAM,KAAK,KAAK,WAAW,OAAO;AAC3D,cAAQ;AAAA,QACP,MAAM;AAAA,UACL;AAAA,MACC,IAAI,GACR,SAAS,YAAY,KAAK,MAAM,WAAW,IAAI,CAAC,MAAM,EACvD,KAAK,WAAW;AAAA,QACb;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
|
package/lib/bin/promptForMode.js
CHANGED
|
@@ -6,12 +6,6 @@ import * as process from "node:process";
|
|
|
6
6
|
import { logLine } from "../shared/cli/lines.js";
|
|
7
7
|
import { filterPromptCancel } from "../shared/prompts.js";
|
|
8
8
|
const allowedModes = ["create", "initialize", "migrate"];
|
|
9
|
-
function isMode(input) {
|
|
10
|
-
return allowedModes.includes(input);
|
|
11
|
-
}
|
|
12
|
-
function label(base, text) {
|
|
13
|
-
return `${chalk.bold(base)} ${text}`;
|
|
14
|
-
}
|
|
15
9
|
async function promptForMode(auto, input) {
|
|
16
10
|
if (auto && input !== "migrate") {
|
|
17
11
|
return {
|
|
@@ -101,6 +95,12 @@ async function promptForMode(auto, input) {
|
|
|
101
95
|
mode: "create"
|
|
102
96
|
};
|
|
103
97
|
}
|
|
98
|
+
function isMode(input) {
|
|
99
|
+
return allowedModes.includes(input);
|
|
100
|
+
}
|
|
101
|
+
function label(base, text) {
|
|
102
|
+
return `${chalk.bold(base)} ${text}`;
|
|
103
|
+
}
|
|
104
104
|
export {
|
|
105
105
|
promptForMode
|
|
106
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bin/promptForMode.ts"],"sourcesContent":["import * as prompts from \"@clack/prompts\";\nimport chalk from \"chalk\";\nimport * as fs from \"fs/promises\";\nimport path from \"node:path\";\nimport * as process from \"node:process\";\n\nimport { logLine } from \"../shared/cli/lines.js\";\nimport { filterPromptCancel } from \"../shared/prompts.js\";\nimport { Mode, PromptedOptions } from \"../shared/types.js\";\n\nconst allowedModes = [\"create\", \"initialize\", \"migrate\"] satisfies Mode[];\n\
|
|
1
|
+
{"version":3,"sources":["../../src/bin/promptForMode.ts"],"sourcesContent":["import * as prompts from \"@clack/prompts\";\nimport chalk from \"chalk\";\nimport * as fs from \"fs/promises\";\nimport path from \"node:path\";\nimport * as process from \"node:process\";\n\nimport { logLine } from \"../shared/cli/lines.js\";\nimport { filterPromptCancel } from \"../shared/prompts.js\";\nimport { Mode, PromptedOptions } from \"../shared/types.js\";\n\nconst allowedModes = [\"create\", \"initialize\", \"migrate\"] satisfies Mode[];\n\nexport interface PromptedMode {\n\tmode: Error | Mode | undefined;\n\toptions?: PromptedOptions;\n}\n\nexport async function promptForMode(\n\tauto: boolean,\n\tinput: boolean | string | undefined,\n): Promise<PromptedMode> {\n\tif (auto && input !== \"migrate\") {\n\t\treturn {\n\t\t\tmode: new Error(\"--auto can only be used with --mode migrate.\"),\n\t\t};\n\t}\n\n\tif (input) {\n\t\tif (!isMode(input)) {\n\t\t\treturn {\n\t\t\t\tmode: new Error(\n\t\t\t\t\t`Unknown --mode: ${input}. Allowed modes are: ${allowedModes.join(\n\t\t\t\t\t\t\", \",\n\t\t\t\t\t)}.`,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn { mode: input };\n\t}\n\n\tconst dir = await fs.readdir(\".\");\n\n\tif (dir.length === 0) {\n\t\tconst mode = filterPromptCancel(\n\t\t\t(await prompts.select({\n\t\t\t\tmessage: chalk.blue(\"How would you like to use the template?\"),\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: label(\n\t\t\t\t\t\t\t\"create\",\n\t\t\t\t\t\t\t\"a new repository in the current empty directory\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvalue: \"create-current\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: label(\"create\", \"a new repository in a new child directory\"),\n\t\t\t\t\t\tvalue: \"create-child\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})) as string,\n\t\t);\n\n\t\tconst directory = path.basename(process.cwd());\n\n\t\treturn {\n\t\t\tmode: \"create\",\n\t\t\t...(mode === \"create-current\" && {\n\t\t\t\toptions: {\n\t\t\t\t\tdirectory: \".\",\n\t\t\t\t\trepository: directory,\n\t\t\t\t},\n\t\t\t}),\n\t\t};\n\t}\n\n\tif (dir.includes(\".git\")) {\n\t\treturn {\n\t\t\tmode: filterPromptCancel(\n\t\t\t\t(await prompts.select({\n\t\t\t\t\tinitialValue: \"migrate\" as Mode,\n\t\t\t\t\tmessage: chalk.blue(\"How would you like to use the template?\"),\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: label(\"create\", \"a new repository in a child directory\"),\n\t\t\t\t\t\t\tvalue: \"create\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: label(\n\t\t\t\t\t\t\t\t\"initialize\",\n\t\t\t\t\t\t\t\t\"a freshly cloned repository in the current directory\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tvalue: \"initialize\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: label(\n\t\t\t\t\t\t\t\t\"migrate\",\n\t\t\t\t\t\t\t\t\"the existing repository in the current directory\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tvalue: \"migrate\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t})) as Mode | symbol,\n\t\t\t),\n\t\t};\n\t}\n\n\tlogLine();\n\tlogLine(\n\t\tchalk.gray(\n\t\t\t\"Defaulting to --mode create because the directory contains children and isn't a Git repository.\",\n\t\t),\n\t);\n\n\treturn {\n\t\tmode: \"create\",\n\t};\n}\n\nfunction isMode(input: boolean | string): input is Mode {\n\treturn allowedModes.includes(input as Mode);\n}\n\nfunction label(base: string, text: string) {\n\treturn `${chalk.bold(base)} ${text}`;\n}\n"],"mappings":"AAAA,YAAY,aAAa;AACzB,OAAO,WAAW;AAClB,YAAY,QAAQ;AACpB,OAAO,UAAU;AACjB,YAAY,aAAa;AAEzB,SAAS,eAAe;AACxB,SAAS,0BAA0B;AAGnC,MAAM,eAAe,CAAC,UAAU,cAAc,SAAS;AAOvD,eAAsB,cACrB,MACA,OACwB;AACxB,MAAI,QAAQ,UAAU,WAAW;AAChC,WAAO;AAAA,MACN,MAAM,IAAI,MAAM,8CAA8C;AAAA,IAC/D;AAAA,EACD;AAEA,MAAI,OAAO;AACV,QAAI,CAAC,OAAO,KAAK,GAAG;AACnB,aAAO;AAAA,QACN,MAAM,IAAI;AAAA,UACT,mBAAmB,KAAK,wBAAwB,aAAa;AAAA,YAC5D;AAAA,UACD,CAAC;AAAA,QACF;AAAA,MACD;AAAA,IACD;AAEA,WAAO,EAAE,MAAM,MAAM;AAAA,EACtB;AAEA,QAAM,MAAM,MAAM,GAAG,QAAQ,GAAG;AAEhC,MAAI,IAAI,WAAW,GAAG;AACrB,UAAM,OAAO;AAAA,MACX,MAAM,QAAQ,OAAO;AAAA,QACrB,SAAS,MAAM,KAAK,yCAAyC;AAAA,QAC7D,SAAS;AAAA,UACR;AAAA,YACC,OAAO;AAAA,cACN;AAAA,cACA;AAAA,YACD;AAAA,YACA,OAAO;AAAA,UACR;AAAA,UACA;AAAA,YACC,OAAO,MAAM,UAAU,2CAA2C;AAAA,YAClE,OAAO;AAAA,UACR;AAAA,QACD;AAAA,MACD,CAAC;AAAA,IACF;AAEA,UAAM,YAAY,KAAK,SAAS,QAAQ,IAAI,CAAC;AAE7C,WAAO;AAAA,MACN,MAAM;AAAA,MACN,GAAI,SAAS,oBAAoB;AAAA,QAChC,SAAS;AAAA,UACR,WAAW;AAAA,UACX,YAAY;AAAA,QACb;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,MAAI,IAAI,SAAS,MAAM,GAAG;AACzB,WAAO;AAAA,MACN,MAAM;AAAA,QACJ,MAAM,QAAQ,OAAO;AAAA,UACrB,cAAc;AAAA,UACd,SAAS,MAAM,KAAK,yCAAyC;AAAA,UAC7D,SAAS;AAAA,YACR;AAAA,cACC,OAAO,MAAM,UAAU,uCAAuC;AAAA,cAC9D,OAAO;AAAA,YACR;AAAA,YACA;AAAA,cACC,OAAO;AAAA,gBACN;AAAA,gBACA;AAAA,cACD;AAAA,cACA,OAAO;AAAA,YACR;AAAA,YACA;AAAA,cACC,OAAO;AAAA,gBACN;AAAA,gBACA;AAAA,cACD;AAAA,cACA,OAAO;AAAA,YACR;AAAA,UACD;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD;AAEA,UAAQ;AACR;AAAA,IACC,MAAM;AAAA,MACL;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN,MAAM;AAAA,EACP;AACD;AAEA,SAAS,OAAO,OAAwC;AACvD,SAAO,aAAa,SAAS,KAAa;AAC3C;AAEA,SAAS,MAAM,MAAc,MAAc;AAC1C,SAAO,GAAG,MAAM,KAAK,IAAI,CAAC,IAAI,IAAI;AACnC;","names":[]}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { $ } from "execa";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
withSpinner,
|
|
4
|
+
withSpinners
|
|
5
|
+
} from "../shared/cli/spinners.js";
|
|
3
6
|
import { createCleanupCommands } from "../shared/createCleanupCommands.js";
|
|
4
7
|
import { doesRepositoryExist } from "../shared/doesRepositoryExist.js";
|
|
8
|
+
import { isUsingCreateEngine } from "../shared/isUsingCreateEngine.js";
|
|
5
9
|
import { addToolAllContributors } from "../steps/addToolAllContributors.js";
|
|
6
10
|
import { clearLocalGitTags } from "../steps/clearLocalGitTags.js";
|
|
7
11
|
import { finalizeDependencies } from "../steps/finalizeDependencies.js";
|
|
8
12
|
import { initializeGitHubRepository } from "../steps/initializeGitHubRepository/index.js";
|
|
9
|
-
import { populateCSpellDictionary } from "../steps/populateCSpellDictionary.js";
|
|
10
13
|
import { runCleanup } from "../steps/runCleanup.js";
|
|
11
14
|
import { writeReadme } from "../steps/writeReadme/index.js";
|
|
12
15
|
import { writeStructure } from "../steps/writing/writeStructure.js";
|
|
@@ -18,11 +21,13 @@ async function createWithOptions({ github, options }) {
|
|
|
18
21
|
await writeStructure(options);
|
|
19
22
|
}
|
|
20
23
|
],
|
|
21
|
-
[
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
...isUsingCreateEngine() ? [] : [
|
|
25
|
+
[
|
|
26
|
+
"Writing README.md",
|
|
27
|
+
async () => {
|
|
28
|
+
await writeReadme(options);
|
|
29
|
+
}
|
|
30
|
+
]
|
|
26
31
|
]
|
|
27
32
|
]);
|
|
28
33
|
if (!options.excludeAllContributors && !options.skipAllContributorsApi) {
|
|
@@ -35,12 +40,6 @@ async function createWithOptions({ github, options }) {
|
|
|
35
40
|
"Installing packages",
|
|
36
41
|
async () => finalizeDependencies(options)
|
|
37
42
|
);
|
|
38
|
-
if (!options.excludeLintSpelling) {
|
|
39
|
-
await withSpinner(
|
|
40
|
-
"Populating CSpell dictionary",
|
|
41
|
-
populateCSpellDictionary
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
43
|
await runCleanup(createCleanupCommands(options.bin), options.mode);
|
|
45
44
|
}
|
|
46
45
|
await withSpinner("Clearing any local Git tags", clearLocalGitTags);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/create/createWithOptions.ts"],"sourcesContent":["import { $ } from \"execa\";\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/create/createWithOptions.ts"],"sourcesContent":["import { $ } from \"execa\";\n\nimport {\n\tLabeledSpinnerTask,\n\twithSpinner,\n\twithSpinners,\n} from \"../shared/cli/spinners.js\";\nimport { createCleanupCommands } from \"../shared/createCleanupCommands.js\";\nimport { doesRepositoryExist } from \"../shared/doesRepositoryExist.js\";\nimport { isUsingCreateEngine } from \"../shared/isUsingCreateEngine.js\";\nimport { GitHubAndOptions } from \"../shared/options/readOptions.js\";\nimport { addToolAllContributors } from \"../steps/addToolAllContributors.js\";\nimport { clearLocalGitTags } from \"../steps/clearLocalGitTags.js\";\nimport { finalizeDependencies } from \"../steps/finalizeDependencies.js\";\nimport { initializeGitHubRepository } from \"../steps/initializeGitHubRepository/index.js\";\nimport { runCleanup } from \"../steps/runCleanup.js\";\nimport { writeReadme } from \"../steps/writeReadme/index.js\";\nimport { writeStructure } from \"../steps/writing/writeStructure.js\";\n\nexport async function createWithOptions({ github, options }: GitHubAndOptions) {\n\tawait withSpinners(\"Creating repository structure\", [\n\t\t[\n\t\t\t\"Writing structure\",\n\t\t\tasync () => {\n\t\t\t\tawait writeStructure(options);\n\t\t\t},\n\t\t],\n\t\t...(isUsingCreateEngine()\n\t\t\t? []\n\t\t\t: [\n\t\t\t\t\t[\n\t\t\t\t\t\t\"Writing README.md\",\n\t\t\t\t\t\tasync () => {\n\t\t\t\t\t\t\tawait writeReadme(options);\n\t\t\t\t\t\t},\n\t\t\t\t\t] satisfies LabeledSpinnerTask<void>,\n\t\t\t\t]),\n\t]);\n\n\tif (!options.excludeAllContributors && !options.skipAllContributorsApi) {\n\t\tawait withSpinner(\"Adding contributors to table\", async () => {\n\t\t\tawait addToolAllContributors(github?.octokit, options);\n\t\t});\n\t}\n\n\tif (!options.skipInstall) {\n\t\tawait withSpinner(\"Installing packages\", async () =>\n\t\t\tfinalizeDependencies(options),\n\t\t);\n\n\t\tawait runCleanup(createCleanupCommands(options.bin), options.mode);\n\t}\n\n\tawait withSpinner(\"Clearing any local Git tags\", clearLocalGitTags);\n\n\tconst sendToGitHub =\n\t\tgithub && (await doesRepositoryExist(github.octokit, options));\n\n\tif (sendToGitHub) {\n\t\tawait withSpinner(\"Initializing GitHub repository\", async () => {\n\t\t\tawait $`git remote add origin https://github.com/${options.owner}/${options.repository}`;\n\t\t\tawait $`git add -A`;\n\t\t\tawait $`git commit --message ${\"feat: initialized repo ✨\"} --no-gpg-sign`;\n\t\t\tawait $`git push -u origin main --force`;\n\t\t\tawait initializeGitHubRepository(github.octokit, options);\n\t\t});\n\t}\n\n\treturn { sentToGitHub: sendToGitHub };\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAElB;AAAA,EAEC;AAAA,EACA;AAAA,OACM;AACP,SAAS,6BAA6B;AACtC,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AAEpC,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,kCAAkC;AAC3C,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAE/B,eAAsB,kBAAkB,EAAE,QAAQ,QAAQ,GAAqB;AAC9E,QAAM,aAAa,iCAAiC;AAAA,IACnD;AAAA,MACC;AAAA,MACA,YAAY;AACX,cAAM,eAAe,OAAO;AAAA,MAC7B;AAAA,IACD;AAAA,IACA,GAAI,oBAAoB,IACrB,CAAC,IACD;AAAA,MACA;AAAA,QACC;AAAA,QACA,YAAY;AACX,gBAAM,YAAY,OAAO;AAAA,QAC1B;AAAA,MACD;AAAA,IACD;AAAA,EACH,CAAC;AAED,MAAI,CAAC,QAAQ,0BAA0B,CAAC,QAAQ,wBAAwB;AACvE,UAAM,YAAY,gCAAgC,YAAY;AAC7D,YAAM,uBAAuB,QAAQ,SAAS,OAAO;AAAA,IACtD,CAAC;AAAA,EACF;AAEA,MAAI,CAAC,QAAQ,aAAa;AACzB,UAAM;AAAA,MAAY;AAAA,MAAuB,YACxC,qBAAqB,OAAO;AAAA,IAC7B;AAEA,UAAM,WAAW,sBAAsB,QAAQ,GAAG,GAAG,QAAQ,IAAI;AAAA,EAClE;AAEA,QAAM,YAAY,+BAA+B,iBAAiB;AAElE,QAAM,eACL,UAAW,MAAM,oBAAoB,OAAO,SAAS,OAAO;AAE7D,MAAI,cAAc;AACjB,UAAM,YAAY,kCAAkC,YAAY;AAC/D,YAAM,6CAA6C,QAAQ,KAAK,IAAI,QAAQ,UAAU;AACtF,YAAM;AACN,YAAM,yBAAyB,+BAA0B;AACzD,YAAM;AACN,YAAM,2BAA2B,OAAO,SAAS,OAAO;AAAA,IACzD,CAAC;AAAA,EACF;AAEA,SAAO,EAAE,cAAc,aAAa;AACrC;","names":[]}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,2 +1,47 @@
|
|
|
1
1
|
export { greet } from './greet.js';
|
|
2
|
+
export { blockAllContributors } from './next/blocks/blockAllContributors.js';
|
|
3
|
+
export { blockAreTheTypesWrong } from './next/blocks/blockAreTheTypesWrong.js';
|
|
4
|
+
export { blockContributingDocs } from './next/blocks/blockContributingDocs.js';
|
|
5
|
+
export { blockContributorCovenant } from './next/blocks/blockContributorCovenant.js';
|
|
6
|
+
export { blockCSpell } from './next/blocks/blockCSpell.js';
|
|
7
|
+
export { blockDevelopmentDocs } from './next/blocks/blockDevelopmentDocs.js';
|
|
8
|
+
export { blockESLint } from './next/blocks/blockESLint.js';
|
|
9
|
+
export { blockESLintComments } from './next/blocks/blockESLintComments.js';
|
|
10
|
+
export { blockESLintJSDoc } from './next/blocks/blockESLintJSDoc.js';
|
|
11
|
+
export { blockESLintJSONC } from './next/blocks/blockESLintJSONC.js';
|
|
12
|
+
export { blockESLintMarkdown } from './next/blocks/blockESLintMarkdown.js';
|
|
13
|
+
export { blockESLintMoreStyling } from './next/blocks/blockESLintMoreStyling.js';
|
|
14
|
+
export { blockESLintNode } from './next/blocks/blockESLintNode.js';
|
|
15
|
+
export { blockESLintPackageJson } from './next/blocks/blockESLintPackageJson.js';
|
|
16
|
+
export { blockESLintPerfectionist } from './next/blocks/blockESLintPerfectionist.js';
|
|
17
|
+
export { blockESLintRegexp } from './next/blocks/blockESLintRegexp.js';
|
|
18
|
+
export { blockESLintYML } from './next/blocks/blockESLintYML.js';
|
|
19
|
+
export { blockFunding } from './next/blocks/blockFunding.js';
|
|
20
|
+
export { blockGitHubActionsCI } from './next/blocks/blockGitHubActionsCI.js';
|
|
21
|
+
export { blockGitHubIssueTemplates } from './next/blocks/blockGitHubIssueTemplates.js';
|
|
22
|
+
export { blockGitHubPRTemplate } from './next/blocks/blockGitHubPRTemplate.js';
|
|
23
|
+
export { blockGitignore } from './next/blocks/blockGitignore.js';
|
|
24
|
+
export { blockKnip } from './next/blocks/blockKnip.js';
|
|
25
|
+
export { blockMarkdownlint } from './next/blocks/blockMarkdownlint.js';
|
|
26
|
+
export { blockMITLicense } from './next/blocks/blockMITLicense.js';
|
|
27
|
+
export { blockNvmrc } from './next/blocks/blockNvmrc.js';
|
|
28
|
+
export { blockPackageJson } from './next/blocks/blockPackageJson.js';
|
|
29
|
+
export { blockPnpmDedupe } from './next/blocks/blockPnpmDedupe.js';
|
|
30
|
+
export { blockPRCompliance } from './next/blocks/blockPRCompliance.js';
|
|
31
|
+
export { blockPrettier } from './next/blocks/blockPrettier.js';
|
|
32
|
+
export { blockPrettierPluginCurly } from './next/blocks/blockPrettierPluginCurly.js';
|
|
33
|
+
export { blockPrettierPluginPackageJson } from './next/blocks/blockPrettierPluginPackageJson.js';
|
|
34
|
+
export { blockPrettierPluginSh } from './next/blocks/blockPrettierPluginSh.js';
|
|
35
|
+
export { blockREADME } from './next/blocks/blockREADME.js';
|
|
36
|
+
export { blockReleaseIt } from './next/blocks/blockReleaseIt.js';
|
|
37
|
+
export { blockRenovate } from './next/blocks/blockRenovate.js';
|
|
38
|
+
export { blockSecurityDocs } from './next/blocks/blockSecurityDocs.js';
|
|
39
|
+
export { blockTemplatedBy } from './next/blocks/blockTemplatedBy.js';
|
|
40
|
+
export { blockTSup } from './next/blocks/blockTSup.js';
|
|
41
|
+
export { blockTypeScript } from './next/blocks/blockTypeScript.js';
|
|
42
|
+
export { blockVitest } from './next/blocks/blockVitest.js';
|
|
43
|
+
export { blockVSCode } from './next/blocks/blockVSCode.js';
|
|
44
|
+
export { default } from './next/template.js';
|
|
2
45
|
export { GreetOptions } from './types.js';
|
|
46
|
+
import 'create';
|
|
47
|
+
import 'zod';
|
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./greet.js\";\nexport * from \"./types.js\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./greet.js\";\n\n// If you're using create-typescript-app as a template, ignore these.\n// They're plumbing for the create engine. :)\nexport * from \"./next/blocks/index.js\";\nexport { default } from \"./next/template.js\";\n\nexport * from \"./types.js\";\n"],"mappings":"AAAA,cAAc;AAId,cAAc;AACd,SAAS,WAAAA,gBAAe;AAExB,cAAc;","names":["default"]}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import * as create from 'create';
|
|
2
|
+
import { BaseOptionsFor } from 'create';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
declare const base: create.Base<{
|
|
6
|
+
access: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"restricted">]>>;
|
|
7
|
+
author: z.ZodOptional<z.ZodString>;
|
|
8
|
+
bin: z.ZodOptional<z.ZodString>;
|
|
9
|
+
contributors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
10
|
+
avatar_url: z.ZodString;
|
|
11
|
+
contributions: z.ZodArray<z.ZodString, "many">;
|
|
12
|
+
login: z.ZodString;
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
profile: z.ZodString;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
name: string;
|
|
17
|
+
avatar_url: string;
|
|
18
|
+
contributions: string[];
|
|
19
|
+
login: string;
|
|
20
|
+
profile: string;
|
|
21
|
+
}, {
|
|
22
|
+
name: string;
|
|
23
|
+
avatar_url: string;
|
|
24
|
+
contributions: string[];
|
|
25
|
+
login: string;
|
|
26
|
+
profile: string;
|
|
27
|
+
}>, "many">>;
|
|
28
|
+
description: z.ZodString;
|
|
29
|
+
documentation: z.ZodOptional<z.ZodString>;
|
|
30
|
+
email: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
31
|
+
github: z.ZodString;
|
|
32
|
+
npm: z.ZodString;
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
34
|
+
github: string;
|
|
35
|
+
npm: string;
|
|
36
|
+
}, {
|
|
37
|
+
github: string;
|
|
38
|
+
npm: string;
|
|
39
|
+
}>]>, {
|
|
40
|
+
github: string;
|
|
41
|
+
npm: string;
|
|
42
|
+
}, string | {
|
|
43
|
+
github: string;
|
|
44
|
+
npm: string;
|
|
45
|
+
}>;
|
|
46
|
+
funding: z.ZodOptional<z.ZodString>;
|
|
47
|
+
guide: z.ZodOptional<z.ZodObject<{
|
|
48
|
+
href: z.ZodString;
|
|
49
|
+
title: z.ZodString;
|
|
50
|
+
}, "strip", z.ZodTypeAny, {
|
|
51
|
+
href: string;
|
|
52
|
+
title: string;
|
|
53
|
+
}, {
|
|
54
|
+
href: string;
|
|
55
|
+
title: string;
|
|
56
|
+
}>>;
|
|
57
|
+
hideTemplatedBy: z.ZodOptional<z.ZodBoolean>;
|
|
58
|
+
keywords: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
59
|
+
login: z.ZodOptional<z.ZodString>;
|
|
60
|
+
logo: z.ZodOptional<z.ZodObject<{
|
|
61
|
+
alt: z.ZodString;
|
|
62
|
+
src: z.ZodString;
|
|
63
|
+
}, "strip", z.ZodTypeAny, {
|
|
64
|
+
alt: string;
|
|
65
|
+
src: string;
|
|
66
|
+
}, {
|
|
67
|
+
alt: string;
|
|
68
|
+
src: string;
|
|
69
|
+
}>>;
|
|
70
|
+
node: z.ZodOptional<z.ZodObject<{
|
|
71
|
+
minimum: z.ZodString;
|
|
72
|
+
pinned: z.ZodOptional<z.ZodString>;
|
|
73
|
+
}, "strip", z.ZodTypeAny, {
|
|
74
|
+
minimum: string;
|
|
75
|
+
pinned?: string | undefined;
|
|
76
|
+
}, {
|
|
77
|
+
minimum: string;
|
|
78
|
+
pinned?: string | undefined;
|
|
79
|
+
}>>;
|
|
80
|
+
owner: z.ZodString;
|
|
81
|
+
packageData: z.ZodOptional<z.ZodObject<{
|
|
82
|
+
dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
83
|
+
devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
84
|
+
scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
85
|
+
}, "strip", z.ZodTypeAny, {
|
|
86
|
+
dependencies?: Record<string, string> | undefined;
|
|
87
|
+
devDependencies?: Record<string, string> | undefined;
|
|
88
|
+
scripts?: Record<string, string> | undefined;
|
|
89
|
+
}, {
|
|
90
|
+
dependencies?: Record<string, string> | undefined;
|
|
91
|
+
devDependencies?: Record<string, string> | undefined;
|
|
92
|
+
scripts?: Record<string, string> | undefined;
|
|
93
|
+
}>>;
|
|
94
|
+
preserveGeneratedFrom: z.ZodOptional<z.ZodBoolean>;
|
|
95
|
+
repository: z.ZodString;
|
|
96
|
+
title: z.ZodString;
|
|
97
|
+
version: z.ZodOptional<z.ZodString>;
|
|
98
|
+
}>;
|
|
99
|
+
type BaseOptions = BaseOptionsFor<typeof base>;
|
|
100
|
+
|
|
101
|
+
export { type BaseOptions, base };
|
package/lib/next/base.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { createBase } from "create";
|
|
2
|
+
import { execaCommand } from "execa";
|
|
3
|
+
import gitRemoteOriginUrl from "git-remote-origin-url";
|
|
4
|
+
import gitUrlParse from "git-url-parse";
|
|
5
|
+
import { inputFromFile } from "input-from-file";
|
|
6
|
+
import { inputFromFileJSON } from "input-from-file-json";
|
|
7
|
+
import lazyValue from "lazy-value";
|
|
8
|
+
import npmUser from "npm-user";
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { parsePackageAuthor } from "../shared/options/createOptionDefaults/parsePackageAuthor.js";
|
|
11
|
+
import { readDefaultsFromReadme } from "../shared/options/createOptionDefaults/readDefaultsFromReadme.js";
|
|
12
|
+
import { readEmails } from "../shared/options/createOptionDefaults/readEmails.js";
|
|
13
|
+
import { readFunding } from "../shared/options/createOptionDefaults/readFunding.js";
|
|
14
|
+
import { readGuide } from "../shared/options/createOptionDefaults/readGuide.js";
|
|
15
|
+
import { readPackageData } from "../shared/packages.js";
|
|
16
|
+
import { tryCatchLazyValueAsync } from "../shared/tryCatchLazyValueAsync.js";
|
|
17
|
+
import { swallowError } from "./utils/swallowError.js";
|
|
18
|
+
const base = createBase({
|
|
19
|
+
options: {
|
|
20
|
+
access: z.union([z.literal("public"), z.literal("restricted")]).optional(),
|
|
21
|
+
author: z.string().optional(),
|
|
22
|
+
bin: z.string().optional(),
|
|
23
|
+
contributors: z.array(
|
|
24
|
+
z.object({
|
|
25
|
+
avatar_url: z.string(),
|
|
26
|
+
contributions: z.array(z.string()),
|
|
27
|
+
login: z.string(),
|
|
28
|
+
name: z.string(),
|
|
29
|
+
profile: z.string()
|
|
30
|
+
})
|
|
31
|
+
).optional(),
|
|
32
|
+
description: z.string(),
|
|
33
|
+
documentation: z.string().optional(),
|
|
34
|
+
email: z.union([
|
|
35
|
+
z.string(),
|
|
36
|
+
z.object({
|
|
37
|
+
github: z.string(),
|
|
38
|
+
npm: z.string()
|
|
39
|
+
})
|
|
40
|
+
]).transform(
|
|
41
|
+
(email) => typeof email === "string" ? { github: email, npm: email } : email
|
|
42
|
+
),
|
|
43
|
+
funding: z.string().optional(),
|
|
44
|
+
guide: z.object({
|
|
45
|
+
href: z.string(),
|
|
46
|
+
title: z.string()
|
|
47
|
+
}).optional(),
|
|
48
|
+
hideTemplatedBy: z.boolean().optional(),
|
|
49
|
+
keywords: z.array(z.string()).optional(),
|
|
50
|
+
login: z.string().optional(),
|
|
51
|
+
logo: z.object({
|
|
52
|
+
alt: z.string(),
|
|
53
|
+
src: z.string()
|
|
54
|
+
}).optional(),
|
|
55
|
+
node: z.object({
|
|
56
|
+
minimum: z.string(),
|
|
57
|
+
pinned: z.string().optional()
|
|
58
|
+
}).optional(),
|
|
59
|
+
owner: z.string(),
|
|
60
|
+
packageData: z.object({
|
|
61
|
+
dependencies: z.record(z.string(), z.string()).optional(),
|
|
62
|
+
devDependencies: z.record(z.string(), z.string()).optional(),
|
|
63
|
+
scripts: z.record(z.string(), z.string()).optional()
|
|
64
|
+
}).optional(),
|
|
65
|
+
preserveGeneratedFrom: z.boolean().optional(),
|
|
66
|
+
repository: z.string(),
|
|
67
|
+
title: z.string(),
|
|
68
|
+
version: z.string().optional()
|
|
69
|
+
},
|
|
70
|
+
produce({ options, take }) {
|
|
71
|
+
const allContributors = lazyValue(async () => {
|
|
72
|
+
const contributions = await take(inputFromFileJSON, {
|
|
73
|
+
filePath: ".all-contributorsrc"
|
|
74
|
+
});
|
|
75
|
+
return contributions.contributors;
|
|
76
|
+
});
|
|
77
|
+
const documentation = lazyValue(
|
|
78
|
+
async () => swallowError(
|
|
79
|
+
await take(inputFromFile, {
|
|
80
|
+
filePath: ".github/DEVELOPMENT.md"
|
|
81
|
+
})
|
|
82
|
+
)
|
|
83
|
+
);
|
|
84
|
+
const nvmrc = lazyValue(
|
|
85
|
+
async () => await take(inputFromFile, {
|
|
86
|
+
filePath: ".nvmrc"
|
|
87
|
+
})
|
|
88
|
+
);
|
|
89
|
+
const gitDefaults = tryCatchLazyValueAsync(
|
|
90
|
+
async () => gitUrlParse(await gitRemoteOriginUrl())
|
|
91
|
+
);
|
|
92
|
+
const npmDefaults = tryCatchLazyValueAsync(async () => {
|
|
93
|
+
const whoami = (await execaCommand(`npm whoami`)).stdout;
|
|
94
|
+
return whoami ? await npmUser(whoami) : void 0;
|
|
95
|
+
});
|
|
96
|
+
const packageData = lazyValue(readPackageData);
|
|
97
|
+
const packageAuthor = lazyValue(
|
|
98
|
+
async () => parsePackageAuthor(await packageData())
|
|
99
|
+
);
|
|
100
|
+
const author = lazyValue(
|
|
101
|
+
async () => ((await packageAuthor()).author ?? (await npmDefaults())?.name ?? options.owner)?.toLowerCase()
|
|
102
|
+
);
|
|
103
|
+
const node = lazyValue(async () => {
|
|
104
|
+
const { engines } = await packageData();
|
|
105
|
+
return {
|
|
106
|
+
minimum: (engines?.node && /[\d+.]+/.exec(engines.node))?.[0] ?? "18.3.0",
|
|
107
|
+
pinned: swallowError(await nvmrc()) ?? "20.18.0"
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
const version = lazyValue(async () => (await packageData()).version);
|
|
111
|
+
return {
|
|
112
|
+
author,
|
|
113
|
+
bin: async () => (await packageData()).bin,
|
|
114
|
+
contributors: allContributors,
|
|
115
|
+
description: async () => (await packageData()).description,
|
|
116
|
+
documentation,
|
|
117
|
+
email: async () => readEmails(npmDefaults, packageAuthor),
|
|
118
|
+
funding: readFunding,
|
|
119
|
+
guide: readGuide,
|
|
120
|
+
login: author,
|
|
121
|
+
node,
|
|
122
|
+
owner: async () => (await gitDefaults())?.organization ?? (await packageAuthor()).author,
|
|
123
|
+
packageData: async () => {
|
|
124
|
+
const original = await packageData();
|
|
125
|
+
return {
|
|
126
|
+
dependencies: original.dependencies,
|
|
127
|
+
devDependencies: original.devDependencies,
|
|
128
|
+
scripts: original.scripts
|
|
129
|
+
};
|
|
130
|
+
},
|
|
131
|
+
repository: async () => options.repository ?? (await gitDefaults())?.name ?? (await packageData()).name,
|
|
132
|
+
...readDefaultsFromReadme(),
|
|
133
|
+
version
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
export {
|
|
138
|
+
base
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/next/base.ts"],"sourcesContent":["import { BaseOptionsFor, createBase } from \"create\";\nimport { execaCommand } from \"execa\";\nimport gitRemoteOriginUrl from \"git-remote-origin-url\";\nimport gitUrlParse from \"git-url-parse\";\nimport { inputFromFile } from \"input-from-file\";\nimport { inputFromFileJSON } from \"input-from-file-json\";\nimport lazyValue from \"lazy-value\";\nimport npmUser from \"npm-user\";\nimport { z } from \"zod\";\n\nimport { parsePackageAuthor } from \"../shared/options/createOptionDefaults/parsePackageAuthor.js\";\nimport { readDefaultsFromReadme } from \"../shared/options/createOptionDefaults/readDefaultsFromReadme.js\";\nimport { readEmails } from \"../shared/options/createOptionDefaults/readEmails.js\";\nimport { readFunding } from \"../shared/options/createOptionDefaults/readFunding.js\";\nimport { readGuide } from \"../shared/options/createOptionDefaults/readGuide.js\";\nimport { readPackageData } from \"../shared/packages.js\";\nimport { tryCatchLazyValueAsync } from \"../shared/tryCatchLazyValueAsync.js\";\nimport { AllContributorsData } from \"../shared/types.js\";\nimport { swallowError } from \"./utils/swallowError.js\";\n\nexport const base = createBase({\n\toptions: {\n\t\taccess: z.union([z.literal(\"public\"), z.literal(\"restricted\")]).optional(),\n\t\tauthor: z.string().optional(),\n\t\tbin: z.string().optional(),\n\t\tcontributors: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tavatar_url: z.string(),\n\t\t\t\t\tcontributions: z.array(z.string()),\n\t\t\t\t\tlogin: z.string(),\n\t\t\t\t\tname: z.string(),\n\t\t\t\t\tprofile: z.string(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t\tdescription: z.string(),\n\t\tdocumentation: z.string().optional(),\n\t\temail: z\n\t\t\t.union([\n\t\t\t\tz.string(),\n\t\t\t\tz.object({\n\t\t\t\t\tgithub: z.string(),\n\t\t\t\t\tnpm: z.string(),\n\t\t\t\t}),\n\t\t\t])\n\t\t\t.transform((email) =>\n\t\t\t\ttypeof email === \"string\" ? { github: email, npm: email } : email,\n\t\t\t),\n\t\tfunding: z.string().optional(),\n\t\tguide: z\n\t\t\t.object({\n\t\t\t\thref: z.string(),\n\t\t\t\ttitle: z.string(),\n\t\t\t})\n\t\t\t.optional(),\n\t\thideTemplatedBy: z.boolean().optional(),\n\t\tkeywords: z.array(z.string()).optional(),\n\t\tlogin: z.string().optional(),\n\t\tlogo: z\n\t\t\t.object({\n\t\t\t\talt: z.string(),\n\t\t\t\tsrc: z.string(),\n\t\t\t})\n\t\t\t.optional(),\n\t\tnode: z\n\t\t\t.object({\n\t\t\t\tminimum: z.string(),\n\t\t\t\tpinned: z.string().optional(),\n\t\t\t})\n\t\t\t.optional(),\n\t\towner: z.string(),\n\t\tpackageData: z\n\t\t\t.object({\n\t\t\t\tdependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tdevDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tscripts: z.record(z.string(), z.string()).optional(),\n\t\t\t})\n\t\t\t.optional(),\n\t\tpreserveGeneratedFrom: z.boolean().optional(),\n\t\trepository: z.string(),\n\t\ttitle: z.string(),\n\t\tversion: z.string().optional(),\n\t},\n\tproduce({ options, take }) {\n\t\tconst allContributors = lazyValue(async () => {\n\t\t\tconst contributions = (await take(inputFromFileJSON, {\n\t\t\t\tfilePath: \".all-contributorsrc\",\n\t\t\t})) as AllContributorsData;\n\n\t\t\treturn contributions.contributors;\n\t\t});\n\n\t\tconst documentation = lazyValue(async () =>\n\t\t\tswallowError(\n\t\t\t\tawait take(inputFromFile, {\n\t\t\t\t\tfilePath: \".github/DEVELOPMENT.md\",\n\t\t\t\t}),\n\t\t\t),\n\t\t);\n\n\t\tconst nvmrc = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait take(inputFromFile, {\n\t\t\t\t\tfilePath: \".nvmrc\",\n\t\t\t\t}),\n\t\t);\n\n\t\t// TODO: Make these all use take\n\n\t\tconst gitDefaults = tryCatchLazyValueAsync(async () =>\n\t\t\tgitUrlParse(await gitRemoteOriginUrl()),\n\t\t);\n\n\t\tconst npmDefaults = tryCatchLazyValueAsync(async () => {\n\t\t\tconst whoami = (await execaCommand(`npm whoami`)).stdout;\n\t\t\treturn whoami ? await npmUser(whoami) : undefined;\n\t\t});\n\n\t\tconst packageData = lazyValue(readPackageData);\n\t\tconst packageAuthor = lazyValue(async () =>\n\t\t\tparsePackageAuthor(await packageData()),\n\t\t);\n\n\t\tconst author = lazyValue(async () =>\n\t\t\t(\n\t\t\t\t(await packageAuthor()).author ??\n\t\t\t\t(await npmDefaults())?.name ??\n\t\t\t\toptions.owner\n\t\t\t)?.toLowerCase(),\n\t\t);\n\n\t\tconst node = lazyValue(async () => {\n\t\t\tconst { engines } = await packageData();\n\n\t\t\treturn {\n\t\t\t\tminimum:\n\t\t\t\t\t(engines?.node && /[\\d+.]+/.exec(engines.node))?.[0] ?? \"18.3.0\",\n\t\t\t\tpinned: swallowError(await nvmrc()) ?? \"20.18.0\",\n\t\t\t};\n\t\t});\n\n\t\tconst version = lazyValue(async () => (await packageData()).version);\n\n\t\treturn {\n\t\t\tauthor,\n\t\t\tbin: async () => (await packageData()).bin,\n\t\t\tcontributors: allContributors,\n\t\t\tdescription: async () => (await packageData()).description,\n\t\t\tdocumentation,\n\t\t\temail: async () => readEmails(npmDefaults, packageAuthor),\n\t\t\tfunding: readFunding,\n\t\t\tguide: readGuide,\n\t\t\tlogin: author,\n\t\t\tnode,\n\t\t\towner: async () =>\n\t\t\t\t(await gitDefaults())?.organization ?? (await packageAuthor()).author,\n\t\t\tpackageData: async () => {\n\t\t\t\tconst original = await packageData();\n\n\t\t\t\treturn {\n\t\t\t\t\tdependencies: original.dependencies,\n\t\t\t\t\tdevDependencies: original.devDependencies,\n\t\t\t\t\tscripts: original.scripts,\n\t\t\t\t};\n\t\t\t},\n\t\t\trepository: async () =>\n\t\t\t\toptions.repository ??\n\t\t\t\t(await gitDefaults())?.name ??\n\t\t\t\t(await packageData()).name,\n\t\t\t...readDefaultsFromReadme(),\n\t\t\tversion,\n\t\t};\n\t},\n});\n\nexport type BaseOptions = BaseOptionsFor<typeof base>;\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as create from 'create';
|
|
2
|
+
|
|
3
|
+
declare const blockAllContributors: create.BlockWithoutAddons<{
|
|
4
|
+
description: string;
|
|
5
|
+
email: {
|
|
6
|
+
github: string;
|
|
7
|
+
npm: string;
|
|
8
|
+
};
|
|
9
|
+
title: string;
|
|
10
|
+
owner: string;
|
|
11
|
+
repository: string;
|
|
12
|
+
access?: "public" | "restricted" | undefined;
|
|
13
|
+
author?: string | undefined;
|
|
14
|
+
bin?: string | undefined;
|
|
15
|
+
login?: string | undefined;
|
|
16
|
+
contributors?: {
|
|
17
|
+
name: string;
|
|
18
|
+
avatar_url: string;
|
|
19
|
+
contributions: string[];
|
|
20
|
+
login: string;
|
|
21
|
+
profile: string;
|
|
22
|
+
}[] | undefined;
|
|
23
|
+
documentation?: string | undefined;
|
|
24
|
+
funding?: string | undefined;
|
|
25
|
+
guide?: {
|
|
26
|
+
href: string;
|
|
27
|
+
title: string;
|
|
28
|
+
} | undefined;
|
|
29
|
+
hideTemplatedBy?: boolean | undefined;
|
|
30
|
+
keywords?: string[] | undefined;
|
|
31
|
+
logo?: {
|
|
32
|
+
alt: string;
|
|
33
|
+
src: string;
|
|
34
|
+
} | undefined;
|
|
35
|
+
node?: {
|
|
36
|
+
minimum: string;
|
|
37
|
+
pinned?: string | undefined;
|
|
38
|
+
} | undefined;
|
|
39
|
+
packageData?: {
|
|
40
|
+
dependencies?: Record<string, string> | undefined;
|
|
41
|
+
devDependencies?: Record<string, string> | undefined;
|
|
42
|
+
scripts?: Record<string, string> | undefined;
|
|
43
|
+
} | undefined;
|
|
44
|
+
preserveGeneratedFrom?: boolean | undefined;
|
|
45
|
+
version?: string | undefined;
|
|
46
|
+
}>;
|
|
47
|
+
|
|
48
|
+
export { blockAllContributors };
|