-
Notifications
You must be signed in to change notification settings - Fork 189
Expand file tree
/
Copy pathcreate-app-task-run-init-script.ts
More file actions
41 lines (36 loc) · 1.44 KB
/
create-app-task-run-init-script.ts
File metadata and controls
41 lines (36 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { log } from '@clack/prompts'
import { GetArgsResult } from './get-args-result'
import { getPackageJson } from './get-package-json'
import { initScriptDelete } from './init-script-delete'
import { initScriptInstructions } from './init-script-instructions'
import { initScriptRename } from './init-script-rename'
import { initScriptKey } from './init-script-schema'
import { initScriptVersion } from './init-script-version'
import { Task, taskFail } from './vendor/clack-tasks'
export function createAppTaskRunInitScript(args: GetArgsResult): Task {
return {
enabled: !args.skipInit,
title: 'Running init script',
task: async (result) => {
try {
const { contents } = getPackageJson(args.targetDirectory)
const init = contents[initScriptKey]
if (!init) {
return result({ message: 'Init script not found' })
}
if (args.verbose) {
log.warn(`Init script started`)
}
await initScriptVersion(init.versions, args.verbose)
await initScriptRename(args, init.rename, args.verbose)
const instructions: string[] = initScriptInstructions(init.instructions, args.verbose)
?.filter(Boolean)
.map((msg) => msg.replace('{pm}', args.packageManager))
initScriptDelete(args)
return result({ message: 'Init script done', instructions })
} catch (error) {
taskFail(`Error running init script: ${error}`)
}
},
}
}