({
projectName,
packages,
noInstall,
}: CreateProjectOptions)
| 13 | } |
| 14 | |
| 15 | export const createProject = async ({ |
| 16 | projectName, |
| 17 | packages, |
| 18 | noInstall, |
| 19 | }: CreateProjectOptions) => { |
| 20 | const pkgManager = getUserPkgManager(); |
| 21 | const projectDir = path.resolve(process.cwd(), projectName); |
| 22 | const runPkgManagerInstall = curryRunPkgManagerInstall({ |
| 23 | projectDir, |
| 24 | pkgManager, |
| 25 | devMode: false, |
| 26 | noInstallMode: noInstall, |
| 27 | }); |
| 28 | |
| 29 | // Bootstraps the base Next.js application |
| 30 | await scaffoldProject({ |
| 31 | projectName, |
| 32 | projectDir, |
| 33 | pkgManager, |
| 34 | noInstall, |
| 35 | runPkgManagerInstall, |
| 36 | }); |
| 37 | |
| 38 | // Install the selected packages |
| 39 | await installPackages({ |
| 40 | projectDir, |
| 41 | pkgManager, |
| 42 | packages, |
| 43 | noInstall, |
| 44 | runPkgManagerInstall, |
| 45 | }); |
| 46 | |
| 47 | // TODO: Look into using handlebars or other templating engine to scaffold without needing to maintain multiple copies of the same file |
| 48 | await selectAppFile({ projectDir, packages }); |
| 49 | await selectIndexFile({ projectDir, packages }); |
| 50 | |
| 51 | return projectDir; |
| 52 | }; |
no test coverage detected