|
8 | 8 | */ |
9 | 9 |
|
10 | 10 | import { join } from 'path' |
| 11 | +import readDir from 'fs-readdir-recursive' |
11 | 12 | import { TemplateFile, logger } from '@adonisjs/sink' |
12 | 13 |
|
13 | 14 | import { TaskFn } from '../src/contracts' |
14 | | -import { packages } from '../src/boilerplate/packages' |
15 | | - |
16 | | -const templates = [ |
17 | | - 'server.txt', |
18 | | - 'start/app.txt', |
19 | | - 'start/kernel.txt', |
20 | | - 'start/routes.txt', |
21 | | - 'app/Exceptions/Handler.txt', |
22 | | - 'providers/AppProvider.txt', |
23 | | -] |
24 | 15 |
|
25 | 16 | /** |
26 | 17 | * Copies templates to project directory |
27 | 18 | */ |
28 | 19 | const task: TaskFn = (absPath, _app, state) => { |
29 | | - const boilerPlatePackages = packages[state.boilerplate] |
30 | | - if (state.boilerplate === 'api') { |
31 | | - templates.push('app/Middleware/SpoofAccept.ts') |
32 | | - } |
33 | | - |
34 | | - templates.forEach((template) => { |
35 | | - let data: any = {} |
36 | | - |
37 | | - /** |
38 | | - * Defining providers for the `start/app` file |
39 | | - */ |
40 | | - if (template === 'start/app.txt') { |
41 | | - data.providers = [] |
42 | | - Object.keys(boilerPlatePackages).forEach((name) => { |
43 | | - if (boilerPlatePackages[name].providers.length) { |
44 | | - data.providers = data.providers.concat(`'${boilerPlatePackages[name].providers}',`) |
45 | | - } |
46 | | - }) |
47 | | - |
48 | | - data.providers.push(`'./providers/AppProvider',`) |
49 | | - } |
50 | | - |
51 | | - /** |
52 | | - * Middleware based upon the type of project |
53 | | - */ |
54 | | - if (template === 'start/kernel.txt') { |
55 | | - data.middleware = state.boilerplate === 'api' |
56 | | - ? [`'App/Middleware/SpoofAccept',`, `'Adonis/Addons/BodyParserMiddleware',`] |
57 | | - : [`'Adonis/Addons/BodyParserMiddleware',`] |
58 | | - } |
59 | | - |
60 | | - new TemplateFile( |
61 | | - absPath, |
62 | | - template.replace(/\.txt$/, '.ts'), |
63 | | - join(__dirname, '..', 'templates', template), |
64 | | - ) |
65 | | - .apply(data) |
66 | | - .commit() |
67 | | - |
68 | | - logger.create(template) |
69 | | - }) |
| 20 | + const files = readDir(join(__dirname, '..', 'templates', state.boilerplate)) |
| 21 | + |
| 22 | + files |
| 23 | + .forEach((name: string) => { |
| 24 | + const outputFileName = name.replace(/\.txt$/, '.ts') |
| 25 | + const src = join(__dirname, '..', 'templates', state.boilerplate, name) |
| 26 | + new TemplateFile(absPath, outputFileName, src).apply({}).commit() |
| 27 | + logger.create(outputFileName) |
| 28 | + }) |
70 | 29 | } |
71 | 30 |
|
72 | 31 | export default task |
0 commit comments