summaryrefslogtreecommitdiff
path: root/packages/create-astro/src/components/App.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/create-astro/src/components/App.tsx')
-rw-r--r--packages/create-astro/src/components/App.tsx20
1 files changed, 15 insertions, 5 deletions
diff --git a/packages/create-astro/src/components/App.tsx b/packages/create-astro/src/components/App.tsx
index deb9b252a..4cf9f3852 100644
--- a/packages/create-astro/src/components/App.tsx
+++ b/packages/create-astro/src/components/App.tsx
@@ -9,7 +9,7 @@ import Finalize from './Finalize';
interface Context {
use: 'npm' | 'yarn';
- run: boolean;
+ skipInstall?: boolean;
projectExists?: boolean;
force?: boolean;
projectName?: string;
@@ -18,7 +18,7 @@ interface Context {
ready?: boolean;
}
-const getStep = ({ projectName, projectExists: exists, template, force, ready }: Context) => {
+const getStep = ({ projectName, projectExists: exists, template, force, ready, skipInstall }: Context) => {
switch (true) {
case !projectName:
return {
@@ -35,16 +35,21 @@ const getStep = ({ projectName, projectExists: exists, template, force, ready }:
key: 'template',
Component: Template,
};
- case !ready:
+ case !ready && !skipInstall:
return {
key: 'install',
Component: Install,
};
- default:
+ case ready:
return {
key: 'final',
Component: Finalize,
};
+ default:
+ return {
+ key: 'empty',
+ Component: () => <></>,
+ };
}
};
@@ -70,7 +75,12 @@ const App: FC<{ context: Context }> = ({ context }) => {
if (state.projectName && (state.projectExists === false || state.force) && state.template) {
if (state.force) emptyDir(state.projectName);
- prepareTemplate(context.use, state.template, state.projectName).then(() => {
+ prepareTemplate({
+ use: context.use,
+ templateName: state.template,
+ projectName: state.projectName,
+ skipInstall: state.skipInstall,
+ }).then(() => {
if (isSubscribed) {
setState((v) => {
const newState = { ...v, ready: true };