1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | var __importStar = (this && this.__importStar) || function (mod) {
|
6 | if (mod && mod.__esModule) return mod;
|
7 | var result = {};
|
8 | if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
9 | result["default"] = mod;
|
10 | return result;
|
11 | };
|
12 | Object.defineProperty(exports, "__esModule", { value: true });
|
13 | const fs_extra_1 = __importDefault(require("fs-extra"));
|
14 | const glob_1 = __importDefault(require("glob"));
|
15 | const path = __importStar(require("path"));
|
16 | const cwd = process.cwd();
|
17 | const downLoadDir = path.join(cwd, '.CACHE/download');
|
18 | const mergeDir = path.join(cwd, '.CACHE/nanachi');
|
19 | const mergeFilesQueue = require('./mergeFilesQueue');
|
20 | const ignoreFiles = [
|
21 | 'package-lock.json'
|
22 | ];
|
23 | const ignoreExt = ['.tgz', '.log', 'rpks'];
|
24 | const docFilesReg = /\.md$/;
|
25 | const configFileReg = /\w+Config\.json$/;
|
26 | const reactFileReg = /React\w+\.js$/;
|
27 | const mergeFiles = [
|
28 | 'app.json',
|
29 | 'app.js',
|
30 | 'package.json'
|
31 | ];
|
32 | const lockFiles = [
|
33 | 'project.config.json'
|
34 | ];
|
35 | function isIgnoreFile(fileName) {
|
36 | return ignoreFiles.includes(fileName)
|
37 | || mergeFiles.includes(fileName)
|
38 | || lockFiles.includes(fileName)
|
39 | || ignoreExt.includes(path.parse(fileName).ext)
|
40 | || configFileReg.test(fileName)
|
41 | || reactFileReg.test(fileName)
|
42 | || docFilesReg.test(fileName);
|
43 | }
|
44 | function isMergeFile(fileName) {
|
45 | return mergeFiles.includes(fileName)
|
46 | || configFileReg.test(fileName);
|
47 | }
|
48 | function isLockFile(fileName) {
|
49 | return lockFiles.includes(fileName);
|
50 | }
|
51 | function copyCurrentProject() {
|
52 | if (!fs_extra_1.default.existsSync(path.join(cwd, 'source'))
|
53 | && !fs_extra_1.default.existsSync(path.join(cwd, 'app.js'))) {
|
54 | return Promise.resolve(1);
|
55 | }
|
56 | let projectDirName = cwd.replace(/\\/g, '/').split('/').pop();
|
57 | let files = glob_1.default.sync('./!(node_modules|dist|src|sign|build|.CACHE|.chaika_cache|nanachi)', {});
|
58 | let allPromiseCopy = files
|
59 | .map(function (el) {
|
60 | let src = path.join(cwd, el);
|
61 | let dist = path.join(downLoadDir, projectDirName, el);
|
62 | if (/\.\w+$/.test(el)) {
|
63 | fs_extra_1.default.ensureFileSync(dist);
|
64 | return fs_extra_1.default.copyFile(src, dist);
|
65 | }
|
66 | else {
|
67 | fs_extra_1.default.ensureDirSync(dist);
|
68 | return fs_extra_1.default.copy(src, dist);
|
69 | }
|
70 | });
|
71 | return Promise.all(allPromiseCopy);
|
72 | }
|
73 | function copyOtherProject() {
|
74 | let files = glob_1.default.sync(downLoadDir + '/**', { nodir: true });
|
75 | files = files.filter((file) => {
|
76 | let fileName = path.parse(file).base;
|
77 | if (isIgnoreFile(fileName)) {
|
78 | if (isMergeFile(fileName) || isLockFile(fileName)) {
|
79 | mergeFilesQueue.add(file);
|
80 | }
|
81 | return false;
|
82 | }
|
83 | else {
|
84 | return true;
|
85 | }
|
86 | });
|
87 | let allPromiseCopy = files.map(function (file) {
|
88 | let dist = '';
|
89 | file = file.replace(/\\/g, '/');
|
90 | if (/\/source\//.test(file)) {
|
91 | dist = path.join(mergeDir, 'source', file.split('/source/').pop());
|
92 | }
|
93 | else {
|
94 | dist = path.join(mergeDir, file.split('/').pop());
|
95 | }
|
96 | fs_extra_1.default.ensureFileSync(dist);
|
97 | return fs_extra_1.default.copyFile(file, dist);
|
98 | });
|
99 | return Promise.all(allPromiseCopy);
|
100 | }
|
101 | function default_1() {
|
102 | fs_extra_1.default.emptyDirSync(mergeDir);
|
103 | return copyCurrentProject()
|
104 | .then(function () {
|
105 | return copyOtherProject();
|
106 | })
|
107 | .then(function () {
|
108 | return Promise.resolve(1);
|
109 | })
|
110 | .catch(function (err) {
|
111 | return Promise.reject(err);
|
112 | });
|
113 | }
|
114 | exports.default = default_1;
|
115 | ;
|