UNPKG

1.07 kBJavaScriptView Raw
1const os = require('os')
2const path = require('path')
3const fs = require('fs-extra')
4const { glob } = require('majo')
5const sao = require('.')
6
7module.exports = async (
8 { generator, getContext, outDir, npmClient },
9 mockAnswers
10) => {
11 if (!(await fs.pathExists(generator))) {
12 throw new Error(`Generated is not found at ${generator}`)
13 }
14
15 const api = sao({
16 generator,
17 outDir:
18 outDir ||
19 path.join(
20 os.tmpdir(),
21 `sao-mock-${require('crypto')
22 .randomBytes(10)
23 .toString('hex')}`,
24 'output'
25 ),
26 getContext,
27 npmClient,
28 // Show warning and error only
29 logLevel: 2,
30 mock: {
31 answers: mockAnswers
32 }
33 })
34
35 await api.run()
36
37 const fileList = await glob(['**', '!**/node_modules/**'], {
38 cwd: api.opts.outDir,
39 dot: true
40 })
41 const readFile = (file, encoding = 'utf8') => {
42 return fs.readFile(path.resolve(api.opts.outDir, file), encoding)
43 }
44
45 return {
46 fileList: fileList.sort(),
47 readFile,
48 answers: api.generatorContext.answers,
49 api
50 }
51}