UNPKG

3.85 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5var __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};
12Object.defineProperty(exports, "__esModule", { value: true });
13const fs_extra_1 = __importDefault(require("fs-extra"));
14const glob_1 = __importDefault(require("glob"));
15const path = __importStar(require("path"));
16const cwd = process.cwd();
17const downLoadDir = path.join(cwd, '.CACHE/download');
18const mergeDir = path.join(cwd, '.CACHE/nanachi');
19const mergeFilesQueue = require('./mergeFilesQueue');
20const ignoreFiles = [
21 'package-lock.json'
22];
23const ignoreExt = ['.tgz', '.log', 'rpks'];
24const docFilesReg = /\.md$/;
25const configFileReg = /\w+Config\.json$/;
26const reactFileReg = /React\w+\.js$/;
27const mergeFiles = [
28 'app.json',
29 'app.js',
30 'package.json'
31];
32const lockFiles = [
33 'project.config.json'
34];
35function 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}
44function isMergeFile(fileName) {
45 return mergeFiles.includes(fileName)
46 || configFileReg.test(fileName);
47}
48function isLockFile(fileName) {
49 return lockFiles.includes(fileName);
50}
51function 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}
73function 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}
101function 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}
114exports.default = default_1;
115;