diff options
author | 2021-05-26 06:16:49 +0800 | |
---|---|---|
committer | 2021-05-25 17:16:49 -0500 | |
commit | 760a7a5509fc81a63d47948dbe040dcc8007d0fe (patch) | |
tree | a30287a5daa3b97a3ca7a5a34ecd021994152fea /packages/create-astro/src/components/App.tsx | |
parent | f5ecbee192ef24f52f78ffad0ba7bce686bd45c7 (diff) | |
download | astro-760a7a5509fc81a63d47948dbe040dcc8007d0fe.tar.gz astro-760a7a5509fc81a63d47948dbe040dcc8007d0fe.tar.zst astro-760a7a5509fc81a63d47948dbe040dcc8007d0fe.zip |
Support skip install deps (#242)
* Support skip install deps
* fmt
* Create new-hats-deliver.md
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Diffstat (limited to 'packages/create-astro/src/components/App.tsx')
-rw-r--r-- | packages/create-astro/src/components/App.tsx | 20 |
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 }; |