create-typescript-app 1.76.0 → 1.77.1
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/promptForMode.js +2 -1
- package/lib/bin/promptForMode.js.map +1 -1
- package/lib/create/createWithOptions.d.ts +3 -4
- package/lib/create/createWithOptions.js +19 -12
- 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/initialize/initializeWithOptions.d.ts +3 -4
- package/lib/initialize/initializeWithOptions.js +4 -4
- package/lib/initialize/initializeWithOptions.js.map +1 -1
- package/lib/migrate/migrateWithOptions.d.ts +3 -4
- package/lib/migrate/migrateWithOptions.js +8 -5
- package/lib/migrate/migrateWithOptions.js.map +1 -1
- package/lib/next/base.d.ts +101 -0
- package/lib/next/base.js +144 -0
- package/lib/next/base.js.map +1 -0
- package/lib/next/blocks/blockAllContributors.d.ts +48 -0
- package/lib/next/blocks/blockAllContributors.js +60 -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 +72 -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 +127 -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 +162 -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 +92 -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 +242 -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/blockExampleFiles.d.ts +50 -0
- package/lib/next/blocks/blockExampleFiles.js +25 -0
- package/lib/next/blocks/blockExampleFiles.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 +133 -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 +57 -0
- package/lib/next/blocks/blockPackageJson.js +92 -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 +46 -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 +114 -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 +131 -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/blockRepositoryBranchProtection.d.ts +50 -0
- package/lib/next/blocks/blockRepositoryBranchProtection.js +49 -0
- package/lib/next/blocks/blockRepositoryBranchProtection.js.map +1 -0
- package/lib/next/blocks/blockRepositoryLabels.d.ts +48 -0
- package/lib/next/blocks/blockRepositoryLabels.js +18 -0
- package/lib/next/blocks/blockRepositoryLabels.js.map +1 -0
- package/lib/next/blocks/blockRepositorySettings.d.ts +48 -0
- package/lib/next/blocks/blockRepositorySettings.js +42 -0
- package/lib/next/blocks/blockRepositorySettings.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 +95 -0
- package/lib/next/blocks/blockTSup.js.map +1 -0
- package/lib/next/blocks/blockTemplatedBy.d.ts +48 -0
- package/lib/next/blocks/blockTemplatedBy.js +30 -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 +137 -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 +91 -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 +217 -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/blocks/phases.d.ts +9 -0
- package/lib/next/blocks/phases.js +11 -0
- package/lib/next/blocks/phases.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 +53 -0
- package/lib/next/presetMinimal.js.map +1 -0
- package/lib/next/runCreateEnginePreset.d.ts +7 -0
- package/lib/next/runCreateEnginePreset.js +20 -0
- package/lib/next/runCreateEnginePreset.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/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/isUsingCreateEngine.d.ts +3 -0
- package/lib/shared/isUsingCreateEngine.js +7 -0
- package/lib/shared/isUsingCreateEngine.js.map +1 -0
- 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.d.ts +3 -4
- package/lib/shared/options/ensureRepositoryExists.js +9 -8
- package/lib/shared/options/ensureRepositoryExists.js.map +1 -1
- package/lib/shared/options/readOptions.d.ts +5 -6
- package/lib/shared/options/readOptions.js +7 -4
- package/lib/shared/options/readOptions.js.map +1 -1
- package/lib/shared/types.d.ts +7 -0
- package/lib/steps/addOwnerAsAllContributor.js.map +1 -1
- package/lib/steps/clearUnnecessaryFiles.js +0 -1
- package/lib/steps/clearUnnecessaryFiles.js.map +1 -1
- package/lib/steps/finalizeDependencies.js +5 -7
- package/lib/steps/finalizeDependencies.js.map +1 -1
- package/lib/steps/initializeGitHubRepository/index.js +7 -2
- package/lib/steps/initializeGitHubRepository/index.js.map +1 -1
- package/lib/steps/initializeGitHubRepository/outcomeLabels.d.ts +13 -0
- package/lib/steps/initializeGitHubRepository/{labels/outcomeLabels.js → outcomeLabels.js} +4 -1
- package/lib/steps/initializeGitHubRepository/outcomeLabels.js.map +1 -0
- package/lib/steps/removeSetupScripts.js +9 -3
- package/lib/steps/removeSetupScripts.js.map +1 -1
- package/lib/steps/uninstallPackages.js +14 -5
- package/lib/steps/uninstallPackages.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 +1 -3
- 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 +31 -16
- 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 +3 -1
- package/lib/steps/writing/creation/dotGitHub/createMultiWorkflowFile.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 +48 -1
- package/lib/steps/writing/creation/index.js.map +1 -1
- package/lib/steps/writing/creation/rootFiles.js +4 -14
- package/lib/steps/writing/creation/rootFiles.js.map +1 -1
- package/lib/steps/writing/creation/writeAllContributorsRC.js +1 -9
- package/lib/steps/writing/creation/writeAllContributorsRC.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 +35 -28
- 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/lib/shared/options/getGitHub.d.ts +0 -9
- package/lib/shared/options/getGitHub.js +0 -17
- package/lib/shared/options/getGitHub.js.map +0 -1
- package/lib/steps/detectExistingContributors.d.ts +0 -7
- package/lib/steps/detectExistingContributors.js +0 -19
- package/lib/steps/detectExistingContributors.js.map +0 -1
- package/lib/steps/initializeGitHubRepository/labels/getExistingEquivalentLabels.d.ts +0 -8
- package/lib/steps/initializeGitHubRepository/labels/getExistingEquivalentLabels.js +0 -14
- package/lib/steps/initializeGitHubRepository/labels/getExistingEquivalentLabels.js.map +0 -1
- package/lib/steps/initializeGitHubRepository/labels/initializeRepositoryLabels.d.ts +0 -8
- package/lib/steps/initializeGitHubRepository/labels/initializeRepositoryLabels.js +0 -63
- package/lib/steps/initializeGitHubRepository/labels/initializeRepositoryLabels.js.map +0 -1
- package/lib/steps/initializeGitHubRepository/labels/outcomeLabels.d.ts +0 -7
- package/lib/steps/initializeGitHubRepository/labels/outcomeLabels.js.map +0 -1
|
@@ -6,18 +6,10 @@ async function writeAllContributorsRC(options) {
|
|
|
6
6
|
);
|
|
7
7
|
return await formatJson({
|
|
8
8
|
badgeTemplate: ' <a href="#contributors" target="_blank"><img alt="\u{1F46A} All Contributors: <%= contributors.length %>" src="https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-<%= contributors.length %>-21bb42.svg" /></a>',
|
|
9
|
-
commit: false,
|
|
10
|
-
commitConvention: "angular",
|
|
11
|
-
commitType: "docs",
|
|
12
9
|
contributors: existing?.contributors ?? [],
|
|
13
|
-
contributorsPerLine: 7,
|
|
14
10
|
contributorsSortAlphabetically: true,
|
|
15
|
-
files: ["README.md"],
|
|
16
|
-
imageSize: 100,
|
|
17
11
|
projectName: options.repository,
|
|
18
|
-
projectOwner: options.owner
|
|
19
|
-
repoHost: "https://github.com",
|
|
20
|
-
repoType: "github"
|
|
12
|
+
projectOwner: options.owner
|
|
21
13
|
});
|
|
22
14
|
}
|
|
23
15
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/steps/writing/creation/writeAllContributorsRC.ts"],"sourcesContent":["import { readFileSafeAsJson } from \"../../../shared/readFileSafeAsJson.js\";\nimport { AllContributorsData, Options } from \"../../../shared/types.js\";\nimport { formatJson } from \"./formatters/formatJson.js\";\n\nexport async function writeAllContributorsRC(options: Options) {\n\tconst existing = (await readFileSafeAsJson(\n\t\t\".all-contributorsrc\",\n\t)) as AllContributorsData | null;\n\n\treturn await formatJson({\n\t\tbadgeTemplate:\n\t\t\t'\t<a href=\"#contributors\" target=\"_blank\"><img alt=\"👪 All Contributors: <%= contributors.length %>\" src=\"https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-<%= contributors.length %>-21bb42.svg\" /></a>',\n\t\
|
|
1
|
+
{"version":3,"sources":["../../../../src/steps/writing/creation/writeAllContributorsRC.ts"],"sourcesContent":["import { readFileSafeAsJson } from \"../../../shared/readFileSafeAsJson.js\";\nimport { AllContributorsData, Options } from \"../../../shared/types.js\";\nimport { formatJson } from \"./formatters/formatJson.js\";\n\nexport async function writeAllContributorsRC(options: Options) {\n\tconst existing = (await readFileSafeAsJson(\n\t\t\".all-contributorsrc\",\n\t)) as AllContributorsData | null;\n\n\treturn await formatJson({\n\t\tbadgeTemplate:\n\t\t\t'\t<a href=\"#contributors\" target=\"_blank\"><img alt=\"👪 All Contributors: <%= contributors.length %>\" src=\"https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-<%= contributors.length %>-21bb42.svg\" /></a>',\n\t\tcontributors: existing?.contributors ?? [],\n\t\tcontributorsSortAlphabetically: true,\n\t\tprojectName: options.repository,\n\t\tprojectOwner: options.owner,\n\t});\n}\n"],"mappings":"AAAA,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAE3B,eAAsB,uBAAuB,SAAkB;AAC9D,QAAM,WAAY,MAAM;AAAA,IACvB;AAAA,EACD;AAEA,SAAO,MAAM,WAAW;AAAA,IACvB,eACC;AAAA,IACD,cAAc,UAAU,gBAAgB,CAAC;AAAA,IACzC,gCAAgC;AAAA,IAChC,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,EACvB,CAAC;AACF;","names":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { sortPackageJson } from "sort-package-json";
|
|
1
2
|
import { readFileSafeAsJson } from "../../../shared/readFileSafeAsJson.js";
|
|
2
3
|
import { formatJson } from "./formatters/formatJson.js";
|
|
3
4
|
const devDependenciesToRemove = [
|
|
@@ -30,73 +31,79 @@ async function writePackageJson(options) {
|
|
|
30
31
|
const existingPackageJson = await readFileSafeAsJson(
|
|
31
32
|
"./package.json"
|
|
32
33
|
) ?? {};
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
mocha: void 0,
|
|
49
|
-
prettierConfig: void 0,
|
|
50
|
-
types: void 0,
|
|
51
|
-
// The rest of the fields are ones we know from our template
|
|
52
|
-
engines: {
|
|
53
|
-
node: ">=18.3.0"
|
|
54
|
-
},
|
|
55
|
-
files: [
|
|
56
|
-
options.bin?.replace(/^\.\//, ""),
|
|
57
|
-
"lib/",
|
|
58
|
-
"package.json",
|
|
59
|
-
"LICENSE.md",
|
|
60
|
-
"README.md"
|
|
61
|
-
].filter(Boolean),
|
|
62
|
-
license: "MIT",
|
|
63
|
-
"lint-staged": {
|
|
64
|
-
"*": "prettier --ignore-unknown --write"
|
|
65
|
-
},
|
|
66
|
-
main: "./lib/index.js",
|
|
67
|
-
name: options.repository,
|
|
68
|
-
publishConfig: {
|
|
69
|
-
provenance: true
|
|
70
|
-
},
|
|
71
|
-
repository: {
|
|
72
|
-
type: "git",
|
|
73
|
-
url: `https://github.com/${options.owner}/${options.repository}`
|
|
74
|
-
},
|
|
75
|
-
scripts: {
|
|
76
|
-
...existingPackageJson.scripts,
|
|
77
|
-
...!options.excludeBuild && {
|
|
78
|
-
build: "tsup"
|
|
34
|
+
return sortPackageJson(
|
|
35
|
+
await formatJson({
|
|
36
|
+
// If we didn't already have a version, set it to 0.0.0
|
|
37
|
+
version: "0.0.0",
|
|
38
|
+
// To start, copy over all existing package fields (e.g. "dependencies")
|
|
39
|
+
...existingPackageJson,
|
|
40
|
+
author: { email: options.email.npm, name: options.author },
|
|
41
|
+
bin: options.bin,
|
|
42
|
+
description: options.description,
|
|
43
|
+
keywords: options.keywords?.length ? options.keywords.flatMap((keyword) => keyword.split(/ /)) : void 0,
|
|
44
|
+
// We copy all existing dev dependencies except those we know are not used anymore
|
|
45
|
+
devDependencies: {
|
|
46
|
+
...copyDevDependencies(existingPackageJson),
|
|
47
|
+
// prettier is a special case of being switched to a devDependency
|
|
48
|
+
prettier: existingPackageJson.dependencies?.prettier
|
|
79
49
|
},
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
50
|
+
// Remove fields we know we don't want, such as old or redundant configs
|
|
51
|
+
eslintConfig: void 0,
|
|
52
|
+
husky: void 0,
|
|
53
|
+
jest: void 0,
|
|
54
|
+
mocha: void 0,
|
|
55
|
+
prettierConfig: void 0,
|
|
56
|
+
types: void 0,
|
|
57
|
+
// The rest of the fields are ones we know from our template
|
|
58
|
+
engines: {
|
|
59
|
+
node: ">=18.3.0"
|
|
84
60
|
},
|
|
85
|
-
|
|
86
|
-
|
|
61
|
+
files: [
|
|
62
|
+
options.bin?.replace(/^\.\//, ""),
|
|
63
|
+
"lib/",
|
|
64
|
+
"package.json",
|
|
65
|
+
"LICENSE.md",
|
|
66
|
+
"README.md"
|
|
67
|
+
].filter(Boolean).sort(),
|
|
68
|
+
license: "MIT",
|
|
69
|
+
"lint-staged": {
|
|
70
|
+
"*": "prettier --ignore-unknown --write"
|
|
87
71
|
},
|
|
88
|
-
|
|
89
|
-
|
|
72
|
+
main: "./lib/index.js",
|
|
73
|
+
name: options.repository,
|
|
74
|
+
publishConfig: {
|
|
75
|
+
provenance: true
|
|
90
76
|
},
|
|
91
|
-
|
|
92
|
-
|
|
77
|
+
repository: {
|
|
78
|
+
type: "git",
|
|
79
|
+
url: `https://github.com/${options.owner}/${options.repository}`
|
|
93
80
|
},
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
81
|
+
scripts: {
|
|
82
|
+
...existingPackageJson.scripts,
|
|
83
|
+
...!options.excludeBuild && {
|
|
84
|
+
build: "tsup"
|
|
85
|
+
},
|
|
86
|
+
format: "prettier .",
|
|
87
|
+
lint: "eslint . --max-warnings 0",
|
|
88
|
+
...!options.excludeLintKnip && {
|
|
89
|
+
"lint:knip": "knip"
|
|
90
|
+
},
|
|
91
|
+
...!options.excludeLintMd && {
|
|
92
|
+
"lint:md": 'markdownlint "**/*.md" ".github/**/*.md" --rules sentences-per-line'
|
|
93
|
+
},
|
|
94
|
+
...!options.excludeLintPackages && {
|
|
95
|
+
"lint:packages": "pnpm dedupe --check"
|
|
96
|
+
},
|
|
97
|
+
...!options.excludeLintSpelling && {
|
|
98
|
+
"lint:spelling": 'cspell "**" ".github/**/*"'
|
|
99
|
+
},
|
|
100
|
+
prepare: "husky",
|
|
101
|
+
...!options.excludeTests && { test: "vitest" },
|
|
102
|
+
tsc: "tsc"
|
|
103
|
+
},
|
|
104
|
+
type: "module"
|
|
105
|
+
})
|
|
106
|
+
);
|
|
100
107
|
}
|
|
101
108
|
function copyDevDependencies(existingPackageJson) {
|
|
102
109
|
const devDependencies = "devDependencies" in existingPackageJson ? existingPackageJson.devDependencies : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/steps/writing/creation/writePackageJson.ts"],"sourcesContent":["import { readFileSafeAsJson } from \"../../../shared/readFileSafeAsJson.js\";\nimport { Options, PartialPackageData } from \"../../../shared/types.js\";\nimport { formatJson } from \"./formatters/formatJson.js\";\n\nconst devDependenciesToRemove = [\n\t\"@babel/core\",\n\t\"@babel/preset-env\",\n\t\"@babel/preset-react\",\n\t\"@babel/preset-typescript\",\n\t\"@swc/jest\",\n\t\"@vitest/coverage-istanbul\",\n\t\"ava\",\n\t\"babel-jest\",\n\t\"commitlint\",\n\t\"cson-parser\",\n\t\"esbuild\",\n\t\"eslint-config-prettier\",\n\t\"eslint-plugin-import\",\n\t\"eslint-plugin-jest\",\n\t\"eslint-plugin-prettier\",\n\t\"eslint-plugin-simple-import-sort\",\n\t\"eslint-plugin-typescript-sort-keys\",\n\t\"jasmine\",\n\t\"jest\",\n\t\"mocha\",\n\t\"npm-run-all\",\n\t\"pnpm-deduplicate\",\n\t\"pretty-quick\",\n\t\"ts-jest\",\n];\n\nexport async function writePackageJson(options: Options) {\n\tconst existingPackageJson =\n\t\t((await readFileSafeAsJson(\n\t\t\t\"./package.json\",\n\t\t)) as null | PartialPackageData) ?? {};\n\n\treturn
|
|
1
|
+
{"version":3,"sources":["../../../../src/steps/writing/creation/writePackageJson.ts"],"sourcesContent":["import { sortPackageJson } from \"sort-package-json\";\n\nimport { readFileSafeAsJson } from \"../../../shared/readFileSafeAsJson.js\";\nimport { Options, PartialPackageData } from \"../../../shared/types.js\";\nimport { formatJson } from \"./formatters/formatJson.js\";\n\nconst devDependenciesToRemove = [\n\t\"@babel/core\",\n\t\"@babel/preset-env\",\n\t\"@babel/preset-react\",\n\t\"@babel/preset-typescript\",\n\t\"@swc/jest\",\n\t\"@vitest/coverage-istanbul\",\n\t\"ava\",\n\t\"babel-jest\",\n\t\"commitlint\",\n\t\"cson-parser\",\n\t\"esbuild\",\n\t\"eslint-config-prettier\",\n\t\"eslint-plugin-import\",\n\t\"eslint-plugin-jest\",\n\t\"eslint-plugin-prettier\",\n\t\"eslint-plugin-simple-import-sort\",\n\t\"eslint-plugin-typescript-sort-keys\",\n\t\"jasmine\",\n\t\"jest\",\n\t\"mocha\",\n\t\"npm-run-all\",\n\t\"pnpm-deduplicate\",\n\t\"pretty-quick\",\n\t\"ts-jest\",\n];\n\nexport async function writePackageJson(options: Options) {\n\tconst existingPackageJson =\n\t\t((await readFileSafeAsJson(\n\t\t\t\"./package.json\",\n\t\t)) as null | PartialPackageData) ?? {};\n\n\treturn sortPackageJson(\n\t\tawait formatJson({\n\t\t\t// If we didn't already have a version, set it to 0.0.0\n\t\t\tversion: \"0.0.0\",\n\n\t\t\t// To start, copy over all existing package fields (e.g. \"dependencies\")\n\t\t\t...existingPackageJson,\n\n\t\t\tauthor: { email: options.email.npm, name: options.author },\n\t\t\tbin: options.bin,\n\t\t\tdescription: options.description,\n\t\t\tkeywords: options.keywords?.length\n\t\t\t\t? options.keywords.flatMap((keyword) => keyword.split(/ /))\n\t\t\t\t: undefined,\n\n\t\t\t// We copy all existing dev dependencies except those we know are not used anymore\n\t\t\tdevDependencies: {\n\t\t\t\t...copyDevDependencies(existingPackageJson),\n\t\t\t\t// prettier is a special case of being switched to a devDependency\n\t\t\t\tprettier: existingPackageJson.dependencies?.prettier,\n\t\t\t},\n\n\t\t\t// Remove fields we know we don't want, such as old or redundant configs\n\t\t\teslintConfig: undefined,\n\t\t\thusky: undefined,\n\t\t\tjest: undefined,\n\t\t\tmocha: undefined,\n\t\t\tprettierConfig: undefined,\n\t\t\ttypes: undefined,\n\n\t\t\t// The rest of the fields are ones we know from our template\n\t\t\tengines: {\n\t\t\t\tnode: \">=18.3.0\",\n\t\t\t},\n\t\t\tfiles: [\n\t\t\t\toptions.bin?.replace(/^\\.\\//, \"\"),\n\t\t\t\t\"lib/\",\n\t\t\t\t\"package.json\",\n\t\t\t\t\"LICENSE.md\",\n\t\t\t\t\"README.md\",\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.sort(),\n\t\t\tlicense: \"MIT\",\n\t\t\t\"lint-staged\": {\n\t\t\t\t\"*\": \"prettier --ignore-unknown --write\",\n\t\t\t},\n\t\t\tmain: \"./lib/index.js\",\n\t\t\tname: options.repository,\n\t\t\tpublishConfig: {\n\t\t\t\tprovenance: true,\n\t\t\t},\n\t\t\trepository: {\n\t\t\t\ttype: \"git\",\n\t\t\t\turl: `https://github.com/${options.owner}/${options.repository}`,\n\t\t\t},\n\t\t\tscripts: {\n\t\t\t\t...existingPackageJson.scripts,\n\t\t\t\t...(!options.excludeBuild && {\n\t\t\t\t\tbuild: \"tsup\",\n\t\t\t\t}),\n\t\t\t\tformat: \"prettier .\",\n\t\t\t\tlint: \"eslint . --max-warnings 0\",\n\t\t\t\t...(!options.excludeLintKnip && {\n\t\t\t\t\t\"lint:knip\": \"knip\",\n\t\t\t\t}),\n\t\t\t\t...(!options.excludeLintMd && {\n\t\t\t\t\t\"lint:md\":\n\t\t\t\t\t\t'markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line',\n\t\t\t\t}),\n\t\t\t\t...(!options.excludeLintPackages && {\n\t\t\t\t\t\"lint:packages\": \"pnpm dedupe --check\",\n\t\t\t\t}),\n\t\t\t\t...(!options.excludeLintSpelling && {\n\t\t\t\t\t\"lint:spelling\": 'cspell \"**\" \".github/**/*\"',\n\t\t\t\t}),\n\t\t\t\tprepare: \"husky\",\n\t\t\t\t...(!options.excludeTests && { test: \"vitest\" }),\n\t\t\t\ttsc: \"tsc\",\n\t\t\t},\n\t\t\ttype: \"module\",\n\t\t}),\n\t);\n}\n\nfunction copyDevDependencies(existingPackageJson: object) {\n\tconst devDependencies =\n\t\t\"devDependencies\" in existingPackageJson\n\t\t\t? (existingPackageJson.devDependencies as Record<string, string>)\n\t\t\t: {};\n\n\tfor (const devDependencyToRemove of devDependenciesToRemove) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tdelete devDependencies[devDependencyToRemove];\n\t}\n\n\treturn devDependencies;\n}\n"],"mappings":"AAAA,SAAS,uBAAuB;AAEhC,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAE3B,MAAM,0BAA0B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,eAAsB,iBAAiB,SAAkB;AACxD,QAAM,sBACH,MAAM;AAAA,IACP;AAAA,EACD,KAAoC,CAAC;AAEtC,SAAO;AAAA,IACN,MAAM,WAAW;AAAA;AAAA,MAEhB,SAAS;AAAA;AAAA,MAGT,GAAG;AAAA,MAEH,QAAQ,EAAE,OAAO,QAAQ,MAAM,KAAK,MAAM,QAAQ,OAAO;AAAA,MACzD,KAAK,QAAQ;AAAA,MACb,aAAa,QAAQ;AAAA,MACrB,UAAU,QAAQ,UAAU,SACzB,QAAQ,SAAS,QAAQ,CAAC,YAAY,QAAQ,MAAM,GAAG,CAAC,IACxD;AAAA;AAAA,MAGH,iBAAiB;AAAA,QAChB,GAAG,oBAAoB,mBAAmB;AAAA;AAAA,QAE1C,UAAU,oBAAoB,cAAc;AAAA,MAC7C;AAAA;AAAA,MAGA,cAAc;AAAA,MACd,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,OAAO;AAAA;AAAA,MAGP,SAAS;AAAA,QACR,MAAM;AAAA,MACP;AAAA,MACA,OAAO;AAAA,QACN,QAAQ,KAAK,QAAQ,SAAS,EAAE;AAAA,QAChC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD,EACE,OAAO,OAAO,EACd,KAAK;AAAA,MACP,SAAS;AAAA,MACT,eAAe;AAAA,QACd,KAAK;AAAA,MACN;AAAA,MACA,MAAM;AAAA,MACN,MAAM,QAAQ;AAAA,MACd,eAAe;AAAA,QACd,YAAY;AAAA,MACb;AAAA,MACA,YAAY;AAAA,QACX,MAAM;AAAA,QACN,KAAK,sBAAsB,QAAQ,KAAK,IAAI,QAAQ,UAAU;AAAA,MAC/D;AAAA,MACA,SAAS;AAAA,QACR,GAAG,oBAAoB;AAAA,QACvB,GAAI,CAAC,QAAQ,gBAAgB;AAAA,UAC5B,OAAO;AAAA,QACR;AAAA,QACA,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,GAAI,CAAC,QAAQ,mBAAmB;AAAA,UAC/B,aAAa;AAAA,QACd;AAAA,QACA,GAAI,CAAC,QAAQ,iBAAiB;AAAA,UAC7B,WACC;AAAA,QACF;AAAA,QACA,GAAI,CAAC,QAAQ,uBAAuB;AAAA,UACnC,iBAAiB;AAAA,QAClB;AAAA,QACA,GAAI,CAAC,QAAQ,uBAAuB;AAAA,UACnC,iBAAiB;AAAA,QAClB;AAAA,QACA,SAAS;AAAA,QACT,GAAI,CAAC,QAAQ,gBAAgB,EAAE,MAAM,SAAS;AAAA,QAC9C,KAAK;AAAA,MACN;AAAA,MACA,MAAM;AAAA,IACP,CAAC;AAAA,EACF;AACD;AAEA,SAAS,oBAAoB,qBAA6B;AACzD,QAAM,kBACL,qBAAqB,sBACjB,oBAAoB,kBACrB,CAAC;AAEL,aAAW,yBAAyB,yBAAyB;AAE5D,WAAO,gBAAgB,qBAAqB;AAAA,EAC7C;AAEA,SAAO;AACR;","names":[]}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
+
import { applyFilesToSystem, createWritingFileSystem } from "create";
|
|
1
2
|
import { $ } from "execa";
|
|
3
|
+
import { isUsingCreateEngine } from "../../shared/isUsingCreateEngine.js";
|
|
2
4
|
import { createStructure } from "./creation/index.js";
|
|
3
5
|
import { writeStructureWorker } from "./writeStructureWorker.js";
|
|
4
6
|
async function writeStructure(options) {
|
|
5
|
-
|
|
7
|
+
const usingCreateEngine = isUsingCreateEngine();
|
|
8
|
+
const structure = await createStructure(options, usingCreateEngine);
|
|
9
|
+
if (usingCreateEngine) {
|
|
10
|
+
await applyFilesToSystem(structure, createWritingFileSystem(), ".");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
await writeStructureWorker(structure, ".");
|
|
6
14
|
try {
|
|
7
15
|
await $`chmod ug+x .husky/pre-commit`;
|
|
8
16
|
} catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/steps/writing/writeStructure.ts"],"sourcesContent":["import { $ } from \"execa\";\n\nimport { Options } from \"../../shared/types.js\";\nimport { createStructure } from \"./creation/index.js\";\nimport { writeStructureWorker } from \"./writeStructureWorker.js\";\n\nexport async function writeStructure(options: Options) {\n\
|
|
1
|
+
{"version":3,"sources":["../../../src/steps/writing/writeStructure.ts"],"sourcesContent":["import { applyFilesToSystem, createWritingFileSystem } from \"create\";\nimport { $ } from \"execa\";\n\nimport { isUsingCreateEngine } from \"../../shared/isUsingCreateEngine.js\";\nimport { Options } from \"../../shared/types.js\";\nimport { createStructure } from \"./creation/index.js\";\nimport { writeStructureWorker } from \"./writeStructureWorker.js\";\n\nexport async function writeStructure(options: Options) {\n\tconst usingCreateEngine = isUsingCreateEngine();\n\tconst structure = await createStructure(options, usingCreateEngine);\n\n\tif (usingCreateEngine) {\n\t\tawait applyFilesToSystem(structure, createWritingFileSystem(), \".\");\n\t\treturn;\n\t}\n\n\tawait writeStructureWorker(structure, \".\");\n\n\ttry {\n\t\t// https://github.com/JoshuaKGoldberg/create-typescript-app/issues/718\n\t\tawait $`chmod ug+x .husky/pre-commit`;\n\t} catch {\n\t\t// https://github.com/JoshuaKGoldberg/create-typescript-app/issues/1195\n\t}\n}\n"],"mappings":"AAAA,SAAS,oBAAoB,+BAA+B;AAC5D,SAAS,SAAS;AAElB,SAAS,2BAA2B;AAEpC,SAAS,uBAAuB;AAChC,SAAS,4BAA4B;AAErC,eAAsB,eAAe,SAAkB;AACtD,QAAM,oBAAoB,oBAAoB;AAC9C,QAAM,YAAY,MAAM,gBAAgB,SAAS,iBAAiB;AAElE,MAAI,mBAAmB;AACtB,UAAM,mBAAmB,WAAW,wBAAwB,GAAG,GAAG;AAClE;AAAA,EACD;AAEA,QAAM,qBAAqB,WAAW,GAAG;AAEzC,MAAI;AAEH,UAAM;AAAA,EACP,QAAQ;AAAA,EAER;AACD;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/steps/writing/writeStructureWorker.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\nimport * as path from \"path\";\nimport prettier from \"prettier\";\n\nimport { Structure } from \"./types.js\";\n\nexport async function writeStructureWorker(\n\tstructure: Structure,\n\tbasePath: string,\n) {\n\tawait fs.mkdir(basePath, { recursive: true });\n\n\tfor (const [fileName, contents] of Object.entries(structure)) {\n\t\tif (typeof contents === \"string\") {\n\t\t\tawait fs.writeFile(\n\t\t\t\tpath.join(basePath, fileName),\n\t\t\t\tawait format(fileName, contents),\n\t\t\t);\n\t\t} else {\n\t\t\tawait writeStructureWorker(contents, path.join(basePath, fileName));\n\t\t}\n\t}\n}\n\nasync function format(fileName: string, text: string) {\n\tconst parser = inferParser(fileName, text);\n\tif (!parser) {\n\t\treturn text;\n\t}\n\n\treturn await prettier.format(text, {\n\t\tparser,\n\t\tuseTabs: true,\n\t});\n}\n\nfunction inferParser(fileName: string, text: string) {\n\tif (text.startsWith(\"{\")) {\n\t\treturn \"json\";\n\t}\n\n\tswitch (fileName.split(\".\").at(-1)) {\n\t\tcase \"cjs\":\n\t\tcase \"js\":\n\t\t\treturn \"babel\";\n\t\tcase \"json\":\n\t\t\treturn \"json\";\n\t\tcase \"md\":\n\t\t\treturn \"markdown\";\n\t\tcase \"yml\":\n\t\t\treturn \"yaml\";\n\t}\n\n\treturn undefined;\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,OAAO,cAAc;AAIrB,eAAsB,qBACrB,WACA,UACC;AACD,QAAM,GAAG,MAAM,UAAU,EAAE,WAAW,KAAK,CAAC;AAE5C,aAAW,CAAC,UAAU,QAAQ,KAAK,OAAO,QAAQ,SAAS,GAAG;AAC7D,QAAI,OAAO,aAAa,UAAU;AACjC,YAAM,GAAG;AAAA,QACR,KAAK,KAAK,UAAU,QAAQ;AAAA,QAC5B,MAAM,OAAO,UAAU,QAAQ;AAAA,MAChC;AAAA,IACD,
|
|
1
|
+
{"version":3,"sources":["../../../src/steps/writing/writeStructureWorker.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\nimport * as path from \"path\";\nimport prettier from \"prettier\";\n\nimport { Structure } from \"./types.js\";\n\nexport async function writeStructureWorker(\n\tstructure: Structure,\n\tbasePath: string,\n) {\n\tawait fs.mkdir(basePath, { recursive: true });\n\n\tfor (const [fileName, contents] of Object.entries(structure)) {\n\t\tif (typeof contents === \"string\") {\n\t\t\tawait fs.writeFile(\n\t\t\t\tpath.join(basePath, fileName),\n\t\t\t\tawait format(fileName, contents),\n\t\t\t);\n\t\t} else if (contents) {\n\t\t\tawait writeStructureWorker(contents, path.join(basePath, fileName));\n\t\t}\n\t}\n}\n\nasync function format(fileName: string, text: string) {\n\tconst parser = inferParser(fileName, text);\n\tif (!parser) {\n\t\treturn text;\n\t}\n\n\treturn await prettier.format(text, {\n\t\tparser,\n\t\tuseTabs: true,\n\t});\n}\n\nfunction inferParser(fileName: string, text: string) {\n\tif (text.startsWith(\"{\")) {\n\t\treturn \"json\";\n\t}\n\n\tswitch (fileName.split(\".\").at(-1)) {\n\t\tcase \"cjs\":\n\t\tcase \"js\":\n\t\t\treturn \"babel\";\n\t\tcase \"json\":\n\t\t\treturn \"json\";\n\t\tcase \"md\":\n\t\t\treturn \"markdown\";\n\t\tcase \"yml\":\n\t\t\treturn \"yaml\";\n\t}\n\n\treturn undefined;\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,OAAO,cAAc;AAIrB,eAAsB,qBACrB,WACA,UACC;AACD,QAAM,GAAG,MAAM,UAAU,EAAE,WAAW,KAAK,CAAC;AAE5C,aAAW,CAAC,UAAU,QAAQ,KAAK,OAAO,QAAQ,SAAS,GAAG;AAC7D,QAAI,OAAO,aAAa,UAAU;AACjC,YAAM,GAAG;AAAA,QACR,KAAK,KAAK,UAAU,QAAQ;AAAA,QAC5B,MAAM,OAAO,UAAU,QAAQ;AAAA,MAChC;AAAA,IACD,WAAW,UAAU;AACpB,YAAM,qBAAqB,UAAU,KAAK,KAAK,UAAU,QAAQ,CAAC;AAAA,IACnE;AAAA,EACD;AACD;AAEA,eAAe,OAAO,UAAkB,MAAc;AACrD,QAAM,SAAS,YAAY,UAAU,IAAI;AACzC,MAAI,CAAC,QAAQ;AACZ,WAAO;AAAA,EACR;AAEA,SAAO,MAAM,SAAS,OAAO,MAAM;AAAA,IAClC;AAAA,IACA,SAAS;AAAA,EACV,CAAC;AACF;AAEA,SAAS,YAAY,UAAkB,MAAc;AACpD,MAAI,KAAK,WAAW,GAAG,GAAG;AACzB,WAAO;AAAA,EACR;AAEA,UAAQ,SAAS,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG;AAAA,IACnC,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,EACT;AAEA,SAAO;AACR;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-typescript-app",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling.
|
|
3
|
+
"version": "1.77.1",
|
|
4
|
+
"description": "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. ❤️🔥",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/JoshuaKGoldberg/create-typescript-app"
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"main": "./lib/index.js",
|
|
16
16
|
"bin": "./bin/index.js",
|
|
17
17
|
"files": [
|
|
18
|
+
"LICENSE.md",
|
|
19
|
+
"README.md",
|
|
18
20
|
"bin/index.js",
|
|
19
21
|
"lib/",
|
|
20
|
-
"package.json"
|
|
21
|
-
"LICENSE.md",
|
|
22
|
-
"README.md"
|
|
22
|
+
"package.json"
|
|
23
23
|
],
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "tsup",
|
|
@@ -42,65 +42,72 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@clack/prompts": "^0.8.2",
|
|
45
|
-
"
|
|
45
|
+
"@prettier/sync": "^0.5.2",
|
|
46
46
|
"chalk": "^5.3.0",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
47
|
+
"create": "0.1.0-alpha.7",
|
|
48
|
+
"execa": "^9.5.2",
|
|
49
49
|
"git-remote-origin-url": "^4.0.0",
|
|
50
50
|
"git-url-parse": "^16.0.0",
|
|
51
|
+
"input-from-file": "0.1.0-alpha.2",
|
|
52
|
+
"input-from-file-json": "0.1.0-alpha.2",
|
|
51
53
|
"js-yaml": "^4.1.0",
|
|
52
54
|
"lazy-value": "^3.0.0",
|
|
53
55
|
"npm-user": "^6.1.1",
|
|
54
56
|
"octokit": "^4.0.2",
|
|
57
|
+
"octokit-from-auth": "^0.3.0",
|
|
55
58
|
"parse-author": "^2.0.0",
|
|
56
|
-
"
|
|
57
|
-
"
|
|
59
|
+
"parse-package-name": "^1.0.0",
|
|
60
|
+
"populate-all-contributors-for-repository": "^0.1.2",
|
|
61
|
+
"prettier": "^3.4.2",
|
|
62
|
+
"replace-in-file": "^8.3.0",
|
|
58
63
|
"rimraf": "^6.0.1",
|
|
64
|
+
"set-github-repository-labels": "^0.1.0",
|
|
65
|
+
"sort-package-json": "^2.12.0",
|
|
59
66
|
"title-case": "^4.3.2",
|
|
60
|
-
"zod": "^3.
|
|
67
|
+
"zod": "^3.24.1",
|
|
61
68
|
"zod-validation-error": "^3.4.0"
|
|
62
69
|
},
|
|
63
70
|
"devDependencies": {
|
|
64
71
|
"@eslint-community/eslint-plugin-eslint-comments": "4.4.1",
|
|
65
|
-
"@eslint/js": "9.
|
|
72
|
+
"@eslint/js": "9.17.0",
|
|
66
73
|
"@octokit/request-error": "6.1.5",
|
|
67
74
|
"@release-it/conventional-changelog": "9.0.3",
|
|
68
75
|
"@types/eslint-plugin-markdown": "2.0.2",
|
|
69
|
-
"@types/eslint__js": "8.42.3",
|
|
70
76
|
"@types/git-url-parse": "9.0.3",
|
|
71
77
|
"@types/js-yaml": "4.0.9",
|
|
72
|
-
"@types/node": "22.10.
|
|
78
|
+
"@types/node": "22.10.2",
|
|
73
79
|
"@types/parse-author": "2.0.3",
|
|
74
80
|
"@vitest/coverage-v8": "2.1.8",
|
|
75
|
-
"@vitest/eslint-plugin": "1.1.
|
|
76
|
-
"
|
|
81
|
+
"@vitest/eslint-plugin": "1.1.18",
|
|
82
|
+
"all-contributors-cli": "6.26.1",
|
|
83
|
+
"c8": "10.1.3",
|
|
77
84
|
"console-fail-test": "0.5.0",
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"eslint
|
|
85
|
+
"create-testers": "0.1.0-alpha.7",
|
|
86
|
+
"cspell": "8.17.1",
|
|
87
|
+
"eslint": "9.17.0",
|
|
88
|
+
"eslint-plugin-jsdoc": "50.6.1",
|
|
81
89
|
"eslint-plugin-jsonc": "2.18.2",
|
|
82
90
|
"eslint-plugin-markdown": "5.1.0",
|
|
83
|
-
"eslint-plugin-n": "17.
|
|
84
|
-
"eslint-plugin-package-json": "0.
|
|
85
|
-
"eslint-plugin-perfectionist": "4.
|
|
91
|
+
"eslint-plugin-n": "17.15.0",
|
|
92
|
+
"eslint-plugin-package-json": "0.18.0",
|
|
93
|
+
"eslint-plugin-perfectionist": "4.3.0",
|
|
86
94
|
"eslint-plugin-regexp": "2.7.0",
|
|
87
95
|
"eslint-plugin-yml": "1.16.0",
|
|
88
96
|
"globby": "14.0.2",
|
|
89
97
|
"husky": "9.1.7",
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"markdownlint": "0.36.1",
|
|
98
|
+
"knip": "5.41.0",
|
|
99
|
+
"lint-staged": "15.2.11",
|
|
100
|
+
"markdownlint": "0.37.1",
|
|
94
101
|
"markdownlint-cli": "0.43.0",
|
|
95
102
|
"prettier-plugin-curly": "0.3.1",
|
|
96
103
|
"prettier-plugin-packagejson": "2.5.6",
|
|
97
104
|
"prettier-plugin-sh": "0.14.0",
|
|
98
105
|
"release-it": "17.10.0",
|
|
99
|
-
"sentences-per-line": "0.
|
|
106
|
+
"sentences-per-line": "0.3.0",
|
|
100
107
|
"tsup": "8.3.5",
|
|
101
108
|
"tsx": "4.19.2",
|
|
102
109
|
"typescript": "5.7.2",
|
|
103
|
-
"typescript-eslint": "8.
|
|
110
|
+
"typescript-eslint": "8.18.1",
|
|
104
111
|
"vitest": "2.1.8"
|
|
105
112
|
},
|
|
106
113
|
"engines": {
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import lazyValue from "lazy-value";
|
|
2
|
-
import { readFileSafe } from "../../readFileSafe.js";
|
|
3
|
-
function readDefaultsFromDevelopment() {
|
|
4
|
-
return {
|
|
5
|
-
guide: lazyValue(async () => {
|
|
6
|
-
const tag = /> .*guided walkthrough, see \[((?!\[).+)\]\((.+)\)/i.exec(
|
|
7
|
-
await readFileSafe(".github/DEVELOPMENT.md", "")
|
|
8
|
-
);
|
|
9
|
-
if (!tag) {
|
|
10
|
-
return void 0;
|
|
11
|
-
}
|
|
12
|
-
return {
|
|
13
|
-
href: tag[2],
|
|
14
|
-
title: tag[1]
|
|
15
|
-
};
|
|
16
|
-
})
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
export {
|
|
20
|
-
readDefaultsFromDevelopment
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=readDefaultsFromDevelopment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/shared/options/createOptionDefaults/readDefaultsFromDevelopment.ts"],"sourcesContent":["import lazyValue from \"lazy-value\";\n\nimport { readFileSafe } from \"../../readFileSafe.js\";\n\nexport function readDefaultsFromDevelopment() {\n\treturn {\n\t\tguide: lazyValue(async () => {\n\t\t\tconst tag = /> .*guided walkthrough, see \\[((?!\\[).+)\\]\\((.+)\\)/i.exec(\n\t\t\t\tawait readFileSafe(\".github/DEVELOPMENT.md\", \"\"),\n\t\t\t);\n\n\t\t\tif (!tag) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thref: tag[2],\n\t\t\t\ttitle: tag[1],\n\t\t\t};\n\t\t}),\n\t};\n}\n"],"mappings":"AAAA,OAAO,eAAe;AAEtB,SAAS,oBAAoB;AAEtB,SAAS,8BAA8B;AAC7C,SAAO;AAAA,IACN,OAAO,UAAU,YAAY;AAC5B,YAAM,MAAM,sDAAsD;AAAA,QACjE,MAAM,aAAa,0BAA0B,EAAE;AAAA,MAChD;AAEA,UAAI,CAAC,KAAK;AACT,eAAO;AAAA,MACR;AAEA,aAAO;AAAA,QACN,MAAM,IAAI,CAAC;AAAA,QACX,OAAO,IAAI,CAAC;AAAA,MACb;AAAA,IACD,CAAC;AAAA,EACF;AACD;","names":[]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { getGitHubAuthToken } from "get-github-auth-token";
|
|
2
|
-
import { Octokit } from "octokit";
|
|
3
|
-
async function getGitHub() {
|
|
4
|
-
const auth = await getGitHubAuthToken();
|
|
5
|
-
if (!auth.succeeded) {
|
|
6
|
-
throw new Error(
|
|
7
|
-
"Couldn't authenticate with GitHub. Either log in with `gh auth login` (https://cli.github.com) or set a GH_TOKEN environment variable.",
|
|
8
|
-
{ cause: auth.error }
|
|
9
|
-
);
|
|
10
|
-
}
|
|
11
|
-
const octokit = new Octokit({ auth: auth.token });
|
|
12
|
-
return { auth: auth.token, octokit };
|
|
13
|
-
}
|
|
14
|
-
export {
|
|
15
|
-
getGitHub
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=getGitHub.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/shared/options/getGitHub.ts"],"sourcesContent":["import { getGitHubAuthToken } from \"get-github-auth-token\";\nimport { Octokit } from \"octokit\";\n\nexport interface GitHub {\n\tauth: string;\n\toctokit: Octokit;\n}\n\nexport async function getGitHub(): Promise<GitHub | undefined> {\n\tconst auth = await getGitHubAuthToken();\n\n\tif (!auth.succeeded) {\n\t\tthrow new Error(\n\t\t\t\"Couldn't authenticate with GitHub. Either log in with `gh auth login` (https://cli.github.com) or set a GH_TOKEN environment variable.\",\n\t\t\t{ cause: auth.error },\n\t\t);\n\t}\n\n\tconst octokit = new Octokit({ auth: auth.token });\n\n\treturn { auth: auth.token, octokit };\n}\n"],"mappings":"AAAA,SAAS,0BAA0B;AACnC,SAAS,eAAe;AAOxB,eAAsB,YAAyC;AAC9D,QAAM,OAAO,MAAM,mBAAmB;AAEtC,MAAI,CAAC,KAAK,WAAW;AACpB,UAAM,IAAI;AAAA,MACT;AAAA,MACA,EAAE,OAAO,KAAK,MAAM;AAAA,IACrB;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;AAEhD,SAAO,EAAE,MAAM,KAAK,OAAO,QAAQ;AACpC;","names":[]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Options } from '../shared/types.js';
|
|
2
|
-
import 'zod';
|
|
3
|
-
import '../shared/codes.js';
|
|
4
|
-
|
|
5
|
-
declare function detectExistingContributors(auth: string | undefined, options: Pick<Options, "owner" | "repository">): Promise<void>;
|
|
6
|
-
|
|
7
|
-
export { detectExistingContributors };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { getAllContributorsForRepository } from "all-contributors-for-repository";
|
|
2
|
-
import { $ } from "execa";
|
|
3
|
-
async function detectExistingContributors(auth, options) {
|
|
4
|
-
const contributors = await getAllContributorsForRepository({
|
|
5
|
-
auth,
|
|
6
|
-
owner: options.owner,
|
|
7
|
-
repo: options.repository
|
|
8
|
-
});
|
|
9
|
-
for (const [contributor, contributions] of Object.entries(contributors)) {
|
|
10
|
-
const contributionTypes = Object.keys(contributions).join(",");
|
|
11
|
-
await $({
|
|
12
|
-
env: { PRIVATE_TOKEN: auth }
|
|
13
|
-
})`npx -y all-contributors-cli add ${contributor} ${contributionTypes}`;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export {
|
|
17
|
-
detectExistingContributors
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=detectExistingContributors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/steps/detectExistingContributors.ts"],"sourcesContent":["import { getAllContributorsForRepository } from \"all-contributors-for-repository\";\nimport { $ } from \"execa\";\n\nimport { Options } from \"../shared/types.js\";\n\nexport async function detectExistingContributors(\n\tauth: string | undefined,\n\toptions: Pick<Options, \"owner\" | \"repository\">,\n) {\n\tconst contributors = await getAllContributorsForRepository({\n\t\tauth,\n\t\towner: options.owner,\n\t\trepo: options.repository,\n\t});\n\n\tfor (const [contributor, contributions] of Object.entries(contributors)) {\n\t\tconst contributionTypes = Object.keys(contributions).join(\",\");\n\t\tawait $({\n\t\t\tenv: { PRIVATE_TOKEN: auth },\n\t\t})`npx -y all-contributors-cli add ${contributor} ${contributionTypes}`;\n\t}\n}\n"],"mappings":"AAAA,SAAS,uCAAuC;AAChD,SAAS,SAAS;AAIlB,eAAsB,2BACrB,MACA,SACC;AACD,QAAM,eAAe,MAAM,gCAAgC;AAAA,IAC1D;AAAA,IACA,OAAO,QAAQ;AAAA,IACf,MAAM,QAAQ;AAAA,EACf,CAAC;AAED,aAAW,CAAC,aAAa,aAAa,KAAK,OAAO,QAAQ,YAAY,GAAG;AACxE,UAAM,oBAAoB,OAAO,KAAK,aAAa,EAAE,KAAK,GAAG;AAC7D,UAAM,EAAE;AAAA,MACP,KAAK,EAAE,eAAe,KAAK;AAAA,IAC5B,CAAC,oCAAoC,WAAW,IAAI,iBAAiB;AAAA,EACtE;AACD;","names":[]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
interface GhLabelData {
|
|
2
|
-
color: string;
|
|
3
|
-
description: null | string;
|
|
4
|
-
name: string;
|
|
5
|
-
}
|
|
6
|
-
declare function getExistingEquivalentLabels(existingLabels: GhLabelData[], outcomeLabelName: string): GhLabelData[];
|
|
7
|
-
|
|
8
|
-
export { type GhLabelData, getExistingEquivalentLabels };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const aliases = /* @__PURE__ */ new Map([
|
|
2
|
-
["enhancement", "type: feature"],
|
|
3
|
-
["help wanted", "status: accepting prs"]
|
|
4
|
-
]);
|
|
5
|
-
function getExistingEquivalentLabels(existingLabels, outcomeLabelName) {
|
|
6
|
-
const outcomeTrimmed = outcomeLabelName.replace(/\w+: (\w+)/, "$1");
|
|
7
|
-
return existingLabels.filter(({ name: existingName }) => {
|
|
8
|
-
return existingName === outcomeLabelName || existingName === outcomeTrimmed || aliases.get(existingName) === outcomeLabelName || existingName.replace(/\w+: (\w+)/, "$1") === outcomeLabelName;
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
export {
|
|
12
|
-
getExistingEquivalentLabels
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=getExistingEquivalentLabels.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/steps/initializeGitHubRepository/labels/getExistingEquivalentLabels.ts"],"sourcesContent":["const aliases = new Map([\n\t[\"enhancement\", \"type: feature\"],\n\t[\"help wanted\", \"status: accepting prs\"],\n]);\n\nexport interface GhLabelData {\n\tcolor: string;\n\tdescription: null | string;\n\tname: string;\n}\n\nexport function getExistingEquivalentLabels(\n\texistingLabels: GhLabelData[],\n\toutcomeLabelName: string,\n) {\n\tconst outcomeTrimmed = outcomeLabelName.replace(/\\w+: (\\w+)/, \"$1\");\n\n\treturn existingLabels.filter(({ name: existingName }) => {\n\t\treturn (\n\t\t\texistingName === outcomeLabelName ||\n\t\t\texistingName === outcomeTrimmed ||\n\t\t\taliases.get(existingName) === outcomeLabelName ||\n\t\t\texistingName.replace(/\\w+: (\\w+)/, \"$1\") === outcomeLabelName\n\t\t);\n\t});\n}\n"],"mappings":"AAAA,MAAM,UAAU,oBAAI,IAAI;AAAA,EACvB,CAAC,eAAe,eAAe;AAAA,EAC/B,CAAC,eAAe,uBAAuB;AACxC,CAAC;AAQM,SAAS,4BACf,gBACA,kBACC;AACD,QAAM,iBAAiB,iBAAiB,QAAQ,cAAc,IAAI;AAElE,SAAO,eAAe,OAAO,CAAC,EAAE,MAAM,aAAa,MAAM;AACxD,WACC,iBAAiB,oBACjB,iBAAiB,kBACjB,QAAQ,IAAI,YAAY,MAAM,oBAC9B,aAAa,QAAQ,cAAc,IAAI,MAAM;AAAA,EAE/C,CAAC;AACF;","names":[]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Octokit } from 'octokit';
|
|
2
|
-
import { Options } from '../../../shared/types.js';
|
|
3
|
-
import 'zod';
|
|
4
|
-
import '../../../shared/codes.js';
|
|
5
|
-
|
|
6
|
-
declare function initializeRepositoryLabels(octokit: Octokit, options: Pick<Options, "owner" | "repository">): Promise<void>;
|
|
7
|
-
|
|
8
|
-
export { initializeRepositoryLabels };
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { getExistingEquivalentLabels } from "./getExistingEquivalentLabels.js";
|
|
2
|
-
import { outcomeLabels } from "./outcomeLabels.js";
|
|
3
|
-
async function initializeRepositoryLabels(octokit, options) {
|
|
4
|
-
const { data: existingLabels } = await octokit.request(
|
|
5
|
-
"GET /repos/{owner}/{repo}/labels",
|
|
6
|
-
{
|
|
7
|
-
headers: {
|
|
8
|
-
"X-GitHub-Api-Version": "2022-11-28"
|
|
9
|
-
},
|
|
10
|
-
owner: options.owner,
|
|
11
|
-
repo: options.repository
|
|
12
|
-
}
|
|
13
|
-
);
|
|
14
|
-
for (const outcome of outcomeLabels) {
|
|
15
|
-
const existingEquivalents = getExistingEquivalentLabels(
|
|
16
|
-
existingLabels,
|
|
17
|
-
outcome.name
|
|
18
|
-
);
|
|
19
|
-
if (!existingEquivalents.length) {
|
|
20
|
-
await octokit.request("POST /repos/{owner}/{repo}/labels", {
|
|
21
|
-
color: outcome.color.replace("#", ""),
|
|
22
|
-
description: outcome.description,
|
|
23
|
-
headers: {
|
|
24
|
-
"X-GitHub-Api-Version": "2022-11-28"
|
|
25
|
-
},
|
|
26
|
-
name: outcome.name,
|
|
27
|
-
owner: options.owner,
|
|
28
|
-
repo: options.repository
|
|
29
|
-
});
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
for (const existingEquivalent of existingEquivalents) {
|
|
33
|
-
if (existingEquivalent.name !== outcome.name && existingLabels.some((existing) => existing.name === outcome.name)) {
|
|
34
|
-
await octokit.request("DELETE /repos/{owner}/{repo}/labels/{name}", {
|
|
35
|
-
headers: {
|
|
36
|
-
"X-GitHub-Api-Version": "2022-11-28"
|
|
37
|
-
},
|
|
38
|
-
name: existingEquivalent.name,
|
|
39
|
-
owner: options.owner,
|
|
40
|
-
repo: options.repository
|
|
41
|
-
});
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
if (outcome.color !== existingEquivalent.color || outcome.description !== existingEquivalent.description || outcome.name !== existingEquivalent.name) {
|
|
45
|
-
await octokit.request("PATCH /repos/{owner}/{repo}/labels/{name}", {
|
|
46
|
-
color: outcome.color.replace("#", ""),
|
|
47
|
-
description: outcome.description,
|
|
48
|
-
headers: {
|
|
49
|
-
"X-GitHub-Api-Version": "2022-11-28"
|
|
50
|
-
},
|
|
51
|
-
name: existingEquivalent.name,
|
|
52
|
-
new_name: outcome.name,
|
|
53
|
-
owner: options.owner,
|
|
54
|
-
repo: options.repository
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
export {
|
|
61
|
-
initializeRepositoryLabels
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=initializeRepositoryLabels.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/steps/initializeGitHubRepository/labels/initializeRepositoryLabels.ts"],"sourcesContent":["import { Octokit } from \"octokit\";\n\nimport { Options } from \"../../../shared/types.js\";\nimport { getExistingEquivalentLabels } from \"./getExistingEquivalentLabels.js\";\nimport { outcomeLabels } from \"./outcomeLabels.js\";\n\nexport async function initializeRepositoryLabels(\n\toctokit: Octokit,\n\toptions: Pick<Options, \"owner\" | \"repository\">,\n) {\n\tconst { data: existingLabels } = await octokit.request(\n\t\t\"GET /repos/{owner}/{repo}/labels\",\n\t\t{\n\t\t\theaders: {\n\t\t\t\t\"X-GitHub-Api-Version\": \"2022-11-28\",\n\t\t\t},\n\t\t\towner: options.owner,\n\t\t\trepo: options.repository,\n\t\t},\n\t);\n\n\tfor (const outcome of outcomeLabels) {\n\t\tconst existingEquivalents = getExistingEquivalentLabels(\n\t\t\texistingLabels,\n\t\t\toutcome.name,\n\t\t);\n\n\t\t// Case: the repo has neither of the two label types\n\t\tif (!existingEquivalents.length) {\n\t\t\tawait octokit.request(\"POST /repos/{owner}/{repo}/labels\", {\n\t\t\t\tcolor: outcome.color.replace(\"#\", \"\"),\n\t\t\t\tdescription: outcome.description,\n\t\t\t\theaders: {\n\t\t\t\t\t\"X-GitHub-Api-Version\": \"2022-11-28\",\n\t\t\t\t},\n\t\t\t\tname: outcome.name,\n\t\t\t\towner: options.owner,\n\t\t\t\trepo: options.repository,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\tfor (const existingEquivalent of existingEquivalents) {\n\t\t\t// Case: the repo already has both prefixed and non-prefixed label name types\n\t\t\t// E.g. both \"area: documentation\" and \"documentation\"\n\t\t\tif (\n\t\t\t\texistingEquivalent.name !== outcome.name &&\n\t\t\t\texistingLabels.some((existing) => existing.name === outcome.name)\n\t\t\t) {\n\t\t\t\tawait octokit.request(\"DELETE /repos/{owner}/{repo}/labels/{name}\", {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"X-GitHub-Api-Version\": \"2022-11-28\",\n\t\t\t\t\t},\n\t\t\t\t\tname: existingEquivalent.name,\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\trepo: options.repository,\n\t\t\t\t});\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Case: the repo has one of the two label types, with >=1 different property\n\t\t\t// E.g. \"documentation\" and the same color and description\n\t\t\t// E.g. \"area: documentation\" but with a different color\n\t\t\tif (\n\t\t\t\toutcome.color !== existingEquivalent.color ||\n\t\t\t\toutcome.description !== existingEquivalent.description ||\n\t\t\t\toutcome.name !== existingEquivalent.name\n\t\t\t) {\n\t\t\t\tawait octokit.request(\"PATCH /repos/{owner}/{repo}/labels/{name}\", {\n\t\t\t\t\tcolor: outcome.color.replace(\"#\", \"\"),\n\t\t\t\t\tdescription: outcome.description,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"X-GitHub-Api-Version\": \"2022-11-28\",\n\t\t\t\t\t},\n\t\t\t\t\tname: existingEquivalent.name,\n\t\t\t\t\tnew_name: outcome.name,\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\trepo: options.repository,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"AAGA,SAAS,mCAAmC;AAC5C,SAAS,qBAAqB;AAE9B,eAAsB,2BACrB,SACA,SACC;AACD,QAAM,EAAE,MAAM,eAAe,IAAI,MAAM,QAAQ;AAAA,IAC9C;AAAA,IACA;AAAA,MACC,SAAS;AAAA,QACR,wBAAwB;AAAA,MACzB;AAAA,MACA,OAAO,QAAQ;AAAA,MACf,MAAM,QAAQ;AAAA,IACf;AAAA,EACD;AAEA,aAAW,WAAW,eAAe;AACpC,UAAM,sBAAsB;AAAA,MAC3B;AAAA,MACA,QAAQ;AAAA,IACT;AAGA,QAAI,CAAC,oBAAoB,QAAQ;AAChC,YAAM,QAAQ,QAAQ,qCAAqC;AAAA,QAC1D,OAAO,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,QACpC,aAAa,QAAQ;AAAA,QACrB,SAAS;AAAA,UACR,wBAAwB;AAAA,QACzB;AAAA,QACA,MAAM,QAAQ;AAAA,QACd,OAAO,QAAQ;AAAA,QACf,MAAM,QAAQ;AAAA,MACf,CAAC;AACD;AAAA,IACD;AAEA,eAAW,sBAAsB,qBAAqB;AAGrD,UACC,mBAAmB,SAAS,QAAQ,QACpC,eAAe,KAAK,CAAC,aAAa,SAAS,SAAS,QAAQ,IAAI,GAC/D;AACD,cAAM,QAAQ,QAAQ,8CAA8C;AAAA,UACnE,SAAS;AAAA,YACR,wBAAwB;AAAA,UACzB;AAAA,UACA,MAAM,mBAAmB;AAAA,UACzB,OAAO,QAAQ;AAAA,UACf,MAAM,QAAQ;AAAA,QACf,CAAC;AAED;AAAA,MACD;AAKA,UACC,QAAQ,UAAU,mBAAmB,SACrC,QAAQ,gBAAgB,mBAAmB,eAC3C,QAAQ,SAAS,mBAAmB,MACnC;AACD,cAAM,QAAQ,QAAQ,6CAA6C;AAAA,UAClE,OAAO,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,UACpC,aAAa,QAAQ;AAAA,UACrB,SAAS;AAAA,YACR,wBAAwB;AAAA,UACzB;AAAA,UACA,MAAM,mBAAmB;AAAA,UACzB,UAAU,QAAQ;AAAA,UAClB,OAAO,QAAQ;AAAA,UACf,MAAM,QAAQ;AAAA,QACf,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
|