1 | const fs = require('fs')
|
2 | const getPathnameProjectConfigFile = require('./get-pathname-project-config-file')
|
3 |
|
4 | const getAppTypeString = require('./get-app-type-string')
|
5 |
|
6 | const extractType = () => {
|
7 | const pathnameKootJS = getPathnameProjectConfigFile()
|
8 |
|
9 | try {
|
10 | const { type } = require(pathnameKootJS)
|
11 | return type
|
12 | } catch (e) { }
|
13 |
|
14 | const content = fs.readFileSync(pathnameKootJS, 'utf-8')
|
15 | const matches = /type[ ]*=[ ]*['"](.+?)['"]/gm.exec(content)
|
16 | if (Array.isArray(matches) && matches.length > 1)
|
17 | return matches[1]
|
18 |
|
19 | return undefined
|
20 | }
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 | module.exports = async (projectType = process.env.KOOT_PROJECT_TYPE) => {
|
38 | if (!projectType) {
|
39 | projectType = extractType() || ''
|
40 | }
|
41 |
|
42 | switch (getAppTypeString(projectType)) {
|
43 | case 'ReactApp': {
|
44 |
|
45 | process.env.WEBPACK_BUILD_TYPE = 'isomorphic'
|
46 | process.env.KOOT_PROJECT_TYPE = 'ReactApp'
|
47 |
|
48 | break
|
49 | }
|
50 |
|
51 | case 'ReactSPA': {
|
52 | process.env.WEBPACK_BUILD_TYPE = 'spa'
|
53 | process.env.KOOT_PROJECT_TYPE = 'ReactSPA'
|
54 | break
|
55 | }
|
56 |
|
57 |
|
58 |
|
59 | }
|
60 |
|
61 | return process.env.KOOT_PROJECT_TYPE
|
62 | }
|