UNPKG

@softwareventures/maintain-project

Version:

Automatically create and maintain TypeScript projects with standard settings for Software Ventures Limited

48 lines 2.3 kB
import { commit } from "../fs-stage/commit.js"; import { emptyDirectory } from "../fs-stage/directory.js"; import { bindAsyncResultFn, chainAsyncResults, throwFailureFn } from "../result/result.js"; import { writeEsLintIgnore } from "../eslint/write.js"; import { gitInit } from "../git/init.js"; import { writeGitIgnore } from "../git/write.js"; import { writeGitHubConfig } from "../github/write.js"; import { writeIdeaProjectFiles } from "../idea/write.js"; import { writeNpmFiles } from "../npm/write.js"; import { writePrettierIgnore } from "../prettier/write.js"; import { writeRenovateConfig } from "../renovate/write.js"; import { writeTypeScriptFiles } from "../typescript/write.js"; import { writeWebpackConfig } from "../webpack/write.js"; import { yarnFix } from "../yarn/fix.js"; import { yarnInstall } from "../yarn/install.js"; import { writeLicense } from "../license/write.js"; import { writeHuskyConfig } from "../husky/write.js"; import { writeCommitlintConfig } from "../commitlint/write.js"; import { yarnSetVersionStable } from "../yarn/set-version-stable.js"; import { setYarnLinkerToNodeModules } from "../yarn/set-linker-to-node-modules.js"; export default async function init(project) { const fsStage = { root: emptyDirectory, overwrite: false }; return chainAsyncResults(fsStage, [ writeGitHubConfig(project), writeRenovateConfig(project), writePrettierIgnore(project), writeGitIgnore(project), writeEsLintIgnore(project), writeHuskyConfig(project), writeCommitlintConfig(project), writeTypeScriptFiles(project), writeWebpackConfig(project), writeIdeaProjectFiles(project), writeNpmFiles(project), writeLicense(project) ]) .then(throwFailureFn("Internal error creating initial file stage")) .then(async (fsStage) => commit(project.path, fsStage)) .then(bindAsyncResultFn(async () => gitInit(project))) .then(bindAsyncResultFn(async () => yarnSetVersionStable(project))) .then(bindAsyncResultFn(async () => setYarnLinkerToNodeModules(project))) .then(bindAsyncResultFn(async () => yarnInstall(project))) .then(bindAsyncResultFn(async () => yarnFix(project))); } //# sourceMappingURL=init.js.map