UNPKG

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