feat(create-medusa-app): support admin onboarding experience (#4339)

This commit is contained in:
Shahed Nasser
2023-06-20 11:43:40 +02:00
committed by GitHub
parent 9d868dfc40
commit 6d5da9166f
5 changed files with 55 additions and 42 deletions
@@ -6,7 +6,8 @@ type CloneRepoOptions = {
abortController?: AbortController
}
const DEFAULT_REPO = "https://github.com/medusajs/medusa-starter-default"
const DEFAULT_REPO =
"https://github.com/medusajs/medusa-starter-default -b feat/onboarding"
export default async ({
directoryName = "",
@@ -37,6 +37,14 @@ export default async ({
signal: abortController?.signal,
}
const npxOptions = {
...execOptions,
env: {
...process.env,
npm_config_yes: "yes",
},
}
// initialize the invite token to return
let inviteToken: string | undefined = undefined
@@ -110,8 +118,8 @@ export default async ({
await processManager.runProcess({
process: async () => {
const proc = await promiseExec(
"npx -y @medusajs/medusa-cli@latest migrations run",
execOptions
"npx @medusajs/medusa-cli@latest migrations run",
npxOptions
)
// ensure that migrations actually ran in case of an uncaught error
@@ -138,8 +146,8 @@ export default async ({
await processManager.runProcess({
process: async () => {
const proc = await promiseExec(
`npx -y @medusajs/medusa-cli@latest user -e ${admin.email} --invite`,
execOptions
`npx @medusajs/medusa-cli@latest user -e ${admin.email} --invite`,
npxOptions
)
// get invite token from stdout
const match = proc.stdout.match(/Invite token: (?<token>.+)/)
@@ -173,11 +181,11 @@ export default async ({
await processManager.runProcess({
process: async () => {
await promiseExec(
`npx -y @medusajs/medusa-cli@latest seed --seed-file=${path.join(
`npx @medusajs/medusa-cli@latest seed --seed-file=${path.join(
"data",
"seed.json"
)}`,
execOptions
npxOptions
)
},
})
@@ -196,11 +204,11 @@ export default async ({
await processManager.runProcess({
process: async () => {
await promiseExec(
`npx -y @medusajs/medusa-cli@latest seed --seed-file=${path.join(
`npx @medusajs/medusa-cli@latest seed --seed-file=${path.join(
"data",
"seed-onboarding.json"
)}`,
execOptions
npxOptions
)
},
})
@@ -6,9 +6,14 @@ type StartOptions = {
}
export default ({ directory, abortController }: StartOptions) => {
const childProcess = exec(`npx -y @medusajs/medusa-cli develop`, {
const childProcess = exec(`npx @medusajs/medusa-cli@latest develop`, {
cwd: directory,
signal: abortController?.signal,
env: {
...process.env,
OPEN_BROWSER: "false",
npm_config_yes: "yes",
},
})
childProcess.stdout?.pipe(process.stdout)